Теперь у нас есть четкий алгоритм передачи сборок в тестирование и только после — в релиз.
- Как только фича готова, она передается в тестирование.
- После первого цикла тестов заводятся баги
- Приоритезируем баги и решаем что берем в разработку для следующей итерации
- Разработчики фиксят баги
- Проверяем фиксы и тестируем фичу
- Если опять вылезли баги, повторяем шаги 1-5
- После того как фича протестирована, она готова попасть в список Release Candidat — сюда попадают протестированные функции
- Весь протестированный функционал собирается в Релизной сборке
- Сборка передается в отдел QA и попадает на инсталляционное тестирование, регрессионное тестирование и проверка на соответствие требованиям App Store и Google Play
- QA отдел составляет отчет, и релиз отправляется в стор.
Чтобы оптимизировать само тестирование мы автоматизируем API, мобильные приложение работают со своим middleware — его тестируем в полной мере. Поскольку роботы часто работают с закрытой инфраструктурой банков и страховых компаний, у нас не всегда есть доступ к backend-системам заказчика, в таких случаях для тестирования сквозных сценариев мы пишем автотесты для API и иногда нагрузку.
Несмотря на любовь роботов к алгоритмам, иногда есть смысл в точечной автоматизации, тем более, у нас очень талантливые QA-инженеры. Им мы выдали больше сотни устройств. Сейчас тестировщики могут менять смартфоны и планшеты каждый день — запаса хватит месяца на четыре.
Мы не тестируем на эмуляторах — кто гарантирует, что в них нет багов? Да и у самих устройств есть масса отличий: различные версии операционных систем в сочетании с оболочками Android (например, Huawei и их EMIU), разрешение и диагональ экрана, поля экрана (есть весьма специфичные рамки) и иногда различия в железе. Эмуляторы, увы, не учитывают этих «неожиданных» особенностей