2. Мы продаем ж/д, авиа и автобусные билеты, туры, бронируем отели и рассказываем о расписании.
Самый посещаемый сервис туристических услуг в России (по версии comScore).
3. • 31 сотрудник в 7 проектах
• UI-тесты, CI, релиз-инжиниринг, тестирование API-модулей
• В Туту.ру нет сотрудников, которые занимаются только ручным
тестированием
• Покрытие UI-тестами больше 90%
4. Про что поговорим
1. Принципы архитектуры
2. UI-тесты в релизном цикле
3. Приемы улучшения эффективности каждого теста
4. Тест-кейсы и управление тестовыми комплектами
5. UI-тесты + CI
6. Метрики и выводы
13. Принципы архитектуры. Code Review
• Улучшаем качество кода
• Информируем участников о изменениях
• Код приводится к единому стилю
написания
• Обучаем «новичков», быстро
набирается навык, происходит
выравнивание опыта, обмен знаниями
17. Инструмент UI-тестирования в процессах QA-команды
UI-тесты в релизном цикле:
• Запуск тестов как можно чаще, согласно этапам разработки задачи
• Каждый этап с максимально «зелеными» тестами
20. Улучшаем эффективность каждого теста
• Проект контроля и управления тестовыми контейнерами
• Управление потоками тестов
• Деактивация неработающих тестовых контейнеров
• Лучшая интеграция с модулем Runner
21. Улучшаем эффективность каждого теста
• Свой Runner тестов
• Низкое потребление ресурсов
• Гибкость в развитии
• Балансировка загруженности с учетом приоритета
• Лучшая интеграция с другими модулями системы
33. UI-тесты + CI
• Интеграция проекта UI-тестов в Bamboo
• Запуск билдов
• Поддержка релизного процесса
• Отчетность
• Отличная кастомизация запуска
++
34. Конфигурация запуска Bamboo -> Acceptance
• Bamboo поддерживает переменные кастомизации запуска
UI-тесты + CI
39. В чем профит
• Минимизировали стоимость регрессионного тестирования
• Релизы «монолитных» проектов 2 раза в неделю
• Развитие сотрудников в смежных к QA областях IT
• Высокий уровень мотивации QA-специалистов
Детализация релизного цикла одной из команд в человеко-часах
40. Выводы
1. Запускайте тесты как можно чаще
2. Работайте над лучшей интеграцией системы UI-тестов с другими
инструментами
3. Гибкость и поддерживаемость — не пустые слова
4. Следите за показателями QA-процессов
5. QA должно быть частью процесса разработки
Цель: Рассказать про принципы и конкретные приемы, которые помогут добиться максимума эффективности от вашей системы UI-тестирования.
7 проектов
314 сотрудников
1 млн посетителей
Наши принципы: в туту.ру не сотрудников…
Не нужно опасаться наследования через несколько классов, на примере видно, что ассерты наследуют от phpUnit
Скрывайте реализацию механики работы с интерфейсными блоками в отдельных классах и вызывайте их в тестах. Другими словами, инкапсуляция.
Unit-тесты дополняют систему UI-тестов, они не являются противоположностью UI-тестам. Встроены в pre-push и post-commit-хуки, поэтому запускаются по каждому коммиту
Тестовую документацию мы советуем хранить рядом с кодом тестов, таким образом мы связываем UI-тесты и тест-кейсы в одно целое, особенно это удобно при формировании отчетов, у каждого теста есть описание, по которому можно быстро понять, какие именно риски он собой закрывает. Реализован данный функционал при помощи PHPDoc.
Какие у нас существуют примеры тегов для описания тест-кейсов
Тест, который по каким-либо причинам не может быть автоматизирован помечается тегом manualcase
Тот же самый механизм мы используем для того, чтобы управлять тестовыми комплектами. Мы используем тестовые наборы для определенной функциональности, есть наборы для релизного, RC-циклов, и вообще, создание наборов ограничивается только фантазией QA-специалистов. Каждый тест может быть включен в несколько наборов, мы их обозначаем при помощи тега @labels.
И тут мы переходим к интеграции UI-тестов с CI
Про самые часто используемые параметры кастомизации билдов.