Thucydides

Thucydides - это инструмент с открытым исходным кодом, ориентированный на эффективную автоматизацию приемочных тестов, а также на детализированную документацию и отчеты по проекту, построенные на базе этих тестов. Он работает вместе с JUnit и BDD инструментами, такими как JBehave and Cucumber-JVM, и предоставляет обширный API для автоматизированного тестирования в тесной интеграции с Selenium Webdriver.

Thucydides разработан для решения следующих задач:

  • Написание более гибких тестов, которые легче поддерживать
  • Получение иллюстрированных, исчерипывающих (story-based) отчетов
  • Ясная привязка тестов к требованиям
  • Измерение покрытия требований

Thucydides workflow

Шаг 1: Определение требований и приемочных критериев

Thucydides начинается с требований, которые нужно реализовать. Для каждого требования есть приемочные критерии, которые лучше разъясняют требование. Приемочные критерии и автоматизирует фукидид.

Шаг 2: Моделирование требований

С помощью фукидида вы строите **простую модель** ваших требований на языке Java. Есть несколько способов моделирования требований, включая обычный Java класс, используя конвенцию структуры директорий или интегрируясь с сторонними инструментами, вроде Jira. Такой подход позволяет разработчику явным образом указать, какое требование тестирует каждый из тестов, а фукидиду - **отслеживать тестируемые фичи и требования**.

Шаг 3: Автоматизация приемочного тестирования

Далее описываются приемочные критерии языком бизнесс-домена, а автоматизаторы имплементируют их с помощью BBD, таких как **JBehave или Cucumber-JVM**, или с помощью **Java и JUnit**, так чтобы фукидид мог их запускать, но со статусом "**pending**" (тело теста не реализовано).

Шаг 4: Имплементация тестов

Автоматизаторы теперь могут **имплементировать приемочные критерии** в форме тестов для реального AUT. Тесты можно делить на **степы** для лучшей **читабельности** и **легкой поддержки**. Для тестирования веб приложений используется **Selenium Webdriver**.

Шаг 5: Отчет о результатах теста

Thucydides позволяет строить **детализированные отчеты** о результатах запуска тестов, включая:

  • **Историю** для каждого теста
  • **Скриншот** для каждого степа в тесте
  • **Результат** выполнения теста, включая **время** и **сообщения об ошибках**

Шаг 6: Отчет о покрытии требований

Кроме отчетов о выполнении тестов фукидид также предоставляет информацию о:

  • Количестве **протестированных** требований
  • Количестве **выполненных** требований
  • количестве **требований, которые предстоит выполнить**

Шаг 7: Отчет о прогрессе на проекте

Фукидид также предоставляет информацию по истории и прогрессе проекта:

  • Изменение количества разработанных фич во времени
  • Изменение количества имплементированных и протестированных фич во времени
  • Изменение количества упавших тестов во времени

Как видно Thucydides - довольно сложный инструмент, простроенный вокруг концепции BDD и приемочного тестирования, использующий Webdriver для тестирования веб приложений.

Maven зависимость:

<dependency>
    <groupId>net.thucydides</groupId>
    <artifactId>thucydides</artifactId>
    <version>0.9.273</version>
</dependency>

Более детальную информацию о нем вы найдете на официальном сайте - http://thucydides.info/