ОК, поэтому я работаю в компании, которая в последние годы открыто использует гибкие методы для развития. Наши модульные тесты и качество кода улучшаются. Одна из областей, над которыми мы все еще работаем, - это найти то, что лучше всего подходит для нас на арене автоматического приемочного испытания. Мы хотим использовать наши хорошо сформированные истории пользователей и использовать их для управления кодом в тестовом режиме. Это также даст нам тесты уровня принятия для каждой истории пользователей, которые мы затем можем автоматизировать.
На сегодняшний день мы пробовали Fit, Fitnesse и Selenium. У каждого есть свои преимущества, но у нас также были реальные проблемы с ними. С Fit и Fitnesse мы не можем не чувствовать, что они слишком сложны, и у нас было много технических проблем, связанных с ними. Бизнес не полностью купил в этих инструментах и не особенно увлекается постоянным сопровождением сценариев (и не являются большими поклонниками стиля таблицы). Селен действительно хорош, но медленный и зависит от данных и ресурсов в реальном времени.
Один из подходов, который мы сейчас рассматриваем, - использование структуры JUnit для обеспечения аналогичной функциональности. Вместо того, чтобы тестировать только небольшую единицу работы с помощью JUnit, почему бы не использовать ее для написания теста (с использованием структуры JUnit), чтобы охватить пропускную способность приложения? То есть возьмем новую историю ( "Как пользователь, которого я хотел бы увидеть основные сведения о моей политике..." ) и напишите тест в JUnit, который начинает выполнять код приложения в точке ввода ссылки на информацию о политике, но охватывает весь код и логику до уровня доступа с защищенным доступом к данным и обратно в точку пересылки на следующую страницу приложения, утверждая, какие данные пользователь должен видеть на этой странице.
Мне кажется, что у меня есть следующие преимущества:
- Простота (не требуется никаких дополнительных фреймворков)
- Нулевое усилие для интеграции с нашим сервером сборки Continuous Integration (поскольку он уже обрабатывает наши тесты JUnit)
- Полный набор навыков уже присутствует в команде (это просто тест JUnit)
И нижние части:
- Меньше привлечения клиентов (хотя они в значительной степени участвуют в написании рассказов пользователей в первую очередь, из которых будут записаны приемочные тесты)
- Возможно, сложнее понять (или понять) пользовательскую историю и критерии приемлемости в классе JUnit, стихи спецификации freetext ala Fit или Fitnesse
Итак, мой вопрос действительно, вы когда-нибудь пробовали этот метод? Вы когда-нибудь считали это? Что ты думаешь? Что вам нравится и не нравится в этом подходе? Наконец, пожалуйста, обратите внимание только на альтернативные рамки, если вы можете сказать, почему вам нравится или не нравится больше, чем этот подход.