FitNesse - FitNesse

FitNesse
Стабильный выпуск
v20190428 / 28 апреля 2019 г.; 19 месяцев назад (2019-04-28)
Репозиторий Отредактируйте это в Викиданных
Написано вЯва
Операционная системаКроссплатформенность
ТипАвтоматизация тестирования
ЛицензияCPL [1]
Интернет сайтфитнес.org

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

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

FitNesse написан на Ява (Мика Мартин с помощью Роберт С. Мартин и другие[2]). Сначала программа поддерживала только Java, но со временем были добавлены версии для нескольких других языков (C ++, Python, Рубин, Delphi, C #, так далее.).

Принципы FitNesse

FitNesse как метод тестирования

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

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

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

FitNesse как инструмент тестирования

В Fitnesse тесты описываются как объединение входных и ожидаемых выходов. Эти муфты представляют собой выраженные вариации таблица решений. Инструмент FitNesse поддерживает несколько из этих вариантов, начиная от буквальных таблиц решений и заканчивая таблицами, которые выполняют запросы, и таблицами, которые выражают сценарии тестирования (т. Е. Буквальный порядок шагов, которые необходимо выполнить для достижения результата). Самая общая форма - это таблица полностью произвольной формы, которую разработчики тестов могут интерпретировать любым способом. Однако все тесты представлены в виде какой-то таблицы.

FitNesse полностью ориентирован на легкое создание тестов, позволяя тестировщикам и разработчикам сосредоточиться на создании высококачественных тестов, а не теряться в механике выполнения теста. Учитывая то, как работает FitNesse, создание тестов легко включает три фактора:

  1. Легко создавать таблицы.
  2. Простое преобразование таблиц в вызовы тестируемой системы.
  3. Обеспечение простоты и гибкости при документировании тестов.

Чтобы соответствовать этим требованиям, FitNesse использует механизм вики. Классически вики-сайты позволяют легко и быстро создавать HTML-страницы и особенно упрощают отображение таблиц. Эти качества составляют основу ВикиВики язык - идеальный выбор для «пользовательского интерфейса» для FitNesse: с одной стороны, он позволяет простое выражение таблиц очень произвольной формы, с другой стороны, он ограничивает содержимое этих таблиц довольно простым текстом. Это означает, что язык WikiWiki может обрабатывать любую форму таблицы, которая требуется для конкретного теста, и в то же время ограничивает содержимое этих таблиц буквенно-цифровым текстом, который можно легко сопоставить с вызовом части программного обеспечения. Наконец, поскольку каждый тест в FitNesse представляет собой вики-страницу, можно встроить каждую тестовую таблицу в вики-текст; это позволяет функциональному тестеру быстро включать описательный текст с разумной компоновкой.

FitNesse как программный инструмент

FitNesse - это инструмент, разработанный в Ява и поставляется как единый исполняемый файл файл jar. Исполняемый файл включает движок вики, встроенный веб сервер, механизм тестирования и все ресурсы (изображения, таблицы стилей и так далее), необходимые для создания веб-сайта в собственном стиле FitNesse.

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

После запуска инструмент развертывает собственный механизм Wiki на своем встроенном сервере. Этот механизм Wiki также ориентирован на простоту, что означает, что для его работы не требуется резервная база данных - он просто создает файловую коллекцию страниц Wiki, которые интерпретируются механизмом Wiki и обслуживаются встроенным веб-сервером. Вики-сайт по умолчанию, созданный инструментом, включает руководство пользователя FitNesse и несколько примеров. Репозиторий документов по умолчанию создается в комплекте со всем необходимым для публикации вики по умолчанию в стиле FitNesse (то есть все изображения, таблицы стилей, файлы JavaScript и т. Д. Создаются вместе с базовым репозиторием вики-страниц).

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

Выполнение теста

Тестирование в системе FitNesse включает четыре компонента в каждом тесте:

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

Из этих компонентов группа разработчиков программного обеспечения создает два: вики-страницу и приспособление (конечно, она также производит тестируемую систему, но с точки зрения черный ящик только два). Вики-страница включает в себя некоторую форму таблицы решений, которая выражает тест. Например, он может выражать тесты для компонента, выполняющего деление (пример основан на примере, приведенном в двухминутном примере FitNesse):

Тест компонентов деления
Значение числителяЗначение знаменателяРезультат?
1025.0
1052.0
522.5

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

общественный учебный класс DivisionComponentTest расширяет Колонка {    частный двойной число;    частный двойной деноминация;    общественный пустота setNumeratorValue (двойной числитель) {        число = числитель;    }    общественный пустота setDenominatorValue (двойной знаменатель) {        деноминация = знаменатель;    }    общественный двойной результат() {        возвращаться SystemUnderTest.разделять (число, деноминация);    }}

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

Тестирование двигателей

Фактическое сопоставление, как описано выше (а также вызов методов фикстуры), выполняется механизмом тестирования. FitNesse поддерживает два из этих двигателей: двигатель FIT и двигатель SLIM.

ПОМЕСТИТЬСЯ

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

FIT - это структура, которая объединяет множество обязанностей при тестировании, а не четко разделяет обязанности. Разработчик программного обеспечения платит за этот факт тем, что приспособления для механизма FIT должны наследовать от базовых классов инфраструктуры FIT. Это может быть неудобно в Java, так как это означает, что фреймворк требует от разработчика единственного шанса наследования класса. Это также означает, что приспособление по своей природе является тяжеловесной конструкцией. Эти соображения побудили команду FitNesse в последние годы перейти на движок тестирования SLIM.

СТРОЙНЫЙ

SLIM (Simple List Invocation Method) - это альтернатива Fit. SLIM Engine представляет собой реализацию Тонкий протокол. Вместо того, чтобы комбинировать все элементы тестирования на основе вики, движок SLIM концентрируется только на вызове прибора; он работает как отдельный сервер, который удаленно запускается вики-движком FitNesse. Интерпретация страницы вики и создание страницы результатов теперь является частью механизма вики.

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

Смотрите также

Книги

  • Подходит для разработки программного обеспечения: платформа для интегрированных тестов Рик Магридж; Уорд Каннингем (ISBN  978-0-321-26934-8) опубликовано Prentice Hall в июне 2005 г.
  • Разработка .NET через тестирование с помощью FitNesse к Гойко Аджич (ISBN  978-0-9556836-0-2) опубликовано Neuri Limited (28 февраля 2008 г.)
  • Филип А. Лапланте: Разработка требований для программного обеспечения и систем, Публикации Ауэрбаха, Бока-Ратон, Флорида, 2009 г., стр. 166–167, ISBN  978-1420064674

Рекомендации

  1. ^ Мартин, Роберт С. "Заголовок лицензии". Репозиторий исходного кода FitNesse. GitHub. Получено 4 июля 2012.
  2. ^ Роберт, Мартин. «Три правила TDD». butunclebob.com. Получено 23 августа 2019.

внешняя ссылка