Готовый перевод FitNesse / FitNesse: Страница из википедии

Внимание! Этот перевод, возможно, ещё не готов, так как модераторы установили для него статус «идёт перевод»

{{refimprove|date=August 2012}}
{{ infobox software
| name = FitNesse
| developer =
| latest release version = v20130530
| latest release date = {{Start date and age|2013|05|30}}
| operating system = [[Cross-platform]]
| genre = [[Test automation]]
| license = [[Common Public License|CPL]] <ref name=licenseheader>{{cite web|last=Martin|first=Robert C.|title=License Header|url=https://github.com/unclebob/fitnesse/blob/master/licenseHeader.txt|work=FitNesse Source Repository|publisher=GitHub|accessdate=4 July 2012}}</ref>
| status = Active
| website = http://www.fitnesse.org/
}}

'''FitNesse''' это [[веб-сервер]], [[вики]], и инструмент [[Автоматизированное_тестирование|автоматизированного тестирования]] для [[программное обеспечение|программного обеспечения]]. Он основан на проекте [[Каннингем,_Уорд|Уорда Каннингема]] [[Framework for Integrated Test]]. FitNesse спроектирован для поддержки [[приемочного тестирования]] более, чем [[модульного тестирования]] в том, что облегчает детальное читаемое описание требований к системе.

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

FitNesse написан на [[Java (programming language)|Java]]. Основателем проекта является [[Robert Cecil Martin|Роберт Мартин]]. Первые версии программы поддерживали только Java, но со временем поддержка расширилась до множества других языков (C++, Python, Ruby, Delphi, C#, etc.)

==Введение в FitNesse==

===FitNesse, как метод тестирования===
FitNesse изначально был задуман, как всеобмъемлющий интерфейс к Fit framework. Основным намерением было поддержать [[Agile software development|agile]] стиль [[black-box тестирования]] приемочного и регрессионного тестирования.

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

Идея это метода тестирования, как описано в ''[[Fitnesse#Books|Fit for Developing Software]]'' заключается в том, что усиленное взаимодействие тестировщиков и разработчиков повысит общее видение системы и требований к ней, тем самым подталкивая обе группы общению "на одном языке".

===FitNesse, как инструмент тестирования===
Тесты описаны в FitNesse, как своего рода связь между входом и выходом системы. Эти связи представляются в виде [[таблица принятия решений|таблиц принятия решений]]. FitNesse поддерживает несколько вариантов таких таблиц, начиная с буквально таблиц принятия решений, заканчивая последовательностю шагов, необходимых для достижения результата. В самом общем случае на таблицы вообще не накладывается никаких ограничений. Но все же это должны быть таблицы.

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

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

===FitNesse, как программное обеспечение===
FitNesse разработан на Java. Он поставляется в виде единственного исполняемого [[jar file|jar файла]], который включает вики движок, встроенный [[веб-сервер]], тестовый движок и все ресуры (картинки, стили, и так далее) необходимые для создания веб сайта в стиле FitNesse.

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

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

Вики движок довольно примитивный, но содержит все основные средства, распространенные среди вики движков: поиск, история изменений для каждой страницы и обзор файлов. Также доступны некоторое операции рефакторинга, позволяющие удалять, перемещать и переименовывать файлы. В дополнение, движок содержит средства управления тестами, такие как кнопки запуска тестов, способы определения тестовых наборов (Test Suite) и обзор истории результатов тестирования для анализа трендов. Также, вики движок содержит базовые средства авторизации и защиты страниц.

===Выполнение тестов===
Для тестирования в FitNesse необходимы 4 составляющие:

* Вики страница с описанием теста ввиде таблицы принятия решений.
* Тестовый движок, который интерпретирует содержимое страницы.
* Тестовая фикстура, которая вызывается тестовым движком и передает управление тестирумой системе.
* Тестируемая система.

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

{| class="wikitable"
! colspan="3" | Division component test
|-
!numerator value!!denominator value!!result?
|-
|10||2||5.0
|-
|10||5||2.0
|-
|5||2||2.5
|}

Связь между движком тестирования и тестируемой системой осуществляется через фикстуру. Для данной таблицы её код на языке Java может выглядеть таким образом:

<syntaxhighlight lang="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);
}
}</syntaxhighlight>

Для сопоставления таблицы и фикстуры используется [[camel case|convert-to-camel case]]. Эта нотация применяется ко всем заголовкам таблиц и используется для определения имен классов и методов фикстуры. Колонка с заголовком, заканчивающимся вопросительным знаком, интерпретируется, как выход фикстуры. Остальные колонки используются, как вход фикстуры. Методы фикстуры вызываются в порядке следования колонок таблицы слева направо.

===Тестовые движки===
Описанное выше сопоставление выполняется тестовым движком. FitNesse поддерживает два: FIT и SLIM.

====FIT====
FIT &mdash; больше, чем движок, это тестовый фреймворк сам по себе. Изначально FitNesse разрабатывался, как интерфейс к FIT.

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

====SLIM====
SLIM (Simple List Invocation Method) &mdash; это альтернатива FIT. Движки SLIM реализуют протокол [http://fitnesse.org/FitNesse.UserGuide.SliM.SlimProtocol протокол SLIM]. Вместо совмещения всех элементов вики тестирования, SLIM движок занимается только на вызове фикстур; он работает, как отдельный сервер, который удаленно вызывается из FitNesse. Интерпретация вики страниц и генерация страницы результата осуществляется вики движком.

Архитектура движка SLIM позволяет создавать более легковесные фикстуры, что упрощает работу разработчика.

==Смотри также==
{{portal|Software Testing}}

*[[Спецификация на примерах]]
*[[Приемочное тестирование]] (также называемое функциональным тестированием)
*[[Тестирование производительности ПО]]
*[[Регрессионное тестирование]]
*[[Watir]]

==Книги==
* [http://safari.phptr.com/0321269349 Fit for Developing Software: Framework for Integrated Tests] by Rick Mugridge; Ward Cunningham (ISBN 978-0-321-26934-8) published by Prentice Hall in June 2005
* [http://www.amazon.com/dp/0955683602 Test Driven .NET Development with FitNesse] by [[Gojko adzic|Gojko Adzic]] (ISBN 978-0-9556836-0-2) published by Neuri Limited (February 28, 2008)
* Phillip A. Laplante: Requirements Engineering for Software and Systems, Auerbach Publications, Boca Raton, FL, 2009, pp. 166-167, ISBN 978-1420064674

==References==

<references />

==Внешние источники==
* [http://www.fitnesse.org Tool website]
* [https://github.com/unclebob/fitnesse|Source Repository]
* [http://www.fitnesse.org/FrontPage.FitServers Languages supported by FitNesse]
* [http://fitnesse.info/ Alternative download site and a list of FitNesse related resources]
* [http://tech.groups.yahoo.com/group/fitnesse Discussion group dedicated to FitNesse]
* [http://www.methodsandtools.com/tools/tools.php?fitnesse FitNesse presentation]

[[Category:Groupware]]
[[Category:Software testing tools]]

Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод

Переведено на Нотабеноиде
http://notabenoid.org/book/43405/170293

Переводчики: peterdemin

Настройки

Готово:

97.36% КП = 1.0