Software quality assurance days
20 Международная конференция
по вопросам качества ПО
sqadays.com
Минск. 24–26 ноября 2016
Дмитрий Химион
Москва, Россия
Анализ инструментов автоматизации
мобильного тестирования
Анализ инструментов автоматизации мобильного тестирования
Дмитрий Химион
руководитель направления
автоматизации тестирования
Performance Lab
Докладчик на конференциях:
62 проектов по автоматизации тестирования
+9 проекта - прототипы инструментария АТ
Надо фото• SQA Days 13
• ITSM Forum
• SQA Days 14
• SQA Days 15
• SQA Days 16
• CodeFest 2015
• SQA Days 17
• Quality days
• SQA Days 18
• CodeFest 2016
• SQA Days 19
• QA FEST 2016
Введение
Анализ инструментов автоматизации мобильного тестирования
SQA Days#16
С инструментами автоматизации
тестирования
Всё очень хорошо!
План доклада
• Чем пользуемся, в чём нуждаемся?
• Ограничения исследования
• Критерии анализа
• Анализ инструментов
• Main-stream & Trend инструменты
• Итоги
• Вопросы
Анализ инструментов автоматизации мобильного тестирования
Анализ инструментов автоматизации мобильного тестирования
Что нам необходимо?
Требования тестирования:
• Работа в одной «эко-системе» с разработчиками
• Покрытие устройств целевой аудитории
• Удобный для проекта язык программирования
• Наборы устройств
• Наборы тестов
• Наборы данных
o @regression
o @smoke
o @sanity
@adminDataSet
@android
@managerDataSet
@workerDataSet
по версии ОС @version[x.x]
@ios
Анализ инструментов автоматизации мобильного тестирования
Что нам необходимо?
Требования к управлению тестами:
• Доступность тестирования для каждого в команде
• Полная информация о тестировании моб. приложений
• Разделение ошибок по источникам появления
• Общий доступ к результатам тестирования
Анализ инструментов автоматизации мобильного тестирования
Что нам необходимо?
Условия работы на проекте:
• Распределённая команда
• Физическая недоступность тестовых стендов
• Разница часовых поясов
Анализ инструментов автоматизации мобильного тестирования
Ограничения исследования
Mobile OS:
• WinPhone
• BlackBerry
• FireFoxOS
Анализ инструментов автоматизации мобильного тестирования
Ограничения исследования
Mobile OS:
• WinPhone
• BlackBerry
• FireFoxOS
Эй, Windows Phone
в тренде!!!
Ограничения исследования
Mobile OS:
• WinPhone
• BlackBerry
• FireFoxOS
Анализ инструментов автоматизации мобильного тестирования
Но тренд же…
Анализ инструментов автоматизации мобильного тестирования
Ограничения исследования
Mobile OS:
• WinPhone
• BlackBerry
• FireFoxOS
Remote mobile services:
• Perfecto mobile
• pCloud
• Remote TestKit
• SauceLabs
• AWS Device Farm
• АПК типа SIGOS и т.п.
• Emulators
Анализ инструментов автоматизации мобильного тестирования
• DeviceAnywhere Studio
• SeeTest
• TestComplete 12
• Ranorex
• Squish
• HP UFT
• IBM RFT
• SilkMobile
• Espresso 2+
• XCTest
• Appium
• Calabash
• Selendroid
• UI Automator
• UI Automation
• Robotium
Ограничения исследования
Анализ инструментов автоматизации мобильного тестирования
Оценочные критерии инструментов
• Object spy
• Technology interaction
• Process interaction
Mobile
platforms
• Record management
• Object auto-definition
• Test forming
Record&Play
• Parameterization
• Test configuration
• Test parallelization
• Test sharding
Test
management
• Extansions
• Customisation
• Informativeness
Logs/Reports
• Native
• Hybrid
• Mobile web
App type
support
• Application
• Device
Context
support
• Language
• Dev. usability
• Debug tools
IDE
• Integrations
• HandlersAPI
Анализ инструментов автоматизации мобильного тестирования
Шкала оценки критериев
Критерий
Оценка
-2 -1 0 1 2
Рефакторинг
Анализ инструментов автоматизации мобильного тестирования
Шкала оценки критериев
Критерий
Оценка
-2 -1 0 1 2
Рефакторинг
Оценка
Open Source Proprietary
1 2
Анализ инструментов автоматизации мобильного тестирования
Шкала оценки критериев
Критерий
Оценка
-2 -1 0 1 2
Рефакторинг
Оценка
Open Source Proprietary
-8… 0… +8
Анализ инструментов автоматизации мобильного тестирования
Оценочные критерии
Mobile
Platforms
Критерий
Оценка
Open Source Proprietary
Распознавание UI элементов
Android
iOS
Поддержка 1 моб. платформы
Поддержка 2 моб. платформ
Поддержка более чем 2 моб. платформ
+6+3
Анализ инструментов автоматизации мобильного тестирования
Оценочные критерии
App type
support
Критерий
Оценка
Open Source Proprietary
Взаимодействие с нативным приложением
Взаимодействие с гибридным приложением
Взаимодействие с веб приложением
Необходимость инструментирования приложения
+1+2
Оценочные критерии
Context
support +1-1
Критерий
Оценка
Open Source Proprietary
Взаимодействие с контекстом приложения
Взаимодействие с контекстом устройства
Анализ инструментов автоматизации мобильного тестирования
Анализ инструментов автоматизации мобильного тестирования
Оценочные критерии
Record&
Play
Критерий
Оценка
Open Source Proprietary
Запись теста
Качество записанного кода
Воспроизведение теста
Автоматическое определение элементов
Форматирование записанного теста
-2-3
Анализ инструментов автоматизации мобильного тестирования
Оценочные критерии
IDE
Критерий
Оценка
Open Source Proprietary
Навигация по коду
Рефакторинг кода
Подсветка синтаксиса
Интеграция с Bug tracker/VCS
Кастомизация
Инструментарий отладки
Язык программирования
-2+11
Анализ инструментов автоматизации мобильного тестирования
Оценочные критерии
API
Критерий
Оценка
Open Source Proprietary
Надёжность работы API
Скорость работы API
Масштабируемость API
BDD / Gherkin
Data Driven Testing
Keyword Driven Testing
Object Driven Testing – Page Object / Objects Repository
-1-1
Анализ инструментов автоматизации мобильного тестирования
Оценочные критерии
Test
Management
Критерий
Оценка
Open Source Proprietary
Параметризация тестов
Комбинирование/предицирование тестов
Механизм управления запуском тестов
Test parallelization
Test sharding
-2-1
Анализ инструментов автоматизации мобильного тестирования
Оценочные критерии
Logs&
Reports
Критерий
Оценка
Open Source Proprietary
Глубина по разделению ошибок
Доступные расширения
Оптимизация объёма лога
Расширение информативности лога
Логирование утилизации аппаратных ресурсов
-1-1
Main-stream & Trend инструменты
• DeviceAnywhere Studio
• SeeTest
• Appium 2
• XCTest
• Calabash
• Espresso 2+
Анализ инструментов автоматизации мобильного тестирования
Анализ инструментов автоматизации мобильного тестирования
Примеры по инструментам - Espresso 2.+
public void applyEducation() throws ScreenException, AssertionException {
clickAutomatorById(R.id.txt_choice_two);
}
package android.support.test.uiautomator;
UiObject element = FindersAutomator.byResourceId(resourceId, timeoutMs);
public UiSelector resourceId(String id) {
if (id == null) {
throw new IllegalArgumentException("id cannot be null");
}
return buildSelector(SELECTOR_RESOURCE_ID, id);
}
Анализ инструментов автоматизации мобильного тестирования
Примеры по инструментам - Espresso 2.+
<com.SECURE.views.CustomTextView
android:id="@+id/txt_choice_two"
style="@style/dialog_standard_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 2"
app:font="semi_bold" />
@Override
protected SECUREComponent createSECUREComponent() {
mTestComponent = DaggerAndroidTestSECUREComponent.builder()
.generalModule(new GeneralModule())
.managerModule(new ManagerModule(this))
.build();
return mTestComponent;
}
clickAutomatorById(R.id.txt_choice_two);
Анализ инструментов автоматизации мобильного тестирования
Примеры по инструментам KeyNote Studio
Анализ инструментов автоматизации мобильного тестирования
Примеры по инструментам KeyNote Studio
Hardware
Keyboard
Анализ инструментов автоматизации мобильного тестирования
Итоги
IDE
API
Mobile Platforms
App type support
Context support
Record&Play
Test management
Logs/Reports
-1
-3
-1
-3
+1
-2
-2
-4
OS LS
+12
0
+3
+3
-2
+1
+6
+1
-14; +14
-14; +14
-12; +12
-8; +8
-4; +4
-10; +10
-10; +10
-10; +10
Анализ инструментов автоматизации мобильного тестирования
Итоги
• Функций «Test sharding» и «Test parallelization» НЕТ
• Функционал App layer сильно превалирует над Device layer
• Недооценена важность логирования Hardware.
• Лицензионные инструменты мало чем лучше Open-Source
Анализ инструментов автоматизации мобильного тестирования
Вопросы?
Picasso-key
dmitry.khimion@gmail.com
dmitry.khimion

