Интересно, что в этом блоге о классификации инструментов BDD рассказывается о TDD и ATDD. Как отмечает Лиз Кеог: BDD - это разговор и исследование. Чем проще для всех вовлеченных людей внести свой вклад, выразить намерения, поделиться идеями, понять других и т. Д., Тем быстрее мы придем к адекватному решению и тем более качественное программное обеспечение мы создадим. Когда мы, наконец, пойдем по пути инструмента, какие инструменты лучше всего поддерживают сотрудничество между участниками программных проектов?
На основании этого блога о различиях между TDD и BDD, и ATDD. Я бы сказал, что существует как минимум три различных варианта инструмента BDD:
- Фреймворки для модульного тестирования
JUnit изменил наш взгляд на разработку и тестирование. Одна из его сильных сторон заключается в том, что тесты могут быть написаны на том же языке программирования, что и само приложение. Таким образом, мы можем опираться на знания, которые у нас уже есть в команде доставки. Когда тесты используются даже для стимулирования разработки, мы попадаем в рай TDD.
Языки программирования были оптимизированы для уменьшения избыточности, что, по словам Рона Джеффриса, является одним из худших грехов разработчиков. Поэтому мы часто полагаемся на эти инструменты при техническом тестировании, чтобы создать правильный продукт, поскольку они помогают нам работать максимально эффективно.
Несколько парней пытались сделать автоматические тесты более понятными, поскольку модульные тесты на самом деле не читаются. Одной из первых попыток было проанализировать модульные тесты и предоставить краткое резюме, доступное для чтения не разработчикам. Например, TestDox / AgileDox создает простую документацию из имен методов тестовых классов JUnit или Pickels создает документацию на основе файлов функций, написанных на Gherkin.
Такие платформы, как MSpec, помогают писать тесты, которые лучше читаются и дополнительно обеспечивают читаемый вывод. Этот вид инструментов BDD ориентирован на удобочитаемый вывод, что позволяет привлекать не разработчиков после того, как разработчики выполнили свою работу.
- Системы тестирования сценариев
Чтобы вовлечь заинтересованные стороны на более раннем этапе цикла разработки, были созданы новые инструменты, которые больше ориентированы на читаемый ввод. Cucumber использует простые текстовые файлы для предоставления удобочитаемых данных для автоматизированных тестов. Текстовые файлы содержат сценарии, написанные на особым образом структурированном языке, основанном на структуре «дано когда-то». Эти фреймворки - отличные инструменты, которые поддерживают совместное определение критериев приемлемости.
- Рамки приемочного тестирования
Параллельно с идеей BDD был разработан другой вид инструментов, одним из первых представителем которых был FIT. Эта платформа для интегрированного тестирования позволяет указывать примеры в таблицах, которые встроены в документацию, относящуюся к Примеры. Для написания этих документов не требуются навыки разработки, и они могут быть легко прочитаны и проверены нетехническими специалистами, поскольку они основаны исключительно на тексте. Кроме того, текст может быть структурирован, поскольку документы представляют собой не простые текстовые файлы, а результат работы многофункциональных редакторов.
FitNesse позволяет совместно определять ожидаемое поведение на основе вики. Поскольку вики-сайты просты в доступе и использовании, они не требуют больших затрат времени для входа и обучения, что способствует совместной работе всей команды. Многие сторонники Agile подчеркивают, что лучший способ сотрудничества - это личное общение. Но если вы записываете то, что думали и обсуждали, это должно быть как можно более богатым и хорошо структурированным.
Concordion обеспечивает большую гибкость, поскольку вы можете описывать свои требования на обычном языке, используя абзацы, таблицы и правильную пунктуацию. Любая часть вашего описания может использоваться в качестве входных данных для ваших автоматических тестов и для проверки результатов вашей тестируемой системы. Поскольку он основан на HTML, вы можете структурировать свои документы и интегрировать изображения. Просто у вас есть выразительность Интернета, чтобы описать ожидаемое поведение.
BDD должен помочь создать правильный продукт
Вы можете реализовать BDD со всеми тремя видами инструментов, но у каждого из них есть свои сильные и слабые стороны. Фреймворки для модульного тестирования и инструменты, подобные xSpec, отлично используют сильные стороны программирования. Поскольку они являются инструментами от разработчиков для разработчиков, они являются идеальным выбором, если вы попытаетесь разобраться в технической части.
Если вы хотите сообщить о намерении приложения, вам, вероятно, будет лучше использовать инструмент, который тесно связан с инструментами, которые редакторы используют в своей работе. Если спецификация содержит только входные данные и ожидаемые выходы, любой, кто ее прочитает, должен будет реконструировать свои идеи по отношению входных данных к ожидаемым выходным данным. Краткое описание цели спецификации в заголовке помогает читателю понять структуру спецификации. Документы, основанные на конкретной спецификации, могут выглядеть так:
Да, SpecFlow - это круто, NSpec - круто ...
FitNesse и Concordion тоже классные
person
user3632158
schedule
23.10.2014