Использование FitNesse вместо NUnit

Насколько я понял, есть пара случаев, когда вы можете захотеть использовать FitNesse.

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

Мое личное мнение и опыт:

  • Я могу проводить приемочное тестирование с помощью таких инструментов, как NUnit. Fitnesse - это, по сути, просто среда для вызова общедоступных методов в сборке .NET, что можно сделать с помощью NUnit для.
  • Заинтересованные стороны говорят мне, чего они хотят. Они редко интересуются написанием тестов Fitnesse. Кажется, у них есть другие / лучшие / более важные дела.
  • Вы можете проводить крупномасштабные тесты с помощью FitNesse. Насколько мне известно, вам придется вводить все данные для этих крупномасштабных тестов в текстовый редактор в веб-браузере. Что может быть проще, чем чтение входных данных из текстового файла на диске, файла Excel или базы данных? Конечно, вы можете указать путь к файлу на диске в веб-интерфейсе, но какие преимущества это даст перед использованием NUnit для чтения того же файла?
  • Эти нетехнические люди должны писать код, следуя очень специфическому синтаксису в текстовом редакторе на веб-сайте, который позже будет вызывать сборки .NET. Код .NET становится беспорядочным, поскольку человек, не имеющий технических знаний, не разбирается в программировании, но он все еще определяет, как должна работать сборка.

Может кто-нибудь поделится другим мнением по этому поводу? Чем полезен для вас FitNesse?


person SteveN    schedule 10.02.2010    source источник
comment
Мне кажется странным, что кто-то поддержал этот вопрос, но не проголосовал за него. Это распространено на SO?   -  person Mike Burton    schedule 10.02.2010
comment
Кстати, есть ли какие-нибудь руководства по приемочным испытаниям .NET / Fitnesse?   -  person HichemSeeSharp    schedule 26.04.2012


Ответы (3)


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

Пользователь делает это. Пользователь делает то, что теперь пользователь видит это.

В идеале фитнес-слой может располагаться непосредственно над самым верхним уровнем вашего приложения, заменяя последний слой рендеринга.

Инструменты модульного тестирования на самом деле не предназначены для этого, вы можете это сделать? Конечно. Но это странно.

Еще одна вещь, на мой взгляд, заключается в том, что вы немного ошибаетесь в том, что «вы хотите, чтобы тесты писали нетехнические люди». Fitnesse - это инструмент для сотрудничества. Вы должны писать тесты С заинтересованными сторонами, давать и получать отзывы. Затем он может быть документацией. Итак, год спустя, когда кто-то захочет узнать, почему система работает так, как она работает, вы можете открыть тесты, отображаемые таким образом, чтобы БА понимал (в отличие от nUnit), и сказать: хорошо, вот оно, если мы его изменим. ?

person ryber    schedule 10.02.2010

FitNesse разработан для совершенно иной цели, чем NUnit. Проведение приемочного тестирования с помощью NUnit означает, прежде всего, что весь набор тестов должен быть написан в коде. FitNesse разработан с целью, чтобы при определенном уровне подготовки вы могли записывать свои тесты в данные. Это очень разные режимы работы, и они применимы к очень разным ресурсам. Они также поощряют совершенно разные взгляды на мир - разработчик тестовых случаев FitNesse работает с предположением, что произойдет очень простое и понятное преобразование, тогда как пользователь NUnit имеет много знаний о том, как это преобразование работает, и имеет ловушки. в систему, которые не имеют ничего общего с самой трансформацией.

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

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

person Mike Burton    schedule 10.02.2010

Типичный ответ на ваш вопрос:

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

person STW    schedule 10.02.2010