С помощью чего писать тесты для сайта?

Уже давно читаю надписи типа - не пишешь тесты для сайта ( магазина к примеру ), то ты плохой. И никак не могу понять где про это почитать. И с чего начать. Тоесть можно ли вообще тестировать сайт? Или это говорят только про серверную часть? Если ли какие-то framework'и для такого тестирования? Ну что бы например внес я какие-то изменения в js или частично в HTML. Запустил тест и он... вообщем сказал работает он по старому или сломался. Вроде такие тесты называются end-to-end, да? Вообщем подскажите куда копать по этой теме?
  • Вопрос задан
  • 4339 просмотров
Пригласить эксперта
Ответы на вопрос 5
@hubramubr
Не пишешь тесты - ты плохой программист?
Это от задачи зависит. Автоматизированное тестирование - это вещь. Но на недорогих проектах обходятся без этого.

Есть тесты серверной части, есть тесты JS, есть тесты функциональные, есть юнит-тестирование. Они все пишутся по разному и на разном.

Ну, например, Selenium используется для тестов с эмуляцией пользователя.
А методика юнит-тестирование как правило описана в документации к используемым инструментам.
Ответ написан
@xfg
Из популярных для юнит-тестов
mocha
jasmine
Для end-to-end тестов
nightwatch
protractor

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

Функциональные (end-to-end) тесты эмулируют поведение пользователя через реальный браузер. То есть end-to-end тест нажимает кнопочки, заполняет поля, ходит по ссылкам. Эти тесты более медленные, чем юнит-тесты. Изменения в верстке страницы могут их поломать. Но они более высокоуровневые, дают убедиться, что страница работает именно так как предполагалось. Не зависят от кода, а следовательно не имеют проблем с DOM в отличие от юнит-тестов.

Лично я пишу только юнит-тесты. И не пишу интеграционные и функциональные. Юнит-тесты очень быстрые, можно в автоматическом режиме прогонять при каждом сохранении файла проекта. В тоже время они дают приемлемый уровень уверенности в том, что билд проекта скорее будет работать, чем нет. Если писать все типы тестов, то можно выстрелить себе в ногу. Будет медленее. Будет больше проблем с исправлением кучи всяких разных тестов.
Ответ написан
samizdam
@samizdam
Почитайте про Selenium — для любого языка программирования есть фреймворки работающие на базе его.
Ответ написан
Комментировать
@evgenktulu
Кроме Selenium-а можно еще обратить внимание на PhantomJS и его отпрыска CasperJS (headless browser testing)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы