FitNesse или еще один подход приемочного тестирования

Как я уже писал, хотел сказать выше, но в нашем контексте это не очень соотвествует реальности, поэтому говорю ниже – с недавних пор я на новом проекте и продолжаю получать впечатления определенного характера;)

Еще одним из таковых является Acceptance Tests. В качестве движка для этого на проекте используется FitNesse – как написано на официальном сайте – “The fully integrated standalone wiki, and acceptance testing framework.“. Рассказывать что такое приемочное тестирование и FitNesse я не буду (можно пройтись по ссылкам и получить достаточное количество знаний), а хочу описать способ применения этого фреймворка на нашем проекте.

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

| Given that | Actor | Able to do something | – Предусловие, что пользователь может что-то делать. Например залогиниться в приложение.

| When | Actor | Attempts to click on view story button | – Действие, пользователь приложение нажимает или делает что-то с элементами интерфейса.

| Then | Displayed story is | id “some id” | – Проверка, что после действий пользователь интерфейс изменился и состояние соотвествует определенным значением. В данном случае это ID истории должен быть равен “some id”.

Получается очень даже читабельно и удобно.

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

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

На жтом все. В следующем топике хочу поделиться своим опытом использования FitNesse с Maven.

Leave a Reply

Your email address will not be published. Required fields are marked *