РИТ++ 2017, App's Conf
Зал Найроби, 6 июня, 12:00
Тезисы:
http://appsconf.ru/2017/abstracts/2821.html
- UI-тестами мы решали проблему быстрого поиска визуальных и навигационных несоответствий ввиду частых изменений общей кодовой базы и UI-элементов.
- В результате за несколько минут получаем скриншот-лист любого user journey и можем отправить его, при необходимости, как заказчику, так и дизайнеру.
- Мы всегда уверены в том, что если наши UI-тесты прошли, то мы имеем полноценно работающий роутинг.
- Как всегда, не обошлось без ложки дегтя. Recorder для генерации UI-тестов из XCode работает верно, но не учитывает особенностей вашего приложения, например, мультиязычность. Поделюсь советами, как сразу обходить стороной такие проблемы.
3. Как мы пришли к
этому?
• Проект активно живет и
развивается 2 года
• Команда разработчиков
увеличилась
• Проект состоит
не из одного приложения
• Core framework
34. Stub manager
class NSURLProtocol - позволяет предопределить работу
системы загрузки URL для iOS
1. Создать свой класс
2. Зарегистрировать его
Делается в два действия:
60. Time for screenshot
• Добавить SnaphotHelper.swift в таргет с тестами
• Вызвать внутри метода setup(): [Snapshot setupSnapshot:app]
• [Snapshot snapshot:@“Name screen" waitForLoadingIndicator:YES];
64. Мы получили
• Уменьшили количество багов с дизайном почти до 0
• Появилась проверка правильного роутинга в приложении
• Внедрили инструмент для быстрой генерации всех
скриншотов приложения и интегрировали тесты с CI
65. Минусы
• Время на внедрение UI тестов
• Поддержка тестов при рефакторинге
66. Использовать тесты стоит
• Если у вас долгосрочный проект
• Постоянный диалог по поводу пиксель перфект
• Сложная логика навигации в приложении