Привет, хабрасообщество.

Я занимаюсь тестированием мобильных приложений, в связи с чем периодически просматриваю просторы интернета в поисках инструментов, способных облегчить этот нелегкий труд. Сегодня я хочу рассказать как раз об одном из них.

Этот инструмент — приложение FoneMonkey от фирмы Gorilla Logic. Как ни странно, не нашла упоминаний о нем в рунете. Хотя приложение может оказаться очень и очень полезным для многих разработчиков/тестировщиков/etc.

Начнем с перечисления основных фишечек и рюшечек:

  • Мощное устройство записи скриптов — записывает и воспроизводит такие события как касание, скролл, события клавиатуры и встряхивание;
  • Легкая поддержка, т.к. скрипт записывает события происходящие с объектами, а не с координатами экрана. Поэтому незначительное изменение дизайна не приведет к необходимости перезаписывать скрипт;
  • Можно записывать/воспроизводить тесты как на реальном девайсе, так и на эмуляторе;
  • Можно править скрипты как на реальном девайсе, так и программно;
  • Прост в примененении — таким инструментом могут пользоваться тестировщики без знания программирования;
  • Возможность расширения фреймворка благодаря простому в использовании Objective-C API;
  • Возможность автоматической проверки результата теста;
  • Открытый исходный код;
  • И, кстати, инструмент — бесплатный.

Теперь немножко о том, как это работает.
Для начала тестирования необходимо встроить фреймворк FoneMonkey в ваше приложение. После этого, при запуске приложения (не важно, на реальном девайсе или эмуляторе) появится панелька FoneMonkey, с помощью которой можно будет записывать, изменять и воспроизводить скрипты. Краткое руководство по этому делу можно посмотреть здесь.

Ну и теперь, наконец, давайте поговорим о том, кому этот инструмент может оказаться весьма полезным, а кому и вовсе не пригодится.

Обратим внимание на минусы, т.к. плюсы уже перечислены в рюшечках :)
  • Таким инструментом невозможно проверить правильность отрисовки/дизайна;
  • Невозможно проверить обработку входящих событий типа звонка/смс/будильника/etc.

Надо уточнить, что эти минусы касаются всех инструментов автоматизации тестирования такого типа (запись и воспроизведение скриптов).

Из всего этого можно сделать очень простые выводы:
Если у вас в приложении много такой функциональности, которую можно проверить только визуально, которая связана с качеством отрисовки, скоростью работы и т.д. — даже не смотрите в сторону FoneMonkey, только время зря потратите (например, я бы не стала применять этот инструмент для тестирования предустановленных приложений «Карты», «Компас»; и применила бы для приложения «Контакты»).
Или если делаете приложение «на раз», не планируете развивать функционал дальше — а значит не планируете проводить регрессионное тестирование, то FoneMonkey так же вряд ли вам пригодится. Думаю, данный инструмент имеет смысл только для автоматизации регрессионного тестирования.
И последнее — если приложение сырое, интерфейс часто меняется, и вы пока вообще не уверены как оно в итоге должно выглядеть — вам пока рано думать о любых инструментах тестирования, в том числе и об этом.

Всем остальным советую обратить внимание на FoneMonkey, и задуматься на тему — а не пора ли внедрить автоматизированное тестирование для улучшения качества вашего iPhone-приложения?