ОК, поэтому я работаю в компании, которая в последние годы открыто применяет гибкие методы для развития. Наши модульные тесты и качество кода улучшаются. Одна из областей, над которыми мы все еще работаем, - это найти то, что лучше всего подходит для нас на арене автоматического приемочного испытания. Мы хотим использовать наши хорошо сформированные истории пользователей и использовать их для управления кодом в тестовом режиме. Это также даст нам тесты уровня принятия для каждой истории пользователей, которые мы затем можем автоматизировать.Использование JUnit в качестве основы для приемочных испытаний
На сегодняшний день мы пробовали Fit, Fitnesse и Selenium. У каждого есть свои преимущества, но у нас также были реальные проблемы с ними. С Fit и Fitnesse мы не можем не чувствовать, что они слишком сложны, и у нас было много технических проблем, связанных с ними. Бизнес не полностью купил в этих инструментах и не особенно увлекается постоянным сопровождением сценариев (и не являются большими поклонниками стиля таблицы). Селен действительно хорош, но медленный и полагается на данные и ресурсы в реальном времени.
Один из подходов, который мы рассматриваем, - это использование структуры JUnit для обеспечения аналогичной функциональности. Вместо того, чтобы тестировать только небольшую единицу работы с помощью JUnit, почему бы не использовать ее для написания теста (с использованием структуры JUnit), чтобы охватить пропускную способность приложения? То есть возьмем новую историю («Как пользователь, которого я хотел бы увидеть основные сведения о моей политике ...») и напишите тест в JUnit, который начинает выполнять код приложения в точке ввода ссылки на информацию о политике, но охватывает весь код и логики вплоть до уровня доступа с защищенным доступом к данным и обратно в точку пересылки на следующую страницу приложения, утверждая, какие данные пользователь должен видеть на этой странице.
Это, мне кажется, имеют следующие преимущества:
- простота (никаких дополнительных структур, необходимых)
- Нулевой усилия для интеграции с нашей непрерывной интеграции сервера сборки (поскольку он уже обрабатывает наши тесты JUnit)
- Полный Skillset уже присутствует в команде (его просто тест JUnit в конце концов)
И отрицательные стороны являются:
- Меньше участия клиентов (хотя они активно участвуют в написании пользовательских историй, в первую очередь, от которого будут записаны приемочные испытания)
- Возможно, более трудно понять (или сделать понял) рассказ пользователя и принятие критерии в классе JUnit стихи a freetext specification ala Fit or Fitnesse
Итак, мой вопрос действительно, вы когда-нибудь пробовали этот метод? Вы когда-нибудь считали это? Что ты думаешь? Что вам нравится и не нравится в этом подходе? Наконец, пожалуйста, обратите внимание только на альтернативные рамки, если вы можете сказать, почему вам нравится или не нравится больше, чем этот подход.
Вы начинаете с «Я работаю в компании, которая открыто принятой гибкой практики в целях развития в последние годы», а затем следуют с «Бизнес не полностью купил в них инструменты и не особенно заинтересованы в постоянном поддержании сценариев ». Возможно, вы хотите пересмотреть, почему вам нужны автоматические приемочные испытания. –
@binil Мы очень поняли, почему нам нужны автоматические приемочные испытания, но справедливая точка зрения на бизнес. Я должен был сказать, что подразделение IS в нашей компании является драйвером гибкой практики. Его все еще проблема для нас, как лучше работать с ними в гибкой манере. –
, если вы еще этого не сделали, взгляните на spock и geb http://blog.springsource.org/2010/08/28/the-future-of-functional-web-testing/ –