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