Friday, April 11, 2014

Agile in a Flash 21

Agile in a Flash by Jeff Langr and Tim Ottinger (card #21)

Acceptance tests are used to verify that the team has built what the customer requested in a story.

> Are defined by the customer
> Define “done done” for stories
> Are automated
> Document uses of the system
> Don’t just cover happy paths
> Do not replace exploratory tests
> Run in a near-production environment
--

Are defined by the customer Acceptance tests (ATs) are an expression of customer need. All parties can contribute, but ultimately, a single customer voice defines their interests as an unambiguous set of tests.
Define “done done” for stories ATs are written before development as a contract for completion. Passing ATs tell programmers their work is done and tell customers that they can accept it.
Are automated You can script, and thus automate, all tests that define expected system capabilities. Manually executed scripts are a form of abuse.
Document uses of the system Design readable tests so they demonstrate, by example, valid uses of the system. Such documentation never becomes stale!
Don’t just cover happy paths It’s hard to capture all alternate and exceptional conditions. Inevitably you’ll miss one. Add it to your AT suite.
Do not replace exploratory tests Exploratory testing highlights the more creative aspects of how a user might choose to interact with a new feature. It also helps teach testers how to improve their test design skills.

Run in a near-production environment ATs execute in an environment that emulates production as closely as possible. They hit a real database and external API calls as much as possible. ATs are slow by definition.

No comments:

Post a Comment