Фитнессе
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Стабильная версия | v20230503
/ 3 мая 2023 г [1] |
---|---|
Репозиторий | |
Написано в | Ява |
Операционная система | Кросс-платформенный |
Тип | Автоматизация тестирования |
Лицензия | CPL [2] |
Веб-сайт | фитнес |
FitNesse — это веб-сервер , вики и автоматического тестирования инструмент программного обеспечения . Он основан на Уорда Каннингема и платформе интегрированного тестирования предназначен для поддержки приемочного тестирования, а не модульного тестирования , поскольку облегчает подробное читаемое описание функций системы.
FitNesse позволяет пользователям разработанной системы вводить специально отформатированные данные (его формат доступен непрограммистам). Эти входные данные интерпретируются, и тесты создаются автоматически. Эти тесты затем выполняются системой, и выходные данные возвращаются пользователю.
Плюсом такого подхода является очень быстрая обратная связь от пользователей. Разработчик тестируемой системы должен предоставить некоторую поддержку (классы, называемые «фикстурами», соответствующие определенным соглашениям).
FitNesse написан на Java (микой Мартином при помощи Роберта К. Мартина и других). [3] ). Программа сначала поддерживала только Java, но со временем были добавлены версии для нескольких других языков ( C++ , Python , Ruby , Delphi , C# и др.).
Принципы Фитнессе
[ редактировать ]FitNesse как метод тестирования
[ редактировать ]FitNesse изначально разрабатывался как очень удобный интерфейс на основе платформы Fit. Таким образом, его намерение состоит в поддержке гибкого стиля «черного ящика» приемочного и регрессионного тестирования . В этом стиле тестирования функциональные тестировщики в проекте разработки программного обеспечения сотрудничают с разработчиками программного обеспечения для разработки набора тестов.
Тестирование FitNesse основано на нотации тестирования «черного ящика», при котором тестируемая система рассматривается как «черный ящик» и тестируется с точки зрения выходных данных, генерируемых в ответ на заранее определенные входные данные. Функциональный тестер отвечает за разработку тестов в функциональном смысле и их выражение в инструменте FitNesse, тогда как разработчик программного обеспечения отвечает за подключение инструмента FitNesse к тестируемой системе, чтобы FitNesse мог выполнить тест и сравнить фактические выходные данные с ожидаемый результат.
Идея этого метода тестирования, описанная в книге « Пригодность для разработки программного обеспечения» , заключается в том, что принудительное сотрудничество тестировщиков и разработчиков улучшит взаимопонимание системы и требований, заставляя две группы вырабатывать общий язык по мере того, как они учатся общаться друг с другом.
FitNesse как инструмент тестирования
[ редактировать ]Тесты описываются в Fitnesse как сочетание входных данных и ожидаемых результатов. Эти связи представляют собой выраженные варианты таблицы решений . Инструмент FitNesse поддерживает несколько таких вариантов: от буквальных таблиц решений до таблиц, выполняющих запросы, и таблиц, выражающих сценарии тестирования (т. е. буквальный порядок шагов, которые необходимо выполнить для достижения результата). Самая общая форма — это таблица полностью произвольной формы, которую можно интерпретировать любым способом, который нравится разработчикам тестов. Однако все тесты выражаются в виде какой-то таблицы.
FitNesse полностью ориентирован на простоту создания тестов, позволяя тестировщикам и разработчикам сосредоточиться на создании высококачественных тестов, а не теряться в механике выполнения теста. Учитывая принцип работы FitNesse, создание тестов легко включает в себя три фактора:
- Легко создавать таблицы.
- Легко переводить таблицы в обращения к тестируемой системе.
- Обеспечивает простоту и гибкость документирования тестов.
Чтобы удовлетворить эти требования, FitNesse использует механизм вики. Вики-страницы классически позволяют легко и быстро создавать HTML-страницы и особенно упрощают представление таблиц. Эти качества делают базовый язык WikiWiki идеальным выбором для «пользовательского интерфейса» для FitNesse: с одной стороны, он позволяет простое выражение таблиц очень свободной формы, с другой стороны, он ограничивает содержимое этих таблиц довольно простым. текст.
Это означает, что язык WikiWiki может обрабатывать таблицы любой формы, необходимые для конкретного теста, и в то же время ограничивает содержимое этих таблиц буквенно-цифровым текстом, который можно легко преобразовать в вызов какой-либо программы. Наконец, поскольку каждый тест в FitNesse представляет собой вики-страницу, можно встроить каждую таблицу тестирования в вики-текст; это позволяет функциональному тестировщику быстро включать описательный текст с разумным макетом.
FitNesse как программный инструмент
[ редактировать ]FitNesse — это инструмент, разработанный на Java и поставляемый в виде одного исполняемого файла jar . Исполняемый файл включает в себя вики-движок, встроенный веб-сервер, механизм тестирования и все ресурсы (изображения, таблицы стилей и т. д.), необходимые для создания веб-сайта в собственном стиле FitNesse.
FitNesse уделяет большое внимание простоте использования в качестве инструмента тестирования. Таким образом, он поставляется со всеми необходимыми компонентами: при запуске инструмент запускает встроенный веб-сервер, который позволяет с одинаковой легкостью открывать тестовые страницы локально или через Интернет. Встроенный сервер довольно легкий и может запускаться как с ноутбука, так и с полноценного серверного компьютера.
После запуска инструмент развертывает собственный движок Wiki на встроенном сервере. Этот движок Wiki также ориентирован на простоту: это означает, что для его работы не требуется резервная база данных — он просто создает файловую коллекцию вики-страниц, которые интерпретируются движком Wiki и обслуживаются встроенным веб-сервером.
Вики-сайт по умолчанию, созданный с помощью этого инструмента, включает руководство пользователя FitNesse и несколько примеров. Репозиторий документов по умолчанию создается со всем необходимым для публикации вики по умолчанию в стиле FitNesse (то есть все изображения, таблицы стилей, файлы JavaScript и т. д. создаются вместе с базовым репозиторием вики-страниц).
Движок вики довольно прост, но предлагает все основные возможности, общие для движков вики: поисковую систему , историю изменений на странице и обзор файлов. Он также предлагает некоторые операции рефакторинга, которые позволяют удалять, перемещать и переименовывать файлы. Кроме того, вики-движок предлагает некоторые возможности, специфичные для тестов, такие как стандартные кнопки для запуска тестов, способы определения отдельных тестовых страниц и наборов тестов, а также исторический обзор результатов тестов для анализа тенденций. Наконец, движок предлагает некоторые незначительные средства безопасности для блокировки страниц и обеспечения доступа к вики.
Выполнение теста
[ редактировать ]Тестирование в системе FitNesse включает в себя четыре компонента каждого теста:
- Вики-страница, описывающая тест в виде таблицы решений.
- Механизм тестирования, который интерпретирует вики-страницу.
- Тестовое приспособление , которое вызывается механизмом тестирования и, в свою очередь, вызывает тестируемую систему.
- Тестируемая система, которая проходит тестирование.
Из этих компонентов команда разработчиков программного обеспечения производит два: вики-страницу и приспособление (конечно, она также производит тестируемую систему, но с точки зрения теста «черного ящика» только два). На вики-странице есть некоторая форма таблицы решений, которая представляет собой тест. Например, он может выражать тесты для компонента, выполняющего деление (пример основан на примере, приведенном в двухминутном примере FitNesse):
Значение числителя | Значение знаменателя | Результат? |
---|---|---|
10 | 2 | 5.0 |
10 | 5 | 2.0 |
5 | 2 | 2.5 |
Связь между общим механизмом тестирования и тестируемой системой осуществляется с помощью фрагмента кода Java, называемого приспособлением. В случае с таблицей выше этот код может выглядеть так:
public class DivisionComponentTest extends ColumnFixture {
private double num;
private double denom;
public void setNumeratorValue (double numerator) {
num = numerator;
}
public void setDenominatorValue (double denominator) {
denom = denominator;
}
public double result() {
return SystemUnderTest.divide (num, denom);
}
}
Сопоставление между вики-страницей и фикстурой представляет собой простое преобразование регистра в Camel . Это сопоставление применяется ко всем заголовкам таблиц и используется для идентификации имени класса фикстуры, а также методов фикстуры. Заголовок, оканчивающийся вопросительным знаком, интерпретируется как значение, которое нужно прочитать из прибора, остальные заголовки считаются входными данными для прибора. Методы фикстуры вызываются в порядке столбцов таблицы решений, слева направо.
Тестирование двигателей
[ редактировать ]Фактическое сопоставление, как описано выше (а также вызов методов фиксации), выполняется механизмом тестирования. FitNesse поддерживает два из этих механизмов: Fit и SLIM.
Соответствовать
[ редактировать ]Fit — это не просто движок, а сама платформа тестирования. Он сочетает в себе функциональность для запуска тестов, интерпретации вики-страниц и создания выходных страниц. FitNesse изначально был построен на основе Fit как пользовательского интерфейса, что и послужило причиной названия инструмента.
Fit — это структура, которая объединяет множество обязанностей по тестированию, а не четко разделяет обязанности. Разработчик программного обеспечения платит за этот факт тем, что приспособления для механизма Fit должны наследовать от базовых классов платформы Fit. В Java это может быть неудобно, поскольку это означает, что инфраструктура требует от разработчика единственного шанса на наследование классов. Это также означает, что приспособление по своей природе является тяжелой конструкцией. Эти соображения побудили команду FitNesse в последние годы перейти на механизм тестирования SLIM.
СТРОЙНЫЙ
[ редактировать ]SLIM (простой метод вызова списка) является альтернативой Fit. Движок SLIM представляет собой реализацию протокола Slim, заархивированного 6 декабря 2014 г. на Wayback Machine . Вместо того, чтобы объединять все элементы тестирования на основе Wiki, механизм SLIM концентрируется только на вызове фикстуры; он работает как отдельный сервер, который удаленно вызывается вики-движком FitNesse. Интерпретация вики-страницы и создание страницы результатов теперь являются частью вики-движка.
Движок SLIM позволяет создавать гораздо более легкие приспособления, которые представляют собой простые POJO . Этим фикстурам не требуется расширять или использовать какие-либо классы инфраструктуры, что упрощает их проектирование и позволяет разработчику фикстур сконцентрироваться на правильном и максимально простом вызове тестируемой системы. Он также сохраняет открытым путь наследования, позволяя разработчикам приборов при необходимости создавать иерархии приборов.
См. также
[ редактировать ]- Разработка через приемочное тестирование
- Спецификация на примере
- Приемочное тестирование (также называемое функциональным тестированием)
- Тестирование производительности программного обеспечения
- Регрессионное тестирование
- вода
- StoryTestIQ (STIQ) — смесь Selenium и вики Fitness (Обратите внимание: Wiki больше не существует (удалена в 2009 году), оставлена здесь только для справки)
Библиография
[ редактировать ]- Подходит для разработки программного обеспечения: платформа для интегрированных тестов Рика Магриджа; Уорд Каннингем (англ. ISBN 978-0-321-26934-8 ), опубликованный Prentice Hall в июне 2005 г.
- Разработка через тестирование .NET с помощью FitNesse , Гойко Аджич ( ISBN 978-0-9556836-0-2 ) Опубликовано Neuri Limited (28 февраля 2008 г.)
- Филип А. Лапланте: Разработка требований к программному обеспечению и системам, Auerbach Publications, Бока-Ратон, Флорида, 2009 г., стр. 166–167, ISBN 978-1420064674
Ссылки
[ редактировать ]- ^ «FrontPage.Скачать» . Fitnesse.org . Проверено 6 июля 2023 г.
- ^ Мартин, Роберт К. «Заголовок лицензии» . Репозиторий исходного кода FitNesse . Гитхаб . Проверено 4 июля 2012 г.
- ^ Роберт, Мартин. «Три правила TDD» . Butunclebob.com . Проверено 23 августа 2019 г.