От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
СI - модное увлечение или новая классика?
1. Scalable eCommerce Platform Solutions
Scalable eCommerce Platform Solutions
for
CI – Модное увлечение или новая класика?
Игорь Яговой
2. Scalable eCommerce Platform Solutions
Игорь Яговой
• 8+ лет в IT
• Проекты: GameDev, Telecommunications, Financial,
eBusiness, eCommerce
• Работал: Тестировщиком, Ведущим инженером,
Менеджером
11/29/2012 2
3. Scalable eCommerce Platform Solutions
План
• Введение
• Простейший CI pipeline
• Реализация части тестирования
• Результат
11/29/2012 3
4. Scalable eCommerce Platform Solutions
CI - что это такое и зачем?
Continuous Integration
• Показывает статус билда/кода в любой момент
• Стимулирует стабилизацию кода
• Следит за регрессией
• Упрощает жизнь, отвечает на многие вопросы
• Demo – легко!
11/29/2012 4
5. Scalable eCommerce Platform Solutions
CI pipeline для одного компонента
Commit Build
Smoke Test Artifact
Deploy
Suite Repository
Full Test Suite
Report
11/29/2012 5
6. Scalable eCommerce Platform Solutions
Усложняем задачу
A A
build tests
A+B
tests
B B A+B+C
build tests tests
C C
build tests
11/29/2012 6
7. Scalable eCommerce Platform Solutions
Continuous Integration - реализация
• Готовность команды проекта (Dev/QA, PM)
• Наличие железа / cloud
• Инфраструктура
• Интеграция с другими процессами
• Наличие DevOps
11/29/2012 7
8. Scalable eCommerce Platform Solutions
Вклад QA в Continuous Integration
• Работа над тестовым фреймворком
• Организация тестовых джоб на CI
• Какие тесты запускаем
• CI Support
11/29/2012 8
11. Scalable eCommerce Platform Solutions
Test Framework
1. Запускается на CI
2. Параметризация – где, куда?
11/30/2012 11
12. Scalable eCommerce Platform Solutions
Test Framework
1. Запускается на CI
2. Параметризация – где, куда?
3. Поддержка различных suite, test groups
11/30/2012 12
13. Scalable eCommerce Platform Solutions
Test Framework
1. Запускается на CI
2. Параметризация – где, куда?
3. Поддержка различных suite, test groups
4. Легкий тест-менеджмент, организация suite
11/30/2012 13
14. Scalable eCommerce Platform Solutions
Test Framework
1. Запускается на CI
2. Параметризация – где, куда?
3. Поддержка различных suite, test groups
4. Легкий тест-менеджмент, организация suite
5. Читаемый репорт/Детальный репорт/логи
11/30/2012 14
15. Scalable eCommerce Platform Solutions
Test Framework
1. Запускается на CI
2. Параметризация – где, куда?
3. Поддержка различных suite, test groups
4. Легкий тест-менеджмент, организация suite
5. Читаемый репорт/Детальный репорт/логи
6. Легко дебажить
11/30/2012 15
16. Scalable eCommerce Platform Solutions
Test Framework
1. Запускается на CI
2. Параметризация – где, куда?
3. Поддержка различных suite, test groups
4. Легкий тест-менеджмент, организация suite
5. Читаемый репорт/Детальный репорт/логи
6. Легко дебажить
7. Параллелизация
11/30/2012 16
17. Scalable eCommerce Platform Solutions
Test Framework
1. Запускается на CI
2. Параметризация – где, куда?
3. Поддержка различных suite, test groups
4. Легкий тест-менеджмент, организация suite
5. Читаемый репорт/Детальный репорт/логи
6. Легко дебажить
7. Параллелизация
8. Mapping Test <-> Defect
11/30/2012 17
18. Scalable eCommerce Platform Solutions
Test Jobs: Практики
Лампочка - 2 статуса мало, принцип светофора
11/29/2012 18
19. Scalable eCommerce Platform Solutions
Test Jobs: Практики
Джобы запускают 1 suite
Hint: Environment может не убиваться после
failed тестов
11/29/2012 19
20. Scalable eCommerce Platform Solutions
Test Jobs: Параллелизация
Ускоряем прогон тестов
– тесты делятся на логические группы
– тестовые джобы запускаются параллельно
– smoke тесты тоже параллелятся
* Не забудь настроить правильные зависимости
11/29/2012 20
21. Scalable eCommerce Platform Solutions
Test Jobs: Пример Commit
Commit to B
build A build B
to A
Smoke Smoke Smoke
A+stub B A+B
Full suite
Nexus Nexus? Nexus
Smoke Int
with A
Full suite Full suite Full suite
A+stub B A+B A+B
Full Int
Type 1 Type 2
with A
Promote? Promote
11/29/2012 Report Report 21
22. Scalable eCommerce Platform Solutions
Какие тесты запускать?
У Нас свой артефакт!
• Тесты
• Зависимости - API, Stubs etc.
• Test Data
• Tools
11/29/2012 22
24. Scalable eCommerce Platform Solutions
Tests CI: Добавляем новый тест
• Тест Passed – Отлично!
• Тест Failed – Отлично! Заведи дефект!
11/29/2012 24
25. Scalable eCommerce Platform Solutions
CI Support: Что же это?
• Какого цвета лампочка?
• Держать актуальным Тест Артефакт
11/29/2012 25
26. Scalable eCommerce Platform Solutions
CI Support : Красная лампочка
• Ошибка в тесте
• Тест не актуальный
• Bug!
Solution:
• Удалять тесты с CI можно!
• Mapping: Test <-> Defect – Must Have
11/29/2012 26
27. Scalable eCommerce Platform Solutions
CI Support : Тест Артефакт
Держи актуальными:
• Тесты и Тестовые наборы
• Зависимости (API, Stub, etc.)
• Тестовые данные
11/29/2012 27
30. Scalable eCommerce Platform Solutions
Бенефиты
Команда тестирования:
• Stop Execution
• Занимайся своей работой
• СI – эталонный энвайронмент
• Дефекты - находим и фиксим
• Трекаем только Epic дефекты
11/29/2012 30
31. Scalable eCommerce Platform Solutions
Бенефиты
Команда разработчиков:
• Commit = Feedback
• Нет регрессии
• Дефект debug – легко!
• Тестирование происходит реально вместе с
разработкой
11/29/2012 31
32. Scalable eCommerce Platform Solutions
Бенефиты
Менеджер:
• Мгновенный статус билда/проекта
• Красивый репорт!
• Дефекты находятся раньше
• Исправлять ошибки сравнительно дешево
• Только minor дефекты живут после конца
итерации
11/29/2012 32