Недавно у нас был консультант, который сказал нам, что если функция может быть протестирована только с помощью автоматических тестов пользовательского интерфейса (например, Selenium, Coded UI), то существует основная архитектурная проблема. Хотя это утверждение может быть несколько экстремальным, оно совпадает с пирамидой тестирования в том смысле, что тесты пользовательского интерфейса должны составлять небольшую часть вашего общего набора автоматизированных тестов.
Итак, какие функции должны иметь автоматическое тестирование пользовательского интерфейса? Будет ли система с убедительной архитектурой по-прежнему иметь функции, которые могут быть проверены только с помощью тестов пользовательского интерфейса, или эти тесты должны просто служить «резервной копией» для набора тестов модулей и сервисов?
Ответы:
Предположительно, у вас есть какая-то архитектура, которая связывает кнопки и другие виджеты с действиями - нажмите «Сохранить», должна быть вызвана функция сохранения и т. Д.
Предполагая, что у вас есть хороший тестовый охват самих действий с помощью модульных или интеграционных тестов, цель автоматического тестирования пользовательского интерфейса состоит в том, чтобы убедиться, что все виджеты правильно выполняют вызовы базовых действий и правильно отображают результаты этих действий.
Другими словами, они подтверждают, что пользовательский интерфейс правильно отражает состояние модели и правильно подключен к контроллеру.
Другой компонент, когда некоторая бизнес-логика находится в коде пользовательского интерфейса. Например, может быть, вам нужны определенные символы в поле пароля. Вам нужно как-то протестировать эти функции, поскольку это может быть трудно или невозможно сделать с помощью модульных тестов.
источник
Какие функции должны быть проверены с помощью автоматического тестирования пользовательского интерфейса?
Все функции интерфейса.
Вы должны проверить:
источник
Нет такой вещи, как функция, которая может быть протестирована только с помощью автоматических тестов пользовательского интерфейса. Инструменты типа Selenium просто имитируют поведение человека, не доводя человека до самоубийства. Задайте себе (или своему консультанту) вопрос: « Как бы программа тестировала аспекты пользовательского интерфейса, которые человек не может? » Следующий вопрос: « Если это так, то почему вас это волнует? »
С другой стороны, если у вас есть такая особенность, да, я бы сказал, что у вас есть основная архитектурная проблема. :-)
источник