'

Quality Control in Continuous Integration

Понравилась презентация – покажи это...





Слайд 0

WAY4™ Quality Control in Continuous Integration Konstantin Zhukov


Слайд 1

Программа Что такое Continuous Integration? Риски процесса разработки От «Continuous Integration» к «Build Pipeline» Quality Control Практические моменты реализации


Слайд 2

Что такое Continuous Integration? «Process of applying quality control during development» (с)wikipedia Стратегия разработки, связанная с регулярной интеграцией, проводимой в автоматическом режиме


Слайд 3

Производство программных продуктов – рискованное дело


Слайд 4

Риск 1: Поздняя интеграция стоит дорого Атомарные изменения Интегрируемся чаще!


Слайд 5

Риск 2: Отсутствие регулярных сборок Продукт работает только локально Локально всё работает! Завтра приедет босс, показывать нечего! Процесс непрозрачен Какой сейчас статус проекта? Что мы такого сделали в версии 1.0.1?


Слайд 6

Интеграция необходима Хотелось бы иметь что-то вроде Что дальше?


Слайд 7

От «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


Слайд 8

Build Pipeline: Как это организовать? Специальные инструменты для поддержки процесса … cегодня про это не говорим


Слайд 9

Build Pipeline: Quality Control Сконцентрируемся на QC Какие для этого предпосылки? К фазе QC доступны все необходимые артефакты (binaries) Билд готов к тестированию! Как его организовать? Есть проблемы и есть решения


Слайд 10

Проблема 1: Слишком много продуктов Много продуктов -> cлишком большая энтропия Все продукты разные -> разные инструменты Нужны: Правила организации тестов Единая система управления разнородными тестами


Слайд 11

Решение 1: Слишком много продуктов Основные шаги – общие для всех Идём от алгоритма Что нужно? Собрать конфигурацию приложения (build) Запустить конфигурацию (deploy + start) Запустить тесты (test) Собрать отчёт (collect logs) Остановить конфигурацию (stop + undeploy) Отделяем управление от реализации


Слайд 12

Система управления тестами: Алгоритм Вся специфика тестируемых приложений спрятана в специальном handler-е


Слайд 13

Система управления тестами: Последовательность тестов Основа – файловое дерево Алгоритм обхода – итерирование на одном уровне Простота!


Слайд 14

Система управления тестами: Мониторинг Единая WEB консоль CI сервера


Слайд 15

Build Pipeline: Бесплатное приложение Ручной redeploy дорог Можно ли его автоматизировать? Можно Меняем местами шаги start <-> stop Создаём технический сценарий без тестов В итоге: Приложение всегда up-to-date и готово к тестированию … и к показу боссу ?


Слайд 16

Проблема 2: Продукт слишком сложен Продукт слишком сложный, но нужны интеграционные тесты Разбираем его на части, сохраняя общую структуру, Собираем каждый компонент в режиме redeploy Запускаем интеграционные тесты из общей точки входа


Слайд 17

Итоги Что мы добились Разрешение всех рисков Покрытие всех продуктов компании + Помощь в ручном тестировании С небольшими недостатками Поддержка непростой инфраструктуры Необходимость отдельных серверов Зачем тестировать самому, если CI всё проверит сам? ?


Слайд 18

Thanks Thank you! kzhukov@lecton.com kost.zhukov@gmail.com


×

HTML:





Ссылка: