Доклад Сергея Комарова, Senior QA Automation Engineer at Oxagile специально подготовленный для 5-ой ежегодной конференции для разработчиков мобильных приложений MobileOptimized 2015.
1 of 16
Download to read offline
More Related Content
Где водится мобильная автоматизация и как научить ее приносить тапочки
2. Сергей Комаров
Senior QA Automation engineer at Oxagile
2
Специальность - военный радио инженер.
С 2008 года в IT
4 года ручной тестировщик
2 года автоматизатор web приложений
последний год сосредоточен на мобильной
автоматизации.
4. Требования к приложению:
• нужна кроссплатформенность
• частые релизы
• тесты без тестера
• несколько вариантов приложения
• ручное тестирование без рутины
4
Зачем нам это было надо
11. Что нельзя автоматизировать
9
переключиться между приложениями
эмулировать события извне
измерить параметры девайса
протестировать звук
мелькающие элементы
13. И наконец про тапочки
1
Помощь ручному тестировщику:
имитация действий юзера
сложные сценарии
частые монотонные действия
длительные тесты
убираем человеческий фактор
15. Не пихайте невпихуемое
1
UI тестирование не резиновое:
API через UI
больше юнит тестов
что-нибудь все-таки надо
оставить мануальщикам
16. Oxagile Automation Team
Over 100 clients benefit from the systems
signed-off by Oxagile QA
Oxagile core clients
СПАСИБО ВСЕМ ОГРОМНОЕ!
ВНИМАТЕЛЬНО ПОСМОТРИТЕ НА СВЕТ!
1
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 медленный
Ну и давайте сделаем какой-нибудь вывод из этого
#14: во первых это единственная возможность эмитировать реальные действия юзера
порой 5-10 кликов в интерфейсе задействуют все части приложения
например форма для ввода информации и куча граничных значений (если это нельзя включить в юнит тесты)
например долгое время крутить видео и регистрировать любые фейлы
человек не совершенен, машине все равно
#15: это графики с реального проекта на которых видно на сколько мануальные тесты покрыты автоматизацией
#16: несмотря на это, хотелось бы предупредить об умеренности
какие-нибудь веб сервисы, базы данных, нагрузочное тестирование, перформенс тестирование (в отличии от веб)
как не автоматизируй, иногда проще и быстрее взглянуть опытным глазком, а также новый функционал обычно для ручных тестировщиков
#17: Забудьте все что слышали и мы будем единственной командой, которая творит чудеса )))
все готов к вопросам!