Какие функции должны быть проверены с помощью автоматического тестирования пользовательского интерфейса?

12

Недавно у нас был консультант, который сказал нам, что если функция может быть протестирована только с помощью автоматических тестов пользовательского интерфейса (например, Selenium, Coded UI), то существует основная архитектурная проблема. Хотя это утверждение может быть несколько экстремальным, оно совпадает с пирамидой тестирования в том смысле, что тесты пользовательского интерфейса должны составлять небольшую часть вашего общего набора автоматизированных тестов.

Итак, какие функции должны иметь автоматическое тестирование пользовательского интерфейса? Будет ли система с убедительной архитектурой по-прежнему иметь функции, которые могут быть проверены только с помощью тестов пользовательского интерфейса, или эти тесты должны просто служить «резервной копией» для набора тестов модулей и сервисов?

mragh
источник
Полагаю, кроме каждой функции интерфейса?

Ответы:

11

Предположительно, у вас есть какая-то архитектура, которая связывает кнопки и другие виджеты с действиями - нажмите «Сохранить», должна быть вызвана функция сохранения и т. Д.

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

Другими словами, они подтверждают, что пользовательский интерфейс правильно отражает состояние модели и правильно подключен к контроллеру.

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

Брайан Оукли
источник
3

Какие функции должны быть проверены с помощью автоматического тестирования пользовательского интерфейса?

Все функции интерфейса.

Вы должны проверить:

  • Все функции, которые могут выполнять пользователи.
  • Функции, которые пользователи выполняют во всех браузерах (и версиях), в которых они их выполняют.
  • Оба счастливы (делают правильные вещи на каждом шагу) и грустные (пользователь делает ошибки) пути.
  • Действительные и недействительные данные.
  • Большие и Маленькие числа.
  • Все роли и функции специфичны для роли.
  • Пользовательский и административный интерфейсы.
  • Попытки взлома.
  • Создание и обновление данных работает как задумано.
  • Удалить работу и удалить связанные данные базы данных в других таблицах.
  • Пользователи клавиатуры и мыши.
  • Различные устройства или симуляторы - ПК, телефоны, iPad и т. Д.
Майкл Даррант
источник
0

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

С другой стороны, если у вас есть такая особенность, да, я бы сказал, что у вас есть основная архитектурная проблема. :-)

Росс Паттерсон
источник
1
Я думаю, что под «только» они имеют в виду автоматизированные тесты пользовательского интерфейса против модульных или интеграционных тестов. Я не думаю, что возможно создать что-то, что селен сможет проверить, что человек не может (по модулю скорости людей против скорости селена)
Брайан Оукли
Извините, я вижу, откуда вы это взяли из вопроса. Хотя вы предложили мне разработать приложение, которое может использовать только Selenium - просто прикрепить его к нашей команде UX :)
mragh