Ресурсы для тестовой разработки в веб-приложениях? [закрыто]

15

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

Я читал и пробовал TDD и модульное тестирование, но примеры - это «надежные» и довольно простые функции, такие как конвертер валют и так далее.

Существуют ли какие-либо ресурсы, которые могут помочь в модульном тестировании систем управления контентом и публикации? Как насчет модульного тестирования корзины / магазина (физических и онлайн-продуктов)? AJAX?

Поиск в Google для «разработки через веб-тестирование» просто приводит меня к старым статьям, опубликованным несколько лет назад, либо посвященным одним и тем же примерам калькуляторных функций, либо дискуссиям о том, почему TDD лучше всего (без каких-либо примеров).

HorusKol
источник
1
доступные инструменты будут зависеть от языка. какой язык (языки) вы используете?
Alb
Я понимаю это - но я больше искал дискуссионные статьи и эссе, а не конкретные инструменты. Я знаю, какие инструменты доступны, но хотел бы узнать, как лучше всего использовать их для приложений, управляемых интерфейсом.
HorusKol

Ответы:

2

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

Создайте свое веб-приложение таким образом, чтобы можно было тестировать бизнес-правила изолированно. Если вы тестируете бизнес-правила через пользовательский интерфейс, возможно, пришло время подумать о редизайне.

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

Два вышеупомянутых правила взяты из выступления Боба Мартина на RailsConf 2010 . Речь не идет о TDD, а раздел, где он упоминает о тестировании, короткий и где-то посередине.

Существуют такие инструменты, как JsUnit , JSSpec , YUI Test для тестирования JavaScript и Selenium и Watir для тестирования пользовательского интерфейса.

У Pragmatic Bookshelf есть несколько книг, посвященных тестированию веб-приложений. Список книг с тегами «Тестирование» находится по адресу http://www.pragprog.com/categories/design . Книги по тестированию веб-приложений Pragmatic Bookshelf в основном ориентированы на Ruby и Rails, но должны быть применимы в целом.

Энтони Крамп
источник
Одной из основных проблем в веб-дизайне является CSS-тестирование - новое правило CSS может иметь непредвиденные последствия, но только на странице с конкретным контентом ...
HorusKol
Хороший вопрос. Я бы предположил, что это часть вашего тестирования пользовательского интерфейса. Вы разрабатываете свои тесты, чтобы включать в себя различное содержимое страницы, которое вы ожидаете (и несколько, чего вы не ожидаете), и соответствующим образом записывать свои подтверждения. Затем, когда вы вводите новые правила CSS, ваше тестирование пользовательского интерфейса должно выделять любые регрессии. Возможно, этот процесс занимает слишком много времени, и вы можете лучше справиться с ним, просто если кто-нибудь проведет QA-тестирование на сайте и сообщит о проблемах.
Энтони Крэмп
3

Разработка на основе тестов JavaScript - это действительно хорошая книга от Кристиана Йохансена, разработчика Sinon.js и Buster.js , которая охватывает такие темы, как (взято с сайта):

  • Понимание модульного тестирования и TDD
  • Выбор правильной основы модульного тестирования
  • Создание более чистых API, модульный и надежный JavaScript
  • Постоянно улучшая код с помощью рефакторинга
  • Пять практических сессий TDD: Ajax, манипулирование DOM, Node.js и многое другое
  • Тестовый тур по JavaScript для разработчиков, не знакомых с языком

В настоящее время мы используем Sinon.js с Mocha, но готовы перейти на Buster.js, поскольку его возможности действительно хороши!

пис
источник
1

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

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

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

Таким образом, в веб-приложении вы можете смоделировать свою базу данных для модульного тестирования различных частей слоя или модели доступа к данным; Вы можете смоделировать пользовательский ввод для модульного тестирования представления или пользовательского интерфейса и так далее.

amelvin
источник
0

Я написал книгу о TDD для веб-разработки с Python + Django. он охватывает TDD, как с помощью сквозных / функциональных тестов (селен), так и низкоуровневых «блочных» тестов. Я также расскажу о современных практиках разработки, таких как интеграция git в рабочий процесс, развертывание на сервере, автоматизация и тестирование, непрерывная интеграция, проверки и изоляция тестов и многое другое:

http://www.obeythetestinggoat.com/

(или http://shop.oreilly.com/product/0636920051091.do )

hwjp
источник
Ссылка не работает
Келдон Аллейн