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

32
Software quality assurance days 20 Международная конференция по вопросам качества ПО sqadays.com Минск. 24–26 ноября 2016 Дмитрий Химион Москва, Россия Анализ инструментов автоматизации мобильного тестирования

Upload: sqalab

Post on 16-Apr-2017

981 views

Category:

Education


4 download

TRANSCRIPT

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

Software quality assurance days20 Международная конференция по вопросам качества ПОsqadays.com

Минск. 24–26 ноября 2016

Дмитрий ХимионМосква, Россия

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

Page 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

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

Введение

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

SQA Days#16С инструментами автоматизации

тестированияВсё очень хорошо!

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

План доклада

• Чем пользуемся, в чём нуждаемся?• Ограничения исследования• Критерии анализа• Анализ инструментов• Main-stream & Trend инструменты• Итоги• Вопросы

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

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

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

Что нам необходимо?

Требования тестирования:• Работа в одной «эко-системе» с разработчиками• Покрытие устройств целевой аудитории• Удобный для проекта язык программирования• Наборы устройств• Наборы тестов • Наборы данных

o@regressiono@smokeo@sanity

@adminDataSet

@android

@managerDataSet@workerDataSet

по версии ОС @version[x.x]@ios

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

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

Что нам необходимо?

Требования к управлению тестами:• Доступность тестирования для каждого в команде• Полная информация о тестировании моб. приложений• Разделение ошибок по источникам появления• Общий доступ к результатам тестирования

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

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

Что нам необходимо?

Условия работы на проекте:• Распределённая команда• Физическая недоступность тестовых стендов• Разница часовых поясов

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

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

Ограничения исследования

Mobile OS:• WinPhone• BlackBerry• FireFoxOS

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

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

Ограничения исследования

Mobile OS:• WinPhone• BlackBerry• FireFoxOS

Эй, Windows Phone в тренде!!!

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

Ограничения исследования

Mobile OS:• WinPhone• BlackBerry• FireFoxOS

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

Но тренд же…

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

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

Ограничения исследования

Mobile OS:• WinPhone• BlackBerry• FireFoxOS

Remote mobile services:• Perfecto mobile• pCloud• Remote TestKit• SauceLabs• AWS Device Farm

• АПК типа SIGOS и т.п.• Emulators

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

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

• DeviceAnywhere Studio• SeeTest • TestComplete 12• Ranorex• Squish• HP UFT• IBM RFT• SilkMobile

• Espresso 2+• XCTest• Appium• Calabash• Selendroid• UI Automator• UI Automation• Robotium

Ограничения исследования

Page 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

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

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

Шкала оценки критериев

Критерий Оценка-2 -1 0 1 2

 Рефакторинг        

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

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

Шкала оценки критериев

Критерий Оценка-2 -1 0 1 2

 Рефакторинг        

Оценка

Open Source

Proprietary

1 2

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

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

Шкала оценки критериев

Критерий Оценка-2 -1 0 1 2

 Рефакторинг        

Оценка

Open Source

Proprietary-8… 0… +8

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

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

Оценочные критерии

Mobile Platforms

КритерийОценка

Open Source Proprietary

Распознавание UI элементов   Android       iOS      Поддержка 1 моб. платформы      Поддержка 2 моб. платформПоддержка более чем 2 моб. платформ

+6+3

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

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

Оценочные критерии

App type support

КритерийОценка

Open Source ProprietaryВзаимодействие с нативным приложением  Взаимодействие с гибридным приложением      Взаимодействие с веб приложением      Необходимость инструментирования приложения      

+1+2

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

Оценочные критерии

Context support +1-1

КритерийОценка

Open Source Proprietary

Взаимодействие с контекстом приложения  Взаимодействие с контекстом устройства      

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

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

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

Оценочные критерии

Record&Play

КритерийОценка

Open Source Proprietary

Запись теста  Качество записанного кодаВоспроизведение теста      Автоматическое определение элементов      Форматирование записанного теста      

-2-3

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

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

Оценочные критерии

IDE

КритерийОценка

Open Source Proprietary

Навигация по коду  

Рефакторинг кода      

Подсветка синтаксиса      

Интеграция с Bug tracker/VCS      

КастомизацияИнструментарий отладкиЯзык программирования

-2+11

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

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

Оценочные критерии

API

КритерийОценка

Open Source Proprietary

Надёжность работы API  Скорость работы API      Масштабируемость API      BDD / Gherkin      Data Driven TestingKeyword Driven TestingObject Driven Testing – Page Object / Objects Repository

-1-1

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

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

Оценочные критерии

Test Management

КритерийОценка

Open Source Proprietary

Параметризация тестов  Комбинирование/предицирование тестов      Механизм управления запуском тестовTest parallelization      Test sharding      

-2-1

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

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

Оценочные критерии

Logs&Reports

КритерийОценка

Open Source Proprietary

Глубина по разделению ошибок  

Доступные расширения      

Оптимизация объёма лога      

Расширение информативности лога      

Логирование утилизации аппаратных ресурсов

-1-1

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

Main-stream & Trend инструменты

• DeviceAnywhere Studio• SeeTest

• Appium 2• XCTest• Calabash• Espresso 2+

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

Page 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);}

Page 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" />

@Overrideprotected SECUREComponent createSECUREComponent() { mTestComponent = DaggerAndroidTestSECUREComponent.builder() .generalModule(new GeneralModule()) .managerModule(new ManagerModule(this)) .build(); return mTestComponent;}

clickAutomatorById(R.id.txt_choice_two);

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

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

Примеры по инструментам KeyNote Studio

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

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

Примеры по инструментам KeyNote Studio

Hardware

Keyboard

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

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

Итоги

IDEAPI

Mobile PlatformsApp type supportContext support

Record&Play

Test management

Logs/Reports

-1-3-1-3

+1-2-2-4

OS LS

+120

+3+3

-2+1+6+1

-14; +14

-14; +14

-12; +12

-8; +8

-4; +4

-10; +10

-10; +10

-10; +10

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

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

Итоги

• Функций «Test sharding» и «Test parallelization» НЕТ• Функционал App layer сильно превалирует над Device layer• Недооценена важность логирования Hardware.• Лицензионные инструменты мало чем лучше Open-Source

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

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

Вопросы?

Picasso-key

[email protected]

dmitry.khimion