ݺߣ

ݺߣShare a Scribd company logo
Где водится мобильная
автоматизация и как научить ее
приносить тапочки
Сергей Комаров
Senior QA Automation engineer at Oxagile
2
Специальность - военный радио инженер.
С 2008 года в IT
4 года ручной тестировщик
2 года автоматизатор web приложений
последний год сосредоточен на мобильной
автоматизации.
Автоматизация тестирования
 Unit тесты
 Тестирование API
 UI тестирование
2
Требования к приложению:
• нужна кроссплатформенность
• частые релизы
• тесты без тестера
• несколько вариантов приложения
• ручное тестирование без рутины
4
Зачем нам это было надо
Зачем нам это было надо
так захотел заказчик
3
Appium
5
Как можно помочь
6
Android:
 contentDescription
 resource id
iOS:
 name (accessibility id)
 label
 value
Как мы это крутим
7
Что можно автоматизировать
8
 любые типы приложений
 любые действия юзера
 действия над девайсом
Что можно автоматизировать
8
 вся мощь adb для android
 инъекции javascript
 библиотека libimobiledevice
Что нельзя автоматизировать
9
 переключиться между приложениями
 эмулировать события извне
 измерить параметры девайса
 протестировать звук
 мелькающие элементы
Вывод
1
выкинуть все это в
топку и идти пить
пиво!
И наконец про тапочки
1
Помощь ручному тестировщику:
 имитация действий юзера
 сложные сценарии
 частые монотонные действия
 длительные тесты
 убираем человеческий фактор
Красивые графики
1
Smoke test Regression test
Не пихайте невпихуемое
1
UI тестирование не резиновое:
 API через UI
 больше юнит тестов
 что-нибудь все-таки надо
оставить мануальщикам
Oxagile Automation Team
Over 100 clients benefit from the systems
signed-off by Oxagile QA
Oxagile core clients
СПАСИБО ВСЕМ ОГРОМНОЕ!
ВНИМАТЕЛЬНО ПОСМОТРИТЕ НА СВЕТ!
1

More Related Content

Где водится мобильная автоматизация и как научить ее приносить тапочки

Editor's Notes

  • #3: Меня зовут Сергей Комаров Я тружусь автоматизатором в компании Oxagile До IT сферы находился в параллельных вселенных, там тоже есть жизнь, но скучная )) Около года назад выпала возможность прокачаться в направлении мобильной автоматизации. Собственно этим опытом и хотел с вами поделиться
  • #4: Прежде всего хотелось бы уточнить, что не смотря на то что автоматизация включает в себя и юнит тестирование и тестирования  API Сегодня я хотел бы сделать упор именно на бурно развивающиеся UI тестирование мобильных приложений И первым делом мы рассмотрим причины по которым мы приняли решение применить автоматизацию на нашем проекте
  • #5: Вот некоторые требования, которые предъявлялись к нашему приложению Но я так думаю применимы практически ко всем один интерфейс - много девайсов, конечно андроид от 4.2, айос от 7.0, планшеты и телефоны и даже есть планы на браузер частые релизы 2-3 раза в неделю девелопер хочет иметь возможность убедиться что приложение прошло минимальный смок тест без участия тестера много почти одинаковых вариантов апликухи безучастные глаза и растрепанный вид тестеровщика подсказал нам, что надо избавить его от рутины и сложных участков картинка Автоматизация просто напрашивается Но на самом деле все гораздо банальнее
  • #6: Просто так решил заказчик! Это конечно шутка. Заказчик просто так деньги платить не хочет Но мы его заверили, что можем автоматизировать все что угодно И самое главное, что мы в это свято верили Но мы ошибались, тогда мы еще не все могли, но сейчас, после того как внедрили все что хотели, точно можем ВСЕ! Тем более, что разработка приложений под мобильные устройства, как и сами устройства бурно развивается, требования повышаются, скорость увеличивается.
  • #7: Почему аппиум? поддержка всех основных мобильных платформ (исключение windows), один тест на любой платформе расширяет selenium, т.е. знакомые всем автоматизаторам старые добрые подходы можно писать на любом языке, с любым тестовым Фреймворкам и прикрутить к нему любой репорт appium состоит из двух основных частей: библиотека для разработки скрипта (java, c#, python, ruby, javascript) сервера для общения с нативными инструментами для автоматизации Для написания тестов пишется Фреймворк, который хранит тестовые данные, тесты, порядок их запуска, генерит репорт Аппиум хорош тем что один тест на многих девайсах
  • #8: В андроиде многие элементы уже имеют id, в большинстве случаев этого достаточно. В iOS мы пользуемся в основном именем элемента (accessible id). Разработчики могут помочь облегчить доступ к элементам: Создать уникальное имя для атрибута или id Отметить выделенный элемент Повесить часы пока не закончится подгузка всех элементов. Примеры динамических подсказок: Ползунок Выбранный из списка элемент
  • #9: Схема достаточна общая. Автоматизацию можно рассматривать как часть CI Может быть несколько джоб для нескольких девайсов или вариантов приложения Скрипт с помощью appium - устанавливает приложение - запускает тесты - генерирует результаты Дженкинс агрегирует их и рассылает письма Замечания: для iOS есть еще дополнительная для дебаг билда iOS только на MacOS для одного iOS девайса один сервер Есть несколько иные способы организации тестов, но именно этот нам показался достаточно гибким
  • #10: нативные, смешанные, веб приложен клик, двойной клик, ввод текста, чек боксы, смахивание, перетаскивание, увеличение/уменьшение, мультитач, скролл, можно использовать хоть все шесть пальцев, прочитать текст, подсчитать количество элементов, закрыть/открыть приложение, скрыть клавиатуру, скачать или залить файл поворот экрана, встряхивание, залочить/разлочить
  • #11: можно распознать подключен ли девайс, распознать девайс bundleID или package установленного приложения с помощью libimobiledevice можно выполнять некоторые действия с iOS девайсом при большом желании можно находить картинку в картинке
  • #12: одна сессия - одно приложение, только если перезапустить звонок, смс, напоминание, есть возможность только для android emulator расход батареи, температуру, опять же для simulator/emulator можно поиграть с интернетом и тут только для реальных девайсов appium медленный Ну и давайте сделаем какой-нибудь вывод из этого
  • #13: Бывает такое конечно, но это не долго ))
  • #14: во первых это единственная возможность эмитировать реальные действия юзера порой 5-10 кликов в интерфейсе задействуют все части приложения например форма для ввода информации и куча граничных значений (если это нельзя включить в юнит тесты) например долгое время крутить видео и регистрировать любые фейлы человек не совершенен, машине все равно
  • #15: это графики с реального проекта на которых видно на сколько мануальные тесты покрыты автоматизацией
  • #16: несмотря на это, хотелось бы предупредить об умеренности какие-нибудь веб сервисы, базы данных, нагрузочное тестирование, перформенс тестирование (в отличии от веб) как не автоматизируй, иногда проще и быстрее взглянуть опытным глазком, а также новый функционал обычно для ручных тестировщиков
  • #17: Забудьте все что слышали и мы будем единственной командой, которая творит чудеса ))) все готов к вопросам!