AcceptanceTestDrivenDevelopment
Start with requirment story (aka user story)
As a user, I want to convert Fahrenheit to Celsius
Examples (Tests) for Fahrenheit to Celsius (Note: Customer preferred term to
Centigrade)
Fahrenheit | Celsius | Stories |
32 | 0 | |
212 | 100 | |
33 | .55 | Customer wants round down 2 digits |
-459 | -273 | Tester came up with these |
-460 | Error |
These tests can be used to break down into smaller stories, if necessary:
Fahrenheit | Celsius | Stories |
32 | 0 | Story One (conversion) |
212 | 100 | Story One |
33 | .55 | Story One |
-459 | -273 | Story Two (limits) |
-460 | Error | Story Two (limits) |
Song:
Tests and requirements
Tests and requirements
You can't have one without the other
Tests and requirements go together
A failing test is a requirement
A passing test is a specification of how a system works
This is one form of unit tests (calculations / business rules
Larger ATTD tests follow the pattern:
If (setup)
When (action or event occurs)
Then (expected result)
Brian Maricks Testing Quadrant show the types
ATTD | Usability |
TDD | Performance / Secruity |
ATTD Tests can be run at multiple level
ATDD Test | Where Connected | Tool (many available) | |
GUI | Cucumber | ||
Midtier | Fit | ||
(non-integrated) | Midtier / Mock Database | Fit |
If ATTD tests go to mid tier, drives business logic out of GUI
However same tests may be run through GUI as a complete end-to-end integration
test
ATTD tests go to real database. However, for less integrated tests, they could
go to mock database
Definitions:
Acceptance Test understood by the business user, may be provided by
them
Unit Test - understood by technology
ATTD tests flow into TDD/Unit tests. They are one source for TDD tests
Discount computation detail see -
http://www.agilejournal.com/articles/columns/column-articles/2716-an-introductory-acceptance-test
Notes:
Link to book draft site :
http://www.netobjectives.com/resources/books/lean-agile-acceptance-test-driven-development
Chapters are being uploaded.
Talks available for users groups.
http://www.netobjectives.com/resources/links/acceptance-test-driven-development