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

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

  • Upload
    sqalab

  • View
    975

  • Download
    4

Embed Size (px)

Citation preview

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