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/
}}

peterdemin 01.09.13 в 07:57

0

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

peterdemin 31.08.13 в 19:24

0

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

peterdemin 31.08.13 в 19:24

0

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

peterdemin 31.08.13 в 19:24

0

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

peterdemin 31.08.13 в 19:24

0

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

peterdemin 31.08.13 в 19:25

0

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

peterdemin 31.08.13 в 19:33

0

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

peterdemin 31.08.13 в 19:36

0

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

peterdemin 31.08.13 в 19:42

0

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

peterdemin 31.08.13 в 19:48

0
+1

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

peterdemin 31.08.13 в 20:02

0

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

peterdemin 31.08.13 в 20:05

0

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

peterdemin 31.08.13 в 20:10

0

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

peterdemin 01.09.13 в 07:06

0

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

peterdemin 01.09.13 в 07:13

0

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

peterdemin 01.09.13 в 07:14

0

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

peterdemin 01.09.13 в 07:17

0

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

peterdemin 01.09.13 в 07:20

0

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

peterdemin 01.09.13 в 07:20

0

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

peterdemin 01.09.13 в 07:22

0

<syntaxhighlight lang="java">public class DivisionComponentTest extends ColumnFixture{
private double num;
private double denom;

peterdemin 01.09.13 в 07:23

0

public void setNumeratorValue (double numerator) {
num = numerator;
}

peterdemin 01.09.13 в 07:23

0

public void setDenominatorValue (double denominator) {
denom = denominator;
}

peterdemin 01.09.13 в 07:24

0

public double result() {
return SystemUnderTest.divide (num, denom);
}
}</syntaxhighlight>

peterdemin 01.09.13 в 07:24

0

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

peterdemin 01.09.13 в 07:29

0

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

peterdemin 01.09.13 в 07:31

0

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

peterdemin 01.09.13 в 07:33

0

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

peterdemin 01.09.13 в 07:37

0

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

peterdemin 01.09.13 в 07:37

0

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

peterdemin 01.09.13 в 07:53

0

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

peterdemin 01.09.13 в 07:53

0

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

peterdemin 01.09.13 в 07:56

0

==Книги==
* [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

peterdemin 01.09.13 в 07:56

0

==References==

peterdemin 01.09.13 в 07:56

0

<references />

peterdemin 01.09.13 в 07:56

0

==Внешние источники==
* [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]

peterdemin 01.09.13 в 07:57

0

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

peterdemin 01.09.13 в 07:57

0
Минутку...