#iphone #ios #automated-tests #integration-testing #functional-testing
#iPhone #iOS #автоматизированные тесты #интеграция-тестирование #функциональное тестирование
Вопрос:
Я борюсь с этим вопросом, поскольку заметил, что многие фреймворки функционального тестирования (такие как Selenium для Интернета или UISpec для iOS) фактически имитируют события пользовательского интерфейса во время тестирования. Я спрашиваю: разве не могло быть достаточно просто проверить наличие таких предварительных условий, например, что цель и селектор для кнопки установлены правильно, а затем запустить селектор вручную? Зачем мне нужно имитировать касания? Недостаток этого в том, что вам нужно больше знать об элементах пользовательского интерфейса, которые вы тестируете (вы должны знать, что заставляет их вести себя правильно), но поскольку тесты пишу я, возможно, это не имеет значения? Кто-нибудь может пролить свет на это?
Ответ №1:
Имитация касаний может быть полезна для определения сбоев, вызванных непонятным или незапланированным поведением пользователя — особенно распространенным является одновременное нажатие двух элементов. Это также позволяет создавать потенциально довольно эзотерические тесты: например, случайный пользовательский ввод в течение длительного периода времени для попытки аварийного завершения работы вашего приложения способами, которых вы не ожидаете. Уровень, на котором вы бы это сделали, будет зависеть от вашего приложения и от того, насколько это важно для вас.
Ваш альтернативный подход также имеет некоторые недостатки, когда дело доходит до мультитач. Хотя было бы довольно просто включить переключатель кнопок с помощью какого-либо автоматического теста, а не имитировать пользовательский ввод, что произойдет, если у вас есть приложение, которое выполняет пролистывание, сжатие или другие множественные жесты ввода? В этих случаях желаемый результат может быть не таким черно-белым, как включение / выключение кнопки: у вас может быть много оттенков серого и разные выходные данные, которые требуют проверки.
Имитационное тестирование пользовательского интерфейса на самом деле имеет довольно долгую историю — есть интересная история (ну, для меня интересная) об оригинальном MacPaint и о том, как тест случайного ввода пользовательского интерфейса смог помочь в воспроизведении неясных или сложных сбоев здесь: http://www.folklore.org/StoryView.py?story=Monkey_Lives.txt