Мне интересно, каковы лучшие практики для проверки "функциональности интерфейса" веб-сайта.
Меня интересует, какие методы доступны для тестирования интерфейса и динамически генерируемого содержимого. В частности, я изо всех сил пытаюсь выяснить, возможно ли создать автоматизированные тесты для действий, которые требуют взаимодействия с пользователем, или это просто пустая трата времени, и мне просто нужно, чтобы какой-то бета-тестер выполнил эту работу.
Я попробую привести несколько примеров:
на SO, когда вы вводите заголовок вашего нового вопроса, появляются некоторые «связанные вопросы». Очевидно, что вы можете реализовать своего рода тест, который скажет вам, что вы получили правильное количество связанных вопросов и что они отображаются, но как вы проверяете «правильность» ссылок? Вы бы установили фиктивный набор вопросов (всегда один и тот же) и проверили бы, чтобы возвращенные вопросы были заранее заданными? Это бы сработало, конечно, но вряд ли это проверяет надежность вашего алгоритма поиска. Что происходит, когда в пул добавляются другие вопросы? Возвращенные результаты все еще "связаны"?
Нажав на определенную кнопку, вызывается JS, который генерирует «всплывающий элемент div», который пользователь может перемещать. Опять же, как вы автоматически тестируете этот вид интерфейса? Вы можете проверить на внешний вид, но как вы проверяете на движение?
У вас есть интерфейс для загрузки файлов на сайт для встраивания в ваше сообщение (например, значок изображения здесь на SO). Таким образом, пользователь должен: 1) нажать кнопку 2) найти файл 3) дождаться загрузки 4) нажать OK и, наконец, он / она увидит изображение в сообщении. Опять же, я вижу, как можно автоматизировать тест для загрузки (например, попробуйте загрузить «обычный» файл, затем слишком большой, неподдерживаемого формата и т. Д.). Но как насчет использования интерфейса? Если кнопки OK
или Browse
не работают по какой-либо причине, бесполезно, чтобы загрузка работала, так как в конце дня вы все равно не можете загрузить свой файл и увидеть его в своем сообщении.
Очевидно, что все вышеперечисленное довольно просто для бета-тестирования (просто скажите группе пользователей протестировать ваш сайт, и они заметят, если что-то пойдет не так), но вы можете это сделать (и что более важно, вы бы потратили время на реализацию ) автоматические тесты на такого рода вещи? Кроме того, при бета-тестировании у вас будут тестеры, которые «бегают» и делают на сайте все, что хотят, или, скорее, сообщают, какие функции вы хотите, чтобы они тестировали. Я бы выступил за 1-й, но я открыт для предложений.