Автоматическое функциональное тестирование в рамках...
DESCRIPTION
Константин Жуков - доклад на SQA Days, 2-3 декабря 2011, МоскваTRANSCRIPT
![Page 1: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/1.jpg)
WAY4™
Quality Control in
Continuous Integration
Konstantin Zhukov
![Page 2: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/2.jpg)
Программа
Что такое Continuous Integration? Риски процесса разработки От «Continuous Integration» к «Build
Pipeline» Quality Control Практические моменты
реализации
![Page 3: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/3.jpg)
Что такое Continuous Integration?
«Process of applying quality control during development» (с)wikipedia Стратегия разработки, связанная с регулярной
интеграцией, проводимой в автоматическом
режиме
![Page 4: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/4.jpg)
Производство программныхпродуктов –рискованное дело
![Page 5: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/5.jpg)
Риск 1: Поздняя интеграция стоит дорого
Атомарные изменения Интегрируемся чаще!
![Page 6: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/6.jpg)
Риск 2: Отсутствие регулярных сборок
Продукт работает только локально Локально всё работает! Завтра приедет босс, показывать нечего!
Процесс непрозрачен Какой сейчас статус проекта? Что мы такого сделали в версии 1.0.1?
![Page 7: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/7.jpg)
Интеграция необходима
Хотелось бы иметь что-то вроде
Что дальше?
![Page 8: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/8.jpg)
От «Continuous Integration» к «Build Pipeline»
«Automated manifestation of your process for getting software from version control into the hands of your users»
Continuous Integration flow
Build Pipeline flow
![Page 9: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/9.jpg)
Build Pipeline: Как это организовать?
Специальные инструменты для поддержки процесса
… cегодня про это не говорим
![Page 10: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/10.jpg)
Build Pipeline: Quality Control
Сконцентрируемся на QC Какие для этого предпосылки?
К фазе QC доступны все необходимые артефакты (binaries)
Билд готов к тестированию!
Как его организовать? Есть проблемы и есть решения
![Page 11: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/11.jpg)
Проблема 1: Слишком много продуктов
Много продуктов -> cлишком большая энтропия Все продукты разные -> разные инструменты Нужны:
Правила организации тестов Единая система управления разнородными тестами
DB Core
WEB Bank
eGateway
Mobile Bank
WEB ServicesPayment Server Switch
eAuth
Kiosks
My Mega Tool
VS
![Page 12: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/12.jpg)
Решение 1: Слишком много продуктов
Основные шаги – общие для всех Идём от алгоритма Что нужно?
Собрать конфигурацию приложения (build) Запустить конфигурацию (deploy + start) Запустить тесты (test) Собрать отчёт (collect logs) Остановить конфигурацию (stop + undeploy)
Отделяем управление от реализации
![Page 13: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/13.jpg)
Система управления тестами: Алгоритм
DB Core
WEB Bank
eGateway
Mobile Bank
WEB ServicesPayment Server Switch
eAuth
KiosksApplication-Specific
Handler
Test Sequence Scenario
Test Control System
buildstartteststop
buildstartstop
test
My Mega Test Tool
test
Вся специфика тестируемых приложений спрятана в специальном handler-е
![Page 14: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/14.jpg)
Система управления тестами: Последовательность тестов
Основа – файловое дерево Алгоритм обхода – итерирование на одном
уровне
Простота!
![Page 15: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/15.jpg)
Система управления тестами: Мониторинг
Единая WEB консоль CI сервера
![Page 16: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/16.jpg)
Build Pipeline: Бесплатное приложение
Ручной redeploy дорог Можно ли его автоматизировать?
Можно Меняем местами шаги start <-> stop Создаём технический сценарий без тестов
В итоге: Приложение всегда up-to-date и готово к
тестированию … и к показу боссу
![Page 17: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/17.jpg)
Проблема 2: Продукт слишком сложен
Продукт слишком сложный, но нужны интеграционные тесты
Разбираем его на части, сохраняя общую структуру, Собираем каждый компонент в режиме
redeploy Запускаем интеграционные тесты из общей
точки входа
![Page 18: Автоматическое функциональное тестирование в рамках процесса непрерывной интеграции](https://reader033.vdocuments.net/reader033/viewer/2022052507/558c930dd8b42ae9098b45a5/html5/thumbnails/18.jpg)
Итоги
Что мы добились Разрешение всех рисков Покрытие всех продуктов компании + Помощь в ручном тестировании
С небольшими недостатками Поддержка непростой инфраструктуры Необходимость отдельных серверов Зачем тестировать самому, если CI всё
проверит сам?