SPA Conference session: Awesome Acceptance Testing

One-line description:
Session format: Tutorial (150 mins) [read about the different session types]
Abstract:Acceptance tests are a lot more than traditional regression tests. They help to provide a shared understanding of what the system should do and when requirements are considered done.

They are written in a way that describes intent by example, and can be created before the implementation, helping:
* Project owners clarify vague requirements.
* Developers understand and implement these.
* Everyone focus on what 'done' means.

This session covers:
* The value of acceptance tests and how they differ from, yet complement, unit tests and end-to-end regression tests.
* The multiple factors of acceptance tests and the limitations of using a single testing tool.
* Approaches for creating executable 'specifications' in a form that makes sense to the customer. Such as: custom domain specific languages, FIT, Java, Ruby, etc.
* Designing and evolving a vocabulary that can be used for expressing intent. The UI is in a different domain to the world it's manipulating, so 'click link' is not enough.
* Determining which layers to hook into (UI, web, database, domain model, network, etc) and effectively using tools that enable this automation.
* Working with acceptance tests in agile development cycles where requirements, code and understanding are constantly evolving.
* Preventing test staleness and brittleness.

This tutorial will help you start applying techniques for acceptance testing to your project immediately.
Audience background:Primarily focussed at developers and testers. Experience with automated testing techniques (e.g. unit testing) and exposure to agile methods may help - though is not strictly necessary.
Benefits of participating:Attendees should leave this session with knowledge of:
* the benefits of acceptance testing.
* selecting appropriate tools they can leverage for their project.
* simple steps to introduce to their project and get immediate value.
* improvements that can be made to their existing test process/infrastructure.
* a long term goal of how to make acceptance testing a core part of their project life-cycle.
Materials provided:n/a
Detailed timetable:[Part 1] Overview
00:00 - 00:20 (20mins) -> Intro to acceptance testing.
00:20 - 00:40 (20mins) -> The key factors of acceptance testing.
00:40 - 01:00 (20mins) -> End to end walkthrough of the process, using an example.
01:00 - 01:15 (15mins) -> Half time Q&A.

[Part 2] Details
01:15 - 01:35 (20mins) -> Choosing and using the right tools.
01:35 - 01:55 (20mins) -> Writing good acceptance tests.
01:55 - 02:15 (20mins) -> How to introduce the techniques into a running project.
02:15 - 02:30 (15mins) -> Full time Q&A.
History:An early version of this was presented at a conference last year. We got lots of great feedback and lots of interest since then, so we have refined the session and added more relevant content.
1. Joe Walnes
2. Dan North