2. Thucydides is an open source library that lets
you use WebDriver/Selenium 2 to write better
acceptance tests.
3. Thucydides helps you:
ï‚— Write tests that are more flexible and easier
to maintain
ï‚— Produce illustrated, narrative reports about
your tests
ï‚— Map your automated tests back to your
requirements more easily
ï‚— See how much of your application is
actually being tested
ï‚— And measure project progress
4. Why Thucydides?
ï‚— Thucydides starts with the Requirements
you need to implement. Each requirement
has Acceptance Criteria, which help clarify
the requirement. It is these Acceptance
Criteria that we automate with Thucydides.
5. Why Thucydides?
ï‚— In Thucydides, you build a simple model of
your requirements in Java. This lets
developers specify exactly what
requirement they are testing for each test,
and helps Thucydides keep track of what
application features and requirements have
been tested.
6. Why Thucydides?
ï‚— You describe your acceptance criteria in
high-level business terms. Developers then
record these acceptance criteria using
either a BDD tool such as easyb, or just in
Java using JUnit, so that Thucydides can
run them. These tests get executed, but
they are reported as "pending".
7. Why Thucydides?
ï‚— Developers implement the acceptance
criteria, so that they can run against the
actual application. Under the hood, tests
are broken down into nested steps for
better readability and easier maintenance.
Web tests are written using the popular
open source Selenium 2/WebDriver library.
8. Why Thucydides?
ï‚— Thucydides provides detailed reports on the
test results and execution, including:
â—¦ A narrative for each test
â—¦ Screen shots for each step in the test
â—¦ Test results including execution times and error
messages if a test failed
9. Why Thucydides?
ï‚— But Thucydides goes beyond just reporting
on test execution. It also tells you:
â—¦ How much of your requirements have been
tested
â—¦ How much is working, and
â—¦ How much remains to be done
10. Why Thucydides?
ï‚— Thucydides also reports on project history
and progress:
â—¦ Features specified over time
â—¦ Features implemented and tested over time, and
â—¦ Failing tests over time