secon'2017, lazada effartlrss shopping, Как мы тестируем?
TRANSCRIPT
1
Indonesia Philippines Malaysia Thailand Singapore Vietnam
Как мы тестируем?
• Основана в 2012 году • Крупнейший e-
commerce в 6 странах Юго-Восточной Азии с населением 650 млн человек
• Более 40 млн продуктов • На последней
распродаже, продавали 1,2 млн товаров в день
• С 2016 года входим в Alibaba Group
2
Как все начиналось
• Первый TechHub во Вьетнаме открыт в 2013 году
• 10 PHP программистов и 3 QA • Сложные релизы проходили только
по ночам • Типичный стартап....
*на фото один из наших ночных релизов
3
Команда Lazada сейчас
• 4 TechHubs: Вьетнам, Сингапур, Бангкок, Москва
• Около 600 инженеров • 90% платформы
разрабатывается в Москве • Разработка платформы только на
Golang • Более 130 Golang
программистов, 100 из которых находятся в Москве
• 3 DC, 1500+ серверов, 10к rps на сервер
4
5
• Что тестировать? • Как тестировать? • Наши помощники: собаки и руки
Краткое содержание
6
Что тестируем?
Product Service
Product Service
Product Service
Product Service
Product Service
7
• Предсказуемый процесс • Прозрачные кейсы • Избегать ошибок • Ошибки должны быть дешевыми
Как тестируем?
8
Предсказуемый процесс
9
Предсказуемый процесс
• тестовая среда в докере под каждую задачу • автоматический прогон тестов при успешной сборке среды
• автоматическая сборка релиза из QA Passed задач • автоматический прогон тестов после деплоя – результаты в Slack … и пр.
10
Прозрачные кейсы
11
Прозрачные кейсы
12
Прозрачные кейсы
13
14
• https://github.com/fuzzdb-project/fuzzdb • https://github.com/trailofbits/protofuzz • https://pypi.python.org/pypi/fuzzing
15
Избегать ошибок: pip install fuzzing
Fuzzer – Инструмент для тестирование с использование рандомных или не валидных данных
16
Избегать ошибок: pip install fuzzing
import fuzzing
seed = "This is a body of POST request" number_of_fuzz_variants = 10 fuzz_factor = 5
fuzzed_data = fuzzing.fuzz_string(seed,
number_of_fuzz_variants,
fuzz_factor)
print(fuzzed_data)
17
Избегать ошибок: SOA tool
• Проверяет сервис на соответствие SOA Code Convention
• Headers, Content-Type, Port requirements, TraceId, Response Codes 400..500
• Консольный инструмент • Ответ в формате json
18
Избегать ошибок: SOA tool
19
Избегать ошибок: Degradation tool
20
Избегать ошибок: анализ зависимостей
21
Избегать ошибок: анализ зависимостей
22
Избегать ошибок: анализ зависимостей
23
• Test coverage tool • Emulate user experience
Избегать ошибок: автотесты
24
Определить покрытие
25
Hand helper
SparkyСлак-бот для организации
релизного процесса
26
27
Sparky
28
Sparky
29
Sparky
30
Questions