Доклад о том, какими принципами мы руководствовались при выборе платформы для автоматизации тестирования мобильных приложений. И почему Appium оптимальное решение для тех, кто хочет иметь кроссплатформенный фреймворк для ios и android.
2. ПАРУ СЛОВ О СЕБЕ:
АСЕЕВА АНАСТАСИЯ
П О Ч Е М У A P P I U M ?
Devops евангелист
Agile Testing тренер
Руководитель автоматизации
тестирования
В QA c 2012 года
В IT с 2007 года
В АльфаБанке внедряю Облака
Немного пишу код =)
Люблю Linux
3. ЗАЧЕМ НАМ
АВТОТЕСТЫ?
П О Ч Е М У A P P I U M ?
"У вебчика есть автотесты, а у нас нет!"
...на самом деле:
Хотим быстро доставлять ценность до клиента!
4. Исследовали "рынок"
платформ и выбрали ТОП
подходящих, для
проверки гипотезы
Исследование
А С Е Е В А А Н А С Т А С И Я
01
В итоге исследования
выбрали appium.
Разработали ядро для
АБМ.
Пилот
02
До конца 2016го года разработать
кроссплатформенный smoke для Альфа
Мобайла
Разработка smoke-set для двух
платформ
03
СТРАТЕГИЯ
Н А Ш Е
Р А З В И Т И Е
5. Ограниченный
бюджет не позволяет
на проект брать
разработчиков с
разным
технологическим
стеком
ЧТО ХОТИМ?
ios LIKES
1500
75%
Java
Платформа должна
поддерживать BDD
библиотеки для написания
тестов, чтоб
супертестировщики
самостоятельно
поддерживали проект
Необходима
возможность
построить свою
"ферму" с устройствами
для распределенного
тестирования
Платформа должна
обладать развитым
интернет-community
Кроссплатформенное
Core
Автотесты для
android и ios
Ci:
Jenkins+Allure
Community
И С С Л Е Д О В А Н И Е
С П И С О К
О Г Р А Н И Ч Е Н И Й
6. Использование
библиотек BDD,
например JBehave
Использование
паттернов PageObject,
подхода DDD
А С Е Е В А А Н А С Т А С И Я
01
DDD, PageObjectBDD
03
Selenium-оподобный
подход. Низкий порог
вхождения в
использование
инструмента.
Selenium подход
02
Единый технологический стек для
автоматизации тестирования, как для
мобильных приложений так и для веб-
приложений
Переиспользование инженерных
практик и экспертизы
04ПРИНЦИПЫ
Р А З Р А Б О Т К И
Я Д Р А
7. К А К И Е П Л А Т Ф О Р М Ы
Р А С С М А Т Р И В А Л И
А С ЧЕМ СРАВНИВАЛИ?
П Р О И С С Л Е Д О В А Н И Е
Native
Crossplatform
VS.
8. А С ЧЕМ СРАВНИВАЛИ?
П Р О И С С Л Е Д О В А Н И Е
Native platform
Разработчик для UIAutomation - 150к +
Java разработчик для UIautomator - 120к +
ИТОГО:
- расходы на ЗП - 270к +
- удорожание сопровождения автотестов
СЛОЖНОСТИ В ПОИСКЕ НЕОБХОДИМЫХ КАДРОВ НА
РЫНКЕ
9. К А К И Е П Л А Т Ф О Р М Ы
Р А С С М А Т Р И В А Л И
А С ЧЕМ СРАВНИВАЛИ?
П Р О И С С Л Е Д О В А Н И Е
Crossplatform
Java разработчик - 120к +
Поддержка и сопровождение автотестов - силами
супертестировищиков
СЛОЖНОСТИ ПРИ ВЫХОДЕ ОБНОВЛЕНИЙ ДЛЯ
ПЛАТФОРМ ios
10. OPEN SOURCE ФРЕЙМВОРК
ДЛЯ АВТОМАТИЗАЦИ
ТЕСТИРОВАНИЯ NATIVE,
MOBILE, HYBRID
ПРИЛОЖЕНИЙ
П Р О A P P I U M
11. Ф И Л О С О Ф И Я
A P P I U M
4 ПРИНЦИПА
А С Е Е В А А Н А С Т А С И Я
1. Не нужно перекомпилировать или модифицировать приложение, для того чтобы
автоматизировать его
2. Не должны быть завязаны на определенный язык программирования или
фреймворк для того чтобы писать и запускать тесты
3. Фреймворк не должен переизобретать колесо, когда дело доходит до
автоматизации API
4. Фреймвор должен быть open source
12. О Б Щ Е Е И Н Ф О
ПРО APPIUM
П Р О A P P I U M
iOS
Android
на реальных девайсах
на симуляторах (iOS, FirefoxOS)
эмуляторах (Android).
нативные
гибридные
web приложения
Тесты можно запускать:
Можно тестировать:
Поддержка платформ:
13. Н Е М Н О Г О П Р О
Н А Ш
Ф Р Е Й М В О Р К
ЧТО ПОЛУЧИЛИ?
А С Е Е В А А Н А С Т А С И Я
14. Ф А Й Л О В А Я
С Т Р У К Т У Р А
СТРУКТУРА ПРОЕКТА
П Р О Ф Р Е Й М В О Р К
15. Г И Б К О Е
К О Н Ф И Г У Р И Р О В А Н И Е
КОНФИГУРИРОВАНИЕ
П Р О Ф Р Е Й М В О Р К
17. ТЕСТ-КЕЙСЫ В BDD
З А Ч Е М Н А М B D D ?
Конструкция:
Given
When
Then
Reports:
Allure
or
Serenity
18. И ВСЁ-ТАКИ ПОЧЕМУ
НА РУССКОМ ЯЗЫКЕ?
А С Е Е В А А Н А С Т А С И Я
А П О Т О М У Ч Т О S P E C I F I C A T I O N E X A M P L E
19. ЛОКАТОРЫ
П Р О Ф Р Е Й М В О Р К
Использование DDD (Data Driven Development) для
проектирования кроссплатформности
androidустройства
20. ЛОКАТОРЫ
П Р О Ф Р Е Й М В О Р К
Использование DDD (Data Driven Development) для
проектирования кроссплатформности
Преимущества данного подхода:
Файл могут отредактировать даже тестировщики
Переиспользуемые локаторы хранятся и редактируются в одном месте
Упрощение поддержки автотестов
Если в проекте много тест-кейсов, то хранить локаторы в коде -
неоптимально
Если над проектом работают более 1го разработчика, упрощается
взаимодействие
21. CI: КАК ВЫГЛЯДИТ
И Н Ф Р А С Т Р У К Т У Р А
Наша целевая схема
Конфигурация CI
Jenkins
Appium
OS: Mac mini pro
Node.js
Job1
Job2
Job3
androidустройства
iosустройства
эмуляторы android
устройств
Appium
Java
JDK
22. К О Н Т А К Т Ы
КАК СО МНОЙ СВЯЗАТЬСЯ?
anastasia.aseeva
itraviesonastya
@travieso_nastya
А С Е Е В А А Н А С Т А С И Я