Я ищу предложения для улучшения процесса автоматизации функционального тестирования веб-сайта. Вот что я пробовал в прошлом.
У меня был тестовый проект, используя WATIN. Вы эффективно пишете то, что похоже на "модульные тесты", и используйте WATIN для автоматизации браузера, чтобы щелкнуть по сайту и т.д.
Конечно, вам нужен сайт для работы. Поэтому я сделал тест, фактически скопировав код из моего веб-проекта в локальный каталог и запустив веб-сервер, указывающий на этот каталог, прежде чем запускать какой-либо из тестов.
Таким образом, кто-то новый может просто получить последние данные от нашего исходного элемента управления и запустить нашу сборку script и посмотреть все тесты. Они также могут просто запускать все тесты из среды IDE.
Проблема, с которой я столкнулся, заключалась в том, что я потратил много времени, поддерживая код, чтобы настроить тестовую среду больше, чем тесты. Не говоря уже о том, что для выполнения этого копирования потребовалось много времени. Кроме того, мне нужно было проверить различные сценарии, включая установку, то есть мне нужно было установить базу данных в различные начальные состояния.
Мне было любопытно, что вы сделали, чтобы автоматизировать функциональное тестирование, чтобы решить некоторые из этих проблем и все еще держать его простым.
ДОПОЛНИТЕЛЬНЫЕ ДАННЫЕ Так как люди просили получить более подробную информацию, вот оно. Я запускаю ASP.NET с помощью Visual Studio и Cassini (встроенный веб-сервер). Мои модульные тесты выполняются в MbUnit (но это не так важно. Может быть NUnit или XUnit.NET). Как правило, у меня есть отдельная инфраструктура unit test, которая запускает все мои тесты WATIN. На этапе AssemblyLoad я запускаю веб-сервер и локально копирую код моего веб-приложения.
Меня интересуют решения для любой платформы, но мне может потребоваться больше описаний того, что означает каждая вещь.:)