До недавнего времени я всегда думал об автоматизации пользовательского интерфейса как о тесте черного ящика, когда мои тесты пользовательского интерфейса направлены против полностью автономного веб-сайта или приложения.В результате тесты выполняются с ограничением нормального выполнения и подвержены множеству проблем, связанных с окружением.
Недавно я принял понятие «поверхностных» и «глубоких» тестов пользовательского интерфейса, где каждый набортестов проводится в оптимизированной конфигурации, чтобы ослабить различия в окружающей среде и ускорить процесс.Например, контроллер входа в систему заменяется механизмом, который позволяет избежать издержек входа в систему OAuth и жестко запрограммирован с фиксированными именами пользователей.Каталог продукции пропускает поиск в базе данных и жестко запрограммирован с несколькими фиксированными элементами.Бэкэнд электронной коммерции заменяется для выполнения быстрых операций, которые принимают / отклоняют транзакции на основе кредитной карты и суммы.
В «мелкой» конфигурации я могу выполнить «глубокое» тестирование на основе логики пользовательского интерфейса.Когда я переключаюсь на «глубокую» конфигурацию, она напоминает производственную, и я могу выполнять «поверхностное» тестирование полностью интегрированных компонентов, таких как логин, каталог продуктов, поиск и т. Д.
Требуется сочетание стратегий тестирования.