Авто%тесты)в)кармане)Open%source+решения+для+автоматизации+тестирования+на+мобильных+платформах+
! !
Черемушкин*Дмитрий*
! 3Тестирование*кросс3платформенных*приложений*
2Введение*
1 О*себе*
План доклада
!
5
6
7
Тестирование*адаптивных*веб3сайтов*
Переход*от*ручной**к*автоматизированной*
регрессии**(Android)*
Итоги*
*
О+себе+
Черемушкин**Дмитрий*QA3лид***|**инженер*по*автоматизации*
2"
О"себе"
***Мобильное*тестирование*
****Тестирование*и*автоматизация*
7"1" ***Консуль3*тирование*
2" ***Управление*QA3командой*
время,'лет'
• Руководство+QA%командой+• Аналитические+задачи+• Разработка+фреймворков+• Автоматизация+рутинных+задач+• Консультирование+
слайд"5"
Введение+
Введение+
�!
С"чего"начинается"
автоматизация*мобильного*тестирования?"
!
03#
бюджет* +
¸+¦+
особенности*проекта*
выбор*инструмента*
слайд"7"
Open/source"средства"автоматизации+
Appium"
!RoboYum"UI"Automator"
MonkeyTalk"Calabash"
Coded"UI"
Selendroid"
!Winium"UI"AutomaAon"
!
KIF"Frank"
ios3driver"AndroidDriver"
fMBT"
Bot3Bot"
WinPhone*WebDriver"BridgIt"
Espresso"
!!
слайд"8"
Culebra"EventRecorder"
�!!
Тестирование+кросс%
платформенных+приложений+
! ! !
Ситуация(
Идет*разработка*
приложений*под*3*платформы:*
Android,*iOS,*Windows*Phone*
поддержка*нескольких*платформ *
*
*
*
Требования(к(инструменту:*
Определение"требований"
отсутствие*изменений*в*коде*приложения
*работа*на*физических*устройствах*и*эмуляторах*
сообщество*пользователей | запуск*в*“облаках” *
слайд"10"
Нужно(
Автоматизировать*
тестирование*“основных”*
сценариев*использования*
Сравнение"инструментов"! ! !
AndroidDriver* � N/A#Appium* * * *BridgIt* � * N/A#Calabash* * * � !Coded*UI* * !Espresso* * * *fMBT* * *Frank* *ios3driver* * *KIF* *MonkeyTalk* * * *RoboYum* * *Selendroid* * !UI*Automator* * !UI*AutomaYon* * * * !Winium* * * * *WinPhone*WebDriver* * * � * N/A#
слайд"11"
Сравнение"инструментов"! ! !
AndroidDriver" � " N/A#Appium* * * *BridgIt" � " N/A#Calabash* * * � !Coded*UI* * !Espresso* * * * !fMBT* * *Frank* *ios3driver* * *KIF* *MonkeyTalk* * * *RoboYum* * *Selendroid* * !UI*Automator* * !UI*AutomaYon* * * * !Winium* * * * *WinPhone"WebDriver" * * � " N/A#
слайд"12"
Сравнение"инструментов"! ! !
Appium* * * *Calabash" * * � !Coded*UI* * !Espresso* * * * !fMBT* * *Frank" *ios3driver* * *KIF" *MonkeyTalk" * * *RoboYum* * *Selendroid* * !UI*Automator* * !UI*AutomaYon* * * * !Winium* * * * *
слайд"13"
Сравнение"инструментов"
! ! !Appium" " " " ! ! ! ! C#,"Java,"JavaScript,"
PHP,"Python,"Ruby,"…"
Selendroid* * ! ! ! ! ! C#,*Java,*JavaScript,*PHP,*Python,*Ruby,*…*
Espresso* * * * * ! ! Java*
RoboYum* * * * * ! ! Java*
UI*Automator* * ! ! ! ! ! Java*
UI*AutomaYon* * * * ! ! ! ! ! JavaScript*
fMBT* * * * * * * * C++,*Javascript,*Python*
ios3driver* * * � * * * * C#,*Java,*JavaScript,*PHP,*Python,*Ruby,*…*
Coded"UI" " ! ! ! C#,"C++,"VB"
Winium" " " " " ! ! C#,"Java,"JavaScript,"PHP,"Python,"Ruby,"…"
слайд"14"
Сравнение"инструментов"
слайд"15"
&## #:#
Автоматизация*тестирования*мобильных*приложений"
#:#
Что*автоматизировать?*
Что*НЕ*автоматизировать?*
• позитивные'действия'
• направленные'на'получение'результата'
• в'виде'сценариев,'близких'к'поведению'
пользователя'
Практические"рекомендации"
• камера,'геолокация,'сеть,'Bluetooth,'NFC,'…'
• интеграции'с'другими'сервисами'
слайд"16"
Экраны*—*PageObject*
Практические"рекомендации"
ХPath3локаторы*
Локаторы*—*Map*/*HashMap*
Устройства*в*”облаках”*
слайд"17"
�!!
Тестирование+адаптивных+веб%сайтов+
Ситуация(
Веб3сайт*адаптируется*
под*мобильные*платформы.*
Есть*настольные*Selenium3тесты.*
Нужно(
Покрыть*тестами*
мобильные*браузеры*на*
платформах*Android*и*iOS.*
Определение"требований"
слайд"19"
запуск*браузера,*поддержка*фреймов
интеграция*с*Selenium Se#
Требования(к(инструменту:*
поддержка*платформ*Android,*iOS *
работа*на*физических*устройствах*и*эмуляторах *
Сравнение"инструментов"
слайд"20"
! ! ! Se#
Appium* * * * * ! ! * *
Selendroid* * * * ! ! *
AndroidDriver* * * * * * * *
ios3driver* * * * * � * ! � *
BridgIt* * * * * * ! * *
WinPhone*WebDriver* * * * * * ! *
Сравнение"инструментов"
слайд"21"
еще'слишком'много'ограничений'для'полноценной'автоматизации'мобильного'“веба”'
:#
&## #:#
Автоматизация*тестирования*мобильных*веб3сайтов"
Инициализируйте*элементы*в*зависимости*от*размера*экрана*�
Практические"рекомендации"
слайд"22"
!
!
js:!return!document.documentElement.clientWidth!
определить*ширину*экрана*—*сравнить*её*с*граничным*значением*—*подгрузить*соответствующие*элементы*
Учитывайте*статистику*по*использованию*устройств*
Практические"рекомендации"
слайд"23"
�
¨�!
!Переход+от+ручной+к+автомати%+зированной+регрессии+
Ситуация(
Android3приложение*
тестируется*вручную.*
Специалистов*по*автоматизации*нет.*
Нужно(
Проводить*регрес3*
сионное*тестирование*
автоматизированно.*
Определение"требований"
слайд"25"
поддержка*record*&*replay
Требования(к(инструменту:*
независимость*от*разрешения*экрана *
наличие*функций*проверки*UI3элементов ¾*
автоматизация*действий*вне*приложения
Сравнение"инструментов"
слайд"26"
¾ ! UX
Culebra* * * * * * *
Bot3Bot* * * * * * ~#Appium*Inspector* * * * * ~# ~#Selendroid*Inspector* * * * * ~# ~#EventRecorder* * * * * * *
слайд"27"
Автоматизация*регрессионного*тестирования"
!
Сравнение"инструментов"
ulebra*
Итоги+
®!
!
Гибридные"приложения"
Мобильный"веб"
Что"рассмотрено""|""что"существует?"
Нативные"приложения"
!
52%#*#кросс3платформенные#
Всё'то,'чем'пользуются'конечные'потребители'
*'State'of'Mobility'Survey'2015,'Progress'
слайд"29"
Программирование*
IDEA)
Воспроизведение*действий*
Автоматические*анализ*и*проверка*!
!
Способы"автоматизации"
слайд"30"
опытные"специалисты"
Selenium,*тест3дизайн,*архитектура*фреймворков*
опытные"+"начинающие"
начинающие"Record*&*replay*
тест3дизайн,*соглашения*
тест3дизайн*
Appium*
Appium*&*keyword3driven*BDD*/*Robot*Framework*
Способы"автоматизации"
слайд"31"
Контакты+
!!Спасибо!
за!внимание!dmitry.cheremushkin*
[email protected]@griddynamics.com*
+dcheremushkin**
+