Анализ инструментов автоматизации мобильного тестирования

  • 1.
    Software quality assurancedays 20 Международная конференция по вопросам качества ПО sqadays.com Минск. 24–26 ноября 2016 Дмитрий Химион Москва, Россия Анализ инструментов автоматизации мобильного тестирования
  • 2.
    Анализ инструментов автоматизациимобильного тестирования Дмитрий Химион руководитель направления автоматизации тестирования Performance Lab Докладчик на конференциях: 62 проектов по автоматизации тестирования +9 проекта - прототипы инструментария АТ Надо фото• SQA Days 13 • ITSM Forum • SQA Days 14 • SQA Days 15 • SQA Days 16 • CodeFest 2015 • SQA Days 17 • Quality days • SQA Days 18 • CodeFest 2016 • SQA Days 19 • QA FEST 2016
  • 3.
    Введение Анализ инструментов автоматизациимобильного тестирования SQA Days#16 С инструментами автоматизации тестирования Всё очень хорошо!
  • 4.
    План доклада • Чемпользуемся, в чём нуждаемся? • Ограничения исследования • Критерии анализа • Анализ инструментов • Main-stream & Trend инструменты • Итоги • Вопросы Анализ инструментов автоматизации мобильного тестирования
  • 5.
    Анализ инструментов автоматизациимобильного тестирования Что нам необходимо? Требования тестирования: • Работа в одной «эко-системе» с разработчиками • Покрытие устройств целевой аудитории • Удобный для проекта язык программирования • Наборы устройств • Наборы тестов • Наборы данных o @regression o @smoke o @sanity @adminDataSet @android @managerDataSet @workerDataSet по версии ОС @version[x.x] @ios
  • 6.
    Анализ инструментов автоматизациимобильного тестирования Что нам необходимо? Требования к управлению тестами: • Доступность тестирования для каждого в команде • Полная информация о тестировании моб. приложений • Разделение ошибок по источникам появления • Общий доступ к результатам тестирования
  • 7.
    Анализ инструментов автоматизациимобильного тестирования Что нам необходимо? Условия работы на проекте: • Распределённая команда • Физическая недоступность тестовых стендов • Разница часовых поясов
  • 8.
    Анализ инструментов автоматизациимобильного тестирования Ограничения исследования Mobile OS: • WinPhone • BlackBerry • FireFoxOS
  • 9.
    Анализ инструментов автоматизациимобильного тестирования Ограничения исследования Mobile OS: • WinPhone • BlackBerry • FireFoxOS Эй, Windows Phone в тренде!!!
  • 10.
    Ограничения исследования Mobile OS: •WinPhone • BlackBerry • FireFoxOS Анализ инструментов автоматизации мобильного тестирования Но тренд же…
  • 11.
    Анализ инструментов автоматизациимобильного тестирования Ограничения исследования Mobile OS: • WinPhone • BlackBerry • FireFoxOS Remote mobile services: • Perfecto mobile • pCloud • Remote TestKit • SauceLabs • AWS Device Farm • АПК типа SIGOS и т.п. • Emulators
  • 12.
    Анализ инструментов автоматизациимобильного тестирования • DeviceAnywhere Studio • SeeTest • TestComplete 12 • Ranorex • Squish • HP UFT • IBM RFT • SilkMobile • Espresso 2+ • XCTest • Appium • Calabash • Selendroid • UI Automator • UI Automation • Robotium Ограничения исследования
  • 13.
    Анализ инструментов автоматизациимобильного тестирования Оценочные критерии инструментов • Object spy • Technology interaction • Process interaction Mobile platforms • Record management • Object auto-definition • Test forming Record&Play • Parameterization • Test configuration • Test parallelization • Test sharding Test management • Extansions • Customisation • Informativeness Logs/Reports • Native • Hybrid • Mobile web App type support • Application • Device Context support • Language • Dev. usability • Debug tools IDE • Integrations • HandlersAPI
  • 14.
    Анализ инструментов автоматизациимобильного тестирования Шкала оценки критериев Критерий Оценка -2 -1 0 1 2 Рефакторинг
  • 15.
    Анализ инструментов автоматизациимобильного тестирования Шкала оценки критериев Критерий Оценка -2 -1 0 1 2 Рефакторинг Оценка Open Source Proprietary 1 2
  • 16.
    Анализ инструментов автоматизациимобильного тестирования Шкала оценки критериев Критерий Оценка -2 -1 0 1 2 Рефакторинг Оценка Open Source Proprietary -8… 0… +8
  • 17.
    Анализ инструментов автоматизациимобильного тестирования Оценочные критерии Mobile Platforms Критерий Оценка Open Source Proprietary Распознавание UI элементов Android iOS Поддержка 1 моб. платформы Поддержка 2 моб. платформ Поддержка более чем 2 моб. платформ +6+3
  • 18.
    Анализ инструментов автоматизациимобильного тестирования Оценочные критерии App type support Критерий Оценка Open Source Proprietary Взаимодействие с нативным приложением Взаимодействие с гибридным приложением Взаимодействие с веб приложением Необходимость инструментирования приложения +1+2
  • 19.
    Оценочные критерии Context support +1-1 Критерий Оценка OpenSource Proprietary Взаимодействие с контекстом приложения Взаимодействие с контекстом устройства Анализ инструментов автоматизации мобильного тестирования
  • 20.
    Анализ инструментов автоматизациимобильного тестирования Оценочные критерии Record& Play Критерий Оценка Open Source Proprietary Запись теста Качество записанного кода Воспроизведение теста Автоматическое определение элементов Форматирование записанного теста -2-3
  • 21.
    Анализ инструментов автоматизациимобильного тестирования Оценочные критерии IDE Критерий Оценка Open Source Proprietary Навигация по коду Рефакторинг кода Подсветка синтаксиса Интеграция с Bug tracker/VCS Кастомизация Инструментарий отладки Язык программирования -2+11
  • 22.
    Анализ инструментов автоматизациимобильного тестирования Оценочные критерии API Критерий Оценка Open Source Proprietary Надёжность работы API Скорость работы API Масштабируемость API BDD / Gherkin Data Driven Testing Keyword Driven Testing Object Driven Testing – Page Object / Objects Repository -1-1
  • 23.
    Анализ инструментов автоматизациимобильного тестирования Оценочные критерии Test Management Критерий Оценка Open Source Proprietary Параметризация тестов Комбинирование/предицирование тестов Механизм управления запуском тестов Test parallelization Test sharding -2-1
  • 24.
    Анализ инструментов автоматизациимобильного тестирования Оценочные критерии Logs& Reports Критерий Оценка Open Source Proprietary Глубина по разделению ошибок Доступные расширения Оптимизация объёма лога Расширение информативности лога Логирование утилизации аппаратных ресурсов -1-1
  • 25.
    Main-stream & Trendинструменты • DeviceAnywhere Studio • SeeTest • Appium 2 • XCTest • Calabash • Espresso 2+ Анализ инструментов автоматизации мобильного тестирования
  • 26.
    Анализ инструментов автоматизациимобильного тестирования Примеры по инструментам - Espresso 2.+ public void applyEducation() throws ScreenException, AssertionException { clickAutomatorById(R.id.txt_choice_two); } package android.support.test.uiautomator; UiObject element = FindersAutomator.byResourceId(resourceId, timeoutMs); public UiSelector resourceId(String id) { if (id == null) { throw new IllegalArgumentException("id cannot be null"); } return buildSelector(SELECTOR_RESOURCE_ID, id); }
  • 27.
    Анализ инструментов автоматизациимобильного тестирования Примеры по инструментам - Espresso 2.+ <com.SECURE.views.CustomTextView android:id="@+id/txt_choice_two" style="@style/dialog_standard_action" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button 2" app:font="semi_bold" /> @Override protected SECUREComponent createSECUREComponent() { mTestComponent = DaggerAndroidTestSECUREComponent.builder() .generalModule(new GeneralModule()) .managerModule(new ManagerModule(this)) .build(); return mTestComponent; } clickAutomatorById(R.id.txt_choice_two);
  • 28.
    Анализ инструментов автоматизациимобильного тестирования Примеры по инструментам KeyNote Studio
  • 29.
    Анализ инструментов автоматизациимобильного тестирования Примеры по инструментам KeyNote Studio Hardware Keyboard
  • 30.
    Анализ инструментов автоматизациимобильного тестирования Итоги IDE API Mobile Platforms App type support Context support Record&Play Test management Logs/Reports -1 -3 -1 -3 +1 -2 -2 -4 OS LS +12 0 +3 +3 -2 +1 +6 +1 -14; +14 -14; +14 -12; +12 -8; +8 -4; +4 -10; +10 -10; +10 -10; +10
  • 31.
    Анализ инструментов автоматизациимобильного тестирования Итоги • Функций «Test sharding» и «Test parallelization» НЕТ • Функционал App layer сильно превалирует над Device layer • Недооценена важность логирования Hardware. • Лицензионные инструменты мало чем лучше Open-Source
  • 32.
    Анализ инструментов автоматизациимобильного тестирования Вопросы? Picasso-key dmitry.khimion@gmail.com dmitry.khimion