1 | © 2016 RingCentral, Inc. All rights reserved.
Global CI, что это, или что не так в классическом CIАкмаев Дмитрий. Санкт-Петербург. DINS
2 | © 2016 RingCentral, Inc. All rights reserved.
О себе
► Акмаев Дмитрий► Lead QA Automation в DINS
• до этого Quest Software (DELL), I-FREE► 12 лет в тестировании► Управляю проектом Global CI
3 | © 2016 RingCentral, Inc. All rights reserved.
Определение CI
4 | © 2016 RingCentral, Inc. All rights reserved.
Определение CI
► Что это такое► Какие проблемы решает► В каких случаях не работает
5 | © 2016 RingCentral, Inc. All rights reserved.
Предыстория
6 | © 2016 RingCentral, Inc. All rights reserved.
Предыстория
► Огромная связанная система (более 170 компонентов)
► Наличие Legacy кода► Единовременная разработка в 4 странах► Сложная интеграция
7 | © 2016 RingCentral, Inc. All rights reserved.
Проблемы тестирования
8 | © 2016 RingCentral, Inc. All rights reserved.
Проблемы тестирования
► Полная тестовая инфраструра слишком громоздка► Обновление занимает продолжительное время► Автотесты используют различные подходы и языки
программирования► Дублирование проверок разными командами► Команды под проект
9 | © 2016 RingCentral, Inc. All rights reserved.
Появление GCI
10 | © 2016 RingCentral, Inc. All rights reserved.
Что такое GCI
► Интеграционный CI► Тестовое окружение
максимально близкое к PRO► Полное собрание автотестов► Индикатор стабильности
транка
11 | © 2016 RingCentral, Inc. All rights reserved.
Процесс передачи проекта
► Законченный проект• Протестирован• Нет критичных багов
► Передача автотестов• Не должны мешать другим• Не менять окружение• Не дольше 10 часов
► Указываются изменяемые компоненты
12 | © 2016 RingCentral, Inc. All rights reserved.
Проблемы GCI и их решения
13 | © 2016 RingCentral, Inc. All rights reserved.
Снежная лавина
► Переработка тестовой базы► Приоритезация► Code Coverage
14 | © 2016 RingCentral, Inc. All rights reserved.
Время выполнения
► Паралельный запуск► Увеличение ресурсов► Анализ тестов на таймауты
15 | © 2016 RingCentral, Inc. All rights reserved.
Сбор статистики
► Запись результатов в базу
16 | © 2016 RingCentral, Inc. All rights reserved.
Поддержка
► Выделенные люди► Унификация тестов► Cокращение фреймворков
17 | © 2016 RingCentral, Inc. All rights reserved.
Анализ результатов
► Пометка известных падений► Получение разницы между
прогонами► Разовый перепрогон упавших
тестов
18 | © 2016 RingCentral, Inc. All rights reserved.
Тесты меняющие окружение
► Просить так не делать► Заглушки► Аккаунт генератор
19 | © 2016 RingCentral, Inc. All rights reserved.
Это не я сломал
► Контроль изменений► Расписание мерджей► Ручное обновление окружения
20 | © 2016 RingCentral, Inc. All rights reserved.
Перекладывание задач Local CI на GCI
► Требовать результаты локального CI
► Быть жесче с багами, пропущенными в local CI
21 | © 2016 RingCentral, Inc. All rights reserved.
Заключение
22 | © 2016 RingCentral, Inc. All rights reserved.
Заключение
► GCI не заменяет локальные CI► Требует дополнительные ресурсы► Помогает находить сложные интеграционные
проблемы► Сокращает регрессию
23 | © 2016 RingCentral, Inc. All rights reserved.
Спасибо
24 | © 2016 RingCentral, Inc. All rights reserved.
Контакты
► [email protected]► https://vk.com/akmaev► https://www.facebook.com/dmitry.akmaev► https://www.linkedin.com/in/dmitry-akmae
v-1306b986