Кто-нибудь использует исполняемые требования?

Из моего ограниченного опыта работы с ними исполняемые требования (т. Е. Указание всех требований как нарушенных автоматических тестов) оказались удивительно успешными. Я работал над одним проектом, в котором мы уделяли большое внимание созданию высокоуровневых автоматических тестов, которые выполняли бы все функциональные возможности конкретного варианта использования / пользовательской истории. Мне было поразительно, насколько легче стало развитие после того, как мы начали эту практику. Реализация функций стала намного проще после написания теста, и мы смогли внести серьезные архитектурные изменения в систему со всей уверенностью в мире, что все по-прежнему работает так же, как и вчера.

Самая большая проблема, с которой мы столкнулись, заключалась в том, что инструменты для управления этими типами тестов не очень хороши. Мы немного использовали Fitnesse, и в результате я теперь ненавижу фреймворк Fit.

Я хотел бы знать 1) есть ли у кого-либо опыт разработки с использованием этого типа определения требований, основанного на тестировании, и 2) какие инструменты вы все использовали для этого.

15.08.2008 22:02:15
6 ОТВЕТОВ

Мой опыт ограничен личными проектами и нашел те же самые преимущества, которые вы упомянули. Я рекомендую http://metacpan.org/pod/Test::Simple::Tutorial, который послужил моим вдохновением для опробования разработки на основе тестирования. Модули тестирования perl кажутся довольно полезными и гибкими, хотя мне не с чем их сравнивать.

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

1
5.04.2014 15:10:53

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

1
23.08.2008 18:05:59

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

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

Я знаю, что Рик Магридж работал над инструментом под названием ZiBreve (http://www.zibreve.com/visit.php?page=index ), которая должна иметь более сильную поддержку рефакторинга. Я не использовал это сам, но я знаю Рика и говорил с ним несколько раз. Я знаю, что на Agile 2008 была дискуссия о некоторых различных способах работы с тестами Фитнесса в целом.

Кроме этого, я не видел много хороших инструментов там. Даже такие инструменты, как WinRunner, хороши для тестов типа QA, но для пробного тестирования требований предприятия FitNesse или пользовательский DSL, похоже, являются подходящими способами.

6
1.09.2008 19:31:22

Я пробовал Fitnesse и его действительно ужасно (особенно интеграция с SVN). И наша компания разрабатывает аналогичный инструмент с открытым исходным кодом с подходящим движком: FitPro

Еще один замечательный инструмент, который я использовал, это Concordion . Единственный недостаток - требования в формате html

1
16.09.2008 15:01:27

Возможно, вы захотите взглянуть на Robot Framework ( http://robotframework.org ). Он похож на FIT, но, надеюсь, его легче интегрировать в различные инструменты тестирования, контроля версий и непрерывной интеграции. Различные уровни абстракции в тестовых данных также облегчают обслуживание данных, а когда отдельный редактор тестовых данных становится более зрелым, обслуживание становится еще проще. Краткое руководство представляет наиболее важные особенности структуры и действует также в качестве исполняемого демо.

2
7.10.2008 10:23:44

Мне пришлось использовать, тестировать и настраивать как фитнес, так и одного из его конкурентов, GreenPepper для моей работы, и я могу сказать следующее:

GreenPepper - это плагин для слияния (confluence - это корпоративная вики от atlassian), в котором есть много всего, что вам нужно в инструменте уровня «предприятия» без дополнительной работы:

  • Улучшенный удобный текстовый синтаксис вики (облегчает работу для не технических специалистов)
  • Он очень хорошо интегрируется со многими инструментами разработки: Eclipse, VB, maven2 и плагин Nant, я протестировал больше всего и был очень доволен.
  • Пользователь и права доступа управляются слиянием, то есть это хорошо и использует базу данных по своему вкусу (что может быть обязательным в зависимости от того, где вы работаете)
  • Многие другие функциональные возможности, которые могут или могут не потребоваться: поддержка ssl, удаленное выполнение (установить вики на unix, выполнить на windows, если вы работаете над проектом C #, или наоборот)
  • Выглядит намного лучше: D

Большие недостатки для GreenPepper: Конфигурация довольно сложная, а документация оставляет желать лучшего (хотя они, кажется, работают над этим и довольно быстро отвечают на своем форуме), а также это не бесплатно , вы должны заплатить и за слияние, и за GreenPepper, который может сложить довольно много.

Fitnesse, на мой взгляд, очень простой, очень простой в настройке, он работает, но это все, вы можете использовать некоторые плагины fitnesse, разработанные сообществом открытого исходного кода, и даже некоторые плагины Fit, такие как плагин Eclipse (создайте скелетон) приспособления из файла теста пригодности, при условии, что оно в расширении .fit, очень полезно). Интеграция не идеальна, аутентификация и управление правами доступа плохие, но это БЕСПЛАТНО, и если вам что-то нужно, вы можете сделать это, потому что это с открытым исходным кодом.

2
8.07.2009 13:06:35