Любой проект со временем растет и наполняется новыми функциональными возможностями. QA-процессы должны оперативно и адекватно на это реагировать. Например, увеличением количества тестов всех видов. В этом докладе мы будем говорить про UI-тесты, которые играют важную роль в создании качественного продукта.
Количество тестов постепенно растет: от 1000 к 3000, от 6000 к 9000+ и т.д. Чтобы эта лавина не "накрыла" наш QA-процесс, нужно с самого раннего этапа развития проекта автоматизации думать про эффективность всей системы и каждого теста в ней.
В этом докладе я расскажу, как сделать систему гибкой к изменениям, а также про эффективное использование каждого из тестов. Кроме того, мы поговорим про оценку и метрики не только процессов автоматизации, но и всего QA.
Avito Automation Meetup (26.08.2017)
https://avitotech.timepad.ru/event/542380/
3. Мы продаем ж/д, авиа и автобусные билеты, туры, бронируем отели и рассказываем о расписании.
Самый посещаемый сервис туристических услуг в России (по версии comScore).
4. Про что поговорим
1.Принципы тестостроения
2.Инструмент UI-тестирования в процессах QA-команды
3.Улучшаем эффективность каждого теста
4.Метрики
5.CI и релиз-инжиниринг
11. Принципы тестостроения
• Максимальная простота восприятия
• Высокий уровень абстракции
• Правильный нейминг, мы за этим следим
• PageObject
• Каждый проект максимально независим от других
• Обязательный Code Review всех изменений проекта в Bitbucket
• Pre-push и post-commit хуки для защиты работоспособности ядра
14. Инструмент UI-тестирования в процессах QA-команды
Продуктовые процессы:
• Любые тесты должны приносить пользу с самого раннего этапа разработки
• Поддержка тестового покрытия — это стандартная часть тестирования
задачи
• Задача не должна мерджиться в master, если она ломает какие-либо тесты
• Трудозатраты каждого этапа QA-процесса должны мониториться
15. Инструмент UI-тестирования в процессах QA-команды
UI-тесты в релизном цикле:
• Запуск тестов как можно чаще, согласно этапам разработки задачи
• Каждый этап с максимально «зелеными» тестами, за этим следим
19. Улучшаем эффективность каждого теста
• Проект контроля и управления тестовыми контейнерами
• Управление потоками
• Информация о загруженности
• Лучшая интеграция с модулем Runner
20. Улучшаем эффективность каждого теста
• Свой Runner тестов
• Низкое потребление ресурсов
• Гибкость в развитии
• Балансировка загруженности с учетом приоритета
• Лучшая интеграция с другими модулями системы
22. Улучшаем эффективность каждого теста
• Описание и лейблы
• Управление тестовыми наборами
• Описание теста в одном месте с кодом
• По лейблам автоматически строится репорт
• Лучшая интеграция с CI Bamboo
23. Улучшаем эффективность каждого теста
• HTML-репорт
• Формируется индивидуально для каждого запуска
• QA-специалист получает возможность быстрой оценки качества продукта
• Уменьшает время актуализации тестов
24. Улучшаем эффективность каждого теста
• «Мягкие» ассерты
• Позволяют дать информацию о качестве целого блока в рамках одного теста
• Более безопасны в сложной тестовой логике
25. Улучшаем эффективность каждого теста
• Гибкая система настроек запуска
• Отвечаем потребностям QA-специалистов
• Обеспечивает лучшую интеграцию с CI
• Факты
• Больше 30 параметров
• on-demand
• bug-skipped
• js-error-seeker
• notify-maintainer
• …
31. Релиз-инжиниринг
• Интеграция проекта UI-тестов в Bamboo
• Запуск билдов
• Отчетность
• Поддержка релизного процесса
• Автоматический запуск по расписанию
• Smoke-набор тестов
• Автоматический «откат» релиза, если что-то пошло не так
++
34. Выводы
1.Каждый тест должен запускаться как можно чаще
2.Взаимная интеграция модулей системы UI-тестирования очень важна, ради
этого стоит писать свою реализацию
3.Система должна быть гибкой и поддерживаемой, готовые инструменты не
всегда отвечают этим запросам
4.Следите за показателями QA-процессов
5.QA должно быть частью процесса разработки, наши инструменты должны это
поддерживать