Зачем использовать FitNesse, если тесты носят сугубо технический характер?

Мне кажется, что FitNesse имеет следующие преимущества:

  • Пусть нетехнический человек определит наборы тестовых данных и ожидаемых результатов (как они определяют успех). Нетехническим лицом может быть пользователь, менеджер по продукту или, возможно, специалист по качеству программного обеспечения, который не имеет доступа к исходному коду и / или не знает, как программировать на исходном языке.

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

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

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

  • Это позволяет автору исходного кода и сопровождающим быстро увидеть, где тест не прошел, а где - нет.

  • Тесты написаны на том же языке, что и исходный код, поэтому отдельная экспертиза (например, Perl или Python) не требуется.

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

Итак, если вы используете FitNesse в среде, где ваш «пользователь» такой же технический специалист, как и вы, почему? Если вы попробовали и отказались от этого, по каким причинам?

Если вы используете FitNesse для тестирования кода, предназначенного для отдельного проприетарного оборудования (встроенной системы), как это работает?


person jasper77    schedule 17.09.2010    source источник
comment
Автоматическое тестирование встроенной системы само по себе может содержать червей, особенно когда тесты требуют, чтобы внешние стимулы были значимыми. (Подумайте о логике подушки безопасности, которая проверяет входные данные от нескольких акселерометров.) Мне лично больше всего повезло, когда я проводил модульные тесты встроенного кода, создавая его для тестирования на ПК и подтверждая с помощью функционального тестирования, что он обычно работает во встроенной системе. Но у моих проектов также нет бюджета, чтобы купить в лаборатории программируемые генераторы сигналов и регистраторы данных, чтобы построить настоящую испытательную ячейку.   -  person RBerteig    schedule 18.09.2010
comment
Автоматизировать тестирование в этой системе проще, потому что в ней нет движущихся частей, и это Linux, поэтому я могу смонтировать систему в моей основной системе Linux и запустить (кросс-скомпилированный) исполняемый файл, не проходя цикл загрузки, который вы получаете в ОСРВ или без нее. Системы ОС. Тем не менее, когда дело доходит до этого, программное обеспечение рассматривает мир как конкретные входные данные, которые можно имитировать. Стоит ли имитировать вложения, в значительной степени зависит от конкретного проекта. В этом случае при реализации стека протоколов из драйвера устройства вопросы тестирования аналогичны таковым для разработки невстроенных API.   -  person jasper77    schedule 18.09.2010
comment
Я полностью согласен с вашим утверждением, что сложность включения в автоматизированную систему сборки является серьезным недостатком.   -  person ossandcad    schedule 20.09.2010


Ответы (1)


Я полностью согласен с вашим утверждением, что сложность включения в автоматизированную систему сборки является серьезным недостатком (расширение комментария выше до ответа), и по этой причине я решил использовать альтернативную реализацию Fit для C ++, CeeFit. Исходный веб-сайт (ceefit.woldrich.com), на котором размещалась документация по CeeFit, не работал на много месяцев, но, похоже, сейчас вернулся. CeeFit можно легко автоматизировать и интегрировать в любой CI, но отсутствуют выходные данные в любом формате, приемлемом для CruiseControl.NET, например, Что касается того, может ли CeeFit работать со встроенными системами, не уверен, в документации ничего не упоминается.

person ossandcad    schedule 19.09.2010
comment
Подходит ли CeeFit для разработки под Windows? На сайте рассказывается о библиотеках DLL и .NET. Я работаю над Linux. - person jasper77; 20.09.2010
comment
@ jasper77 Я так не думаю, поскольку страница ceefit.woldrich.com/?page=Install упоминает Red Hat и Solaris как возможные платформы. У меня нет опыта работы с CeeFit на устройствах, отличных от Windows, поэтому я не могу поручиться за это, но, работая с кодом + документацией в течение ~ 2 лет, я был бы уверен в том, что он говорит. - person ossandcad; 22.09.2010