Автоматизация тестирования iOS приложений: наше маленькое исследование UI Tesing из Xcode 7

Менеджерам и тестировщикам iOS приложений, у кого в команде есть автоматизация, на заметку…
В XCode 7 инструмент для автоматизации тестирования UI Automaion был объявлен как устаревший. Он не удалён из набора инструментов… он просто устаревший. :)
На его замену Apple выпустила UI Testing и рассказала о нём на конференции WWDC https://developer.apple.com/videos/play/wwdc2015-406/.

Чтобы понять возможности, пользу и опасность для нас UI Testing мой автоматизатор, Женя А., провел и самостоятельное исследование, и познакомился с тем, что пишут в своих блогах автоматизаторы.

Важные мысли про UI Testing:

  • работает только на iOS 9+
  • необходим доступ к коду самого проекта, в нем создается новый Target «iOS UI Testing Bundle»
  • тесты пишутся прямо в Xcode (на Objective C или Swift). Они не попадают в сам билд приложения, а собираются в отдельный бандл (проект), который устанавливается на девайс
  • запуск тестов также происходит из Xcode. Но, похоже, можно сделать запуск и из командной строки — https://krausefx.com/blog/run-xcode-7-ui-tests-from-the-command-line
  • пишут, будто UI Testing быстрее, но у нас получилось наоборот: тест, который выполнялся за 20 секунд с помощью UI Automation, UI Testing выполнял за 30 секунд.
    так же, как и для UI Automation, используются Accessibility свойства для идентификации и проверки состояния элементов UI
    в целом интерфейс написания тестов выглядит дружелюбнее, родной IDE (Xcode), код компилируется, в отличие от javascript в UI Automation, т.е. ошибки синтаксиса будут сразу выявляться
  • тесты, созданные по методу Record and Play, понятнее и выглядят более надежными
  • UIT не поддерживает комплексные жесты, такие как pinch, drag или tap по указанным координатам
  • UIA не удобный для создания тестов, но более гибкий
  • благодаря интеграции в проект приложения, сами разработчики будут иметь возможность легко запускать эти тесты.

Интересные и полезные статьи:

Выводы, сделанные нами для наших проектов. UIT технология еще новая, не доделанная, есть баги. Но с хорошим потенциалом. Наш, ранее разработанный фреймворк перенести не удастся. Вариант только один — вручную переписывать на новом языке, учитывая особенности и различия UIA и UIT. На данный момент имеющиеся UIA тесты показывают себя более производительными (и более надежными из-за сырости UIT). К тому же ввиду того, что мы поддерживаем iOS7+, ограничение в UIT поддержки iOS9+ является блокирующим для нас. Сейчас решили не переходить на UIT.

 

Будет интересно узнать, если у кого-то есть свой опыт и свои мысли по этой теме.

SQA Days 15. Обзор докладов про тестировщиков-автоматизаторов

Давно отошла от автоматизации, поэтому обзор докладов по этой теме у меня маленький и не технический, а связанный с людьми:

  • Про обучение автоматизации людей, совершенно незнакомых с программированием, — Вадим Зубович «SikuliScript как идеальный инструмент для обучения автоматизации»
  • Про то, каким автоматизатором не нужно быть, — Игорь Мирошниченко » Антипаттерны поведения и развития тестировщиков — автоматизаторов».

Continue reading