2. Обо мне*
2
Антон Кузнецов, 24 года
25 лет в мобильной разработке
30 лет опыта в юриспруденции
Автор канала в Telegram о
путешествиях
Контрибьютор в приватные репо,
а также react-native, appium, webdriverio
*Денис Измайлов был тут
4. 4
• Электронный сомелье
• Consumer и Enterprise приложения (iOS & Android)
• Только на американский рынок
• Мы знаем что вам стоит выпить
• И чем стоит закусить
7. Опыт
• 2 js-разработчиков
• 1 Android-разработчик
• 1 Тестировщик
• Набор тестов для Web
• Набор тестов для Android
• Набор утилит для запуска тестов
7
8. • Все приложение, а не отдельный компонент
• Имитация пользовательского поведения, а не
низкоуровневое тестирование
• Тестирование связки действий, а не в
изолированном компоненте
• Неуверенность vs уверенность
E2E vs Unit
8
9. • Вчера вы web-разработчик, сегодня вы -
специалист широкого профиля
Зачем это вам?
9
10.
11. • Вчера вы web-разработчик, сегодня вы —
специалист широкого профиля
• Вчера вы ничего не знали о вашем мобильном
приложении, сегодня — вы даете советы по UX
Зачем это вам?
11
12. ГИФКА С ТРИНИТИ ПРО СЮЖЕТ С ОБУЧЕНИЕМ
ВОЖДЕНИЯ ВЕРТОЛЕТА
- Пока нет.- Оператор- Тэнк, мне нужна программа управления вертолетом- PROFIT!- Ты умеешь летать на этой штуке?- Погнали!
13. • Вчера вы web-разработчик, сегодня вы —
специалист широкого профиля
• Вчера вы ничего не знали о вашем мобильном
приложении, сегодня — вы даете советы по UX
• Вчера мобильные разработчики получали больше
вас, сегодня — они ваши помощники…
Зачем это вам?
13
16. • Вчера вы web-разработчик, сегодня вы —
специалист широкого профиля
• Вчера вы ничего не знали о вашем мобильном
приложении, сегодня — вы даете советы по UX
• Вчера мобильные разработчики получали больше
вас, сегодня — они ваши помощники
• Ваши возможности могут превзойти ваши
ожидания
Зачем это вам?
16
17. • Appium vs. Calabash
• Command Line Interface
• Webdriver API vs. Calabash API (Cucumber)
• GUI inspector (Appium.app) vs. CLI inspector
• Низкий порог вхождения vs. Знание Ruby
• Appium имеет большее сообщество
Инструменты
17
18.
19.
20. • В настоящее время (ноябрь 2016) работает только
с UI Automator (Xcode 7)
• Для XCUITest Framework (Xcode 8) существует
Appium-iOS-Inspector
Ограничения Appium Inspector
20
21.
22. 1. Запускаем Appium
2. Запускаем симулятор
3. Инициализируем запуск тестов
4. Проверяем, что все успешно запущено
5. Прогоняем тесты
Запуск тестов
22
29. • Вернуться на главный экран
• Генератор кнопок главного экрана
• Логин / Логаут
Хэлпер
29
30.
31. • Вернуться на главный экран
• Генератор кнопок главного экрана
• Логин / Логаут
• Выставить локейшен через приложение
• Обойти длинный список (свайп + сбор данных)
• Найти кнопку DONE на клавиатуре
Хэлпер
31
32. • Стартовая точка — главный экран
• Тестовый набор атомарен
• Он должен сам о себе позаботиться
• Не использовать метод .pause()
• Ну, можно, но только в особенном случае
• Использовать повсеместно .waitForVisible()
Договоренности
32
33. • Тесты идут долго
• Держите текст сценария на русском языке
• Пройдитесь по нему с помощью Appium Inspector
• Смело используйте async/await внутри try/catch
• При необходимости пишите видео тестов
• Это все прекрасно работает внутри CI
33
О чем еще стоит знать?
34. • Тестирование — это, как правило, боль.
• Но, как и в спорте, боль — это лишь этап.
• В итоге это колоссальный опыт для вас.
• Почти все поддается автоматизации.
• Даже оплата через Pay.
• Тестирование — это способ немного отдохнуть от
разработки новых фич и укрепить существующие
Выводы
34