Модульное тестирование веб-сайта


Мне любопытно посмотреть, как другие разработчики тестируют свои веб-сайты. PHP конкретно в моем случае, но это, вероятно, охватывает несколько языков. Я работаю над сайтом уже больше года, и мне бы очень хотелось автоматизировать большую часть регрессионного тестирования, которое я провожу между версиями.

Этот конкретный сайт находится в CodeIgniter, поэтому у меня есть несколько тестов для моих моделей. Однако я хотел бы выйти за рамки простого тестирования. Тем не менее, это проблема, с которой приходилось сталкиваться даже разработчикам, не являющимся MVC я уверен, что справлюсь.

Редактировать: Я думаю, что функциональность, которая удовлетворила бы многие мои желания по тестированию, - это возможность утверждать, что параметры имеют определенное значение в конце обработки сценария. В моем случае в контроллере много логики, и это основная область, которую я хотел бы протестировать.

Author: imlouisrussell, 2009-02-13

7 answers

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

Возможно, вам захочется взглянуть на Selenium для тестирования пользовательского интерфейса вашего сайта. Он может записывать ваши действия и воспроизводить их, или вы можете редактировать сценарии напрямую. альтернативный текст http://seleniumhq.org/projects/ide/selenium-ide.gif

 23
Author: ryeguy, 2009-02-13 19:25:38

Вы пробовали Фитнес ?

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

На веб-странице также есть несколько видео от дядюшки Боба. Хорошо, что Fitnesse не ограничен для тестирования веб-сайтов, поэтому ваши знания об его использовании можно использовать и с другими приложениями.

Проект, над которым я работаю, - это настольное приложение, написанное на c++, которое использует Fitnesse тесты.

Но если вы имели в виду модульное тестирование моделей (чего, я думаю, вы не делали), их можно создать с помощью библиотеки phpunit. Я думаю, что в ZEND framework есть аналогичная библиотека для этого.

 5
Author: Edison Gustavo Muenz, 2009-02-13 19:39:11

Возможно, вы захотите проверить PHPUnit http://www.phpunit.de/manual/current/en/

Я начал использовать его в своих PHP-проектах, и с ним очень легко работать и он очень мощный. В частности, изучайте и используйте насмешки: http://www.phpunit.de/manual/3.0/en/mock-objects.html

Издевательство особенно важно при модульном тестировании приложений, выполняющих операции с базами данных.

 2
Author: OverloadUT, 2009-02-13 19:23:12

Взгляните на ТОСТ . Он создан специально для CodeIgniter. Он использует инфраструктуру CI, поэтому вы можете запускать все тестовые тесты через браузер, а результаты отображаются в виде веб-страницы (HTML). Он очень прост в использовании.

Я предлагаю вам также протестировать свои контроллеры. Модель тестирования в порядке, но модель - это просто хранилище БД. Контроллеры содержат всю "бизнес-логику" и являются местом, где большинство вещей идет не так.

 1
Author: Milan Babuškov, 2012-04-03 17:43:48

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

Вообще говоря, автоматическое тестирование приложений с графическим интерфейсом (веб-сайты - это приложения с графическим интерфейсом) является сложным и, как правило, ненужным. Модульные тесты лучше всего работают с простыми библиотеками.

 0
Author: Michał Tatarynowicz, 2009-02-13 19:30:01

Я использую Canoo WebTest. Это лучшая бесплатная платформа модульного тестирования веб-сайта. Он полностью совместим с XML и не требует браузера, поэтому может запускаться с сервера сборки.

 0
Author: Otávio Décio, 2009-02-13 19:34:10

Мы модифицировали Официанта (Руби). Он воспроизводит "сценарии" URL-адресов и заполнения форм в IE, и мы добавили "команду" сценария для захвата экрана; изображение для захвата экрана сравнивается с Известным хорошим изображением (т.Е. с Эталонным изображением), и если это изображение отличается, оно регистрируется (в основном готовится веб-страница с такими результатами), и "человек" просматривает Эталонное/тестовое изображение. Очевидно, что в этот момент есть два результата - "Разница преднамеренна" или "Существует неправильное изменение". В первом случае Основное изображение заменяется Новым изображением; во втором мы исправляем ошибку, и изменение будет включено в следующий тестовый запуск

 0
Author: Kristen, 2009-02-13 19:34:43