Может ли BDD-тестирование с использованием салата заменить все другие формы тестирования в проекте? - PullRequest
7 голосов
/ 24 октября 2011

Мне нравится салат, и ощущение тестирования с ним. Могу ли я заменить все тесты (doctests / unit тесты) в проекте функциями Lettuce?

Ответы [ 3 ]

8 голосов
/ 24 октября 2011

Короче говоря, нет.

Я не использовал салат, но ваш вопрос в равной степени относится и к другим средам BDD, таким как Cucumber.

Этот подход считается плохой практикой, поскольку интеграционные тестыон медленнее запускается и требует больше работы, чем модульные тесты.

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

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

2 голосов
/ 03 ноября 2011

Я должен не согласиться с Энди.

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

Но это не обязательно означает, что при правильном разделении вы не можете использовать среду BDD (я тоже не использовал салат) в качестве бегуна для ваших тестов.

Мне также очень нравится тот факт, что синтаксис Gherkin может быть перенесен на бизнес-экспертов, тестировщиков и спонсоров в качестве средства для отслеживания процесса, которому необходимо следовать, поэтому я не вижу причин, почему один набор спецификаций не может быть нацелен на Уровень блока, но другой может быть нацелен на уровень системы и регрессии.

Рассмотрим этот пример (надуманный и явно не достаточно гранулированный)

  • Учитывая, что мой тестовый сервер обновлен до последней ночи сборки
  • Когда я запускаю свой regressionTestPack1
  • Тогда мои результаты регрессии должны соответствовать известным результатам для regressionTestPack1

Я также не говорю, что это уместно в любом случае. Вы должны оценить, какую выгоду вы получите от такого подхода, если оставить все свои тесты в разных системах. В частности, подумайте, какова база опыта людей, проводящих тестирование.

Так что, если вы пишете небольшой технический проект, как единственный разработчик, и вы предпочитаете этот синтаксис, то нет никаких причин для этого. Просто будьте очень осторожны, вы все еще изолируете свои модульные тесты от системных тестов от своих регрессионных тестов.

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

1 голос
/ 23 июля 2013

Плохо использовать корнишон / салат для всего.

1) Никогда не стоит полностью отказываться от ручного тестирования.Вы можете заменить повторяющееся тестирование на основе сценариев, но вам нужно запускать программное обеспечение в обход того, кто может его неправильно понять или неправильно использовать.Творческое, деструктивное, человеческое тестирование важно - но тяжелый подъем (90% + всего тестирования) должен быть автоматизирован.

2) Еще одна причина кроется в другом: она выполняется медленно по сравнению с юнит-тестами.Я считаю, что чем дольше выполняется тест, тем меньше вероятность, что его будут запускать часто.Вы хотите, чтобы не было решения запускать тесты после каждого изменения, возможно, 2 или 3 раза каждые 5 минут (да, это так быстро!).

3) Лично я считаю, что написание юнит-тестов со снифферомили автономность в другом окне дает мне наилучшую среду для тест-драйва кода.Я не знаю, как это сделать с салатом.

4) Зачем переключать языки, если это не нужно?Unittest находится в Python, и нет никаких приспособлений или каких-либо других вещей, чтобы добраться до кода, который вы интересуетесь для тестирования.Хорошо работает с издевательствами и подделками.Огурец - это весело, но в нем больше задействовано сантехники.Дополнительная сантехника хороша, если у вас есть непрограммисты, пишущие тесты, но в остальном это просто накладные расходы.

...