AUTOMATEDTESTING 	

IN STORE PROJECT
by Alexander Hayorov 	

<i@hayorov.ru>
Shipping Better Software Faster
AGENDA
• Continuous integration инфраструктура	

• Непрерывная сборка	

• Выкладка артефактов	

• О тестировании в целом	

• Тестирование стабильности 	

• Автоматизация регрессионного тестирования	

• Немного статистики
ОСНОВЫ CONTINUOUS INTEGRATION
Серверная инфраструктура и экосистема CI
Dedicated hardware server with KVM virtualization
Jenkins (CI)	

ci.myplaycity.com
Builder server Deploy server
Artifacts storage	

(builds, reports)
CVS
(Bitbucket)
НЕПРЕРВЫВНАЯ СБОРКА
“Debug” сборка master по commit
НЕПРЕРВЫВНАЯ СБОРКА
Сборка из веток
ВЫКЛАДКА АРТЕФАКТОВ
• на testflight сервис*
* с 21 марта 2014 сервис не предоставляется для android :(
используется для установки на устройства при ручном тестировании
ВЫКЛАДКА АРТЕФАКТОВ
• на собственное хранилище
используется в автоматизированном тестировании, также можно
использовать для ручной установки
О ТЕСТИРОВАНИИ В ЦЕЛОМ
Непрерывное приемочное тестирование
- проверка соответвии требованиям (описанию)	

- формализация тест-кейсов
Пред-релизный цикл тестирования:
- кумулятивное тестирование новых функциональностей
релиза (актуализация регрессионных тестов)
- короткий цикл регрессионного тестирования с высокой
частотой повторения
АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ
Дополнительный этап - тестирование стабильности
Monkey test (aka. MarkTesting)	

!
4 эталонных устройства	

! Имя Версия OC Аналог
etalon-10 2.3.3 Motorola Razr Max
etalon-15 4.0.3 Samsung Galaxy S2
etalon-17 4.2.2 Google Nexus One
etalon-18 4.3 Google Nexus 4
!
Демо видео http://www.youtube.com/watch?v=hvLo1_PwZjU 	

10 минут приложение в руках обезьяны
АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ
Обнаруживает критические ошибки в приложении
* приложение вынужденно завершилось, причина - ошибка при обращении к БД при условии 100% занятой карты памяти
АВТОМАТИЗАЦИЯ РЕГРЕССИИ
Сценарии тестов на основе тест кейсов ручной регрессии
Шаги составляют тест, тесты объеденены в сьюты (наборы)
Проект тестов повторяет жизненный цикл продукта
АВТОМАТИЗАЦИЯ РЕГРЕССИИ
Тесты написаны на python
Запускаются с Jenkins для любого билда и эталонного устройства
Можно смотреть за ходом тестирования на устройстве поVNC
* пароль при подключении к экрану 1q2w3e
!
Демо видео http://youtu.be/RRCRDr0oZbc
АВТОМАТИЗАЦИЯ РЕГРЕССИИ
Наглядные отчеты на AngularJS прямо в Jenkins
Демо: http://ci.myplaycity.com:8080/job/store-acceptance-tests/18/allure/?#/home/de455213-
a04a-4768-916a-35d663c33650/98fe1439-79fc-4b98-9cae-92e97f6b4c9e
НЕМНОГО СТАТИСТИКИ
Автоматизировано 21 ручной тест-кейс
Покрытие кода 64%*
* по критерию покрытия вход/выход
Покрытие экранов 66% (46)
Время прогона 14 минут
СПАСИБО

Mpc store testing

  • 1.
    AUTOMATEDTESTING IN STOREPROJECT by Alexander Hayorov <i@hayorov.ru> Shipping Better Software Faster
  • 2.
    AGENDA • Continuous integrationинфраструктура • Непрерывная сборка • Выкладка артефактов • О тестировании в целом • Тестирование стабильности • Автоматизация регрессионного тестирования • Немного статистики
  • 3.
    ОСНОВЫ CONTINUOUS INTEGRATION Сервернаяинфраструктура и экосистема CI Dedicated hardware server with KVM virtualization Jenkins (CI) ci.myplaycity.com Builder server Deploy server Artifacts storage (builds, reports) CVS (Bitbucket)
  • 4.
  • 5.
  • 6.
    ВЫКЛАДКА АРТЕФАКТОВ • наtestflight сервис* * с 21 марта 2014 сервис не предоставляется для android :( используется для установки на устройства при ручном тестировании
  • 7.
    ВЫКЛАДКА АРТЕФАКТОВ • насобственное хранилище используется в автоматизированном тестировании, также можно использовать для ручной установки
  • 8.
    О ТЕСТИРОВАНИИ ВЦЕЛОМ Непрерывное приемочное тестирование - проверка соответвии требованиям (описанию) - формализация тест-кейсов Пред-релизный цикл тестирования: - кумулятивное тестирование новых функциональностей релиза (актуализация регрессионных тестов) - короткий цикл регрессионного тестирования с высокой частотой повторения
  • 9.
    АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ Дополнительный этап- тестирование стабильности Monkey test (aka. MarkTesting) ! 4 эталонных устройства ! Имя Версия OC Аналог etalon-10 2.3.3 Motorola Razr Max etalon-15 4.0.3 Samsung Galaxy S2 etalon-17 4.2.2 Google Nexus One etalon-18 4.3 Google Nexus 4 ! Демо видео http://www.youtube.com/watch?v=hvLo1_PwZjU 10 минут приложение в руках обезьяны
  • 10.
    АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ Обнаруживает критическиеошибки в приложении * приложение вынужденно завершилось, причина - ошибка при обращении к БД при условии 100% занятой карты памяти
  • 11.
    АВТОМАТИЗАЦИЯ РЕГРЕССИИ Сценарии тестовна основе тест кейсов ручной регрессии Шаги составляют тест, тесты объеденены в сьюты (наборы) Проект тестов повторяет жизненный цикл продукта
  • 12.
    АВТОМАТИЗАЦИЯ РЕГРЕССИИ Тесты написанына python Запускаются с Jenkins для любого билда и эталонного устройства Можно смотреть за ходом тестирования на устройстве поVNC * пароль при подключении к экрану 1q2w3e ! Демо видео http://youtu.be/RRCRDr0oZbc
  • 13.
    АВТОМАТИЗАЦИЯ РЕГРЕССИИ Наглядные отчетына AngularJS прямо в Jenkins Демо: http://ci.myplaycity.com:8080/job/store-acceptance-tests/18/allure/?#/home/de455213- a04a-4768-916a-35d663c33650/98fe1439-79fc-4b98-9cae-92e97f6b4c9e
  • 14.
    НЕМНОГО СТАТИСТИКИ Автоматизировано 21ручной тест-кейс Покрытие кода 64%* * по критерию покрытия вход/выход Покрытие экранов 66% (46) Время прогона 14 минут
  • 15.