Agile Testing with Cucumber
Agile Testing with Cucumber
A 2-day course for testers and developers. The first day focuses on what testers and developers can do to provide up-front, “test-first” acceptance tests, which also serve as readable, executable specifications. The second day the team will implement and execute the tests using Cucumber. Developers will learn how to implement the Cucumber test scenarios for the system under test. Agile teams struggling with automated testing need to attend this course!
Level:
Basic to intermediate
Length:
2 days(when done as an onsite course this can be done as 1 day added on to an Agile for Testers course)
Intended Audience:
Testers and developers working within an agile environment. While the focus is on the agile acceptance testing process from the viewpoint of testers and developers, business analysts, product managers, product champions and others are encouraged to attend in order to fully understand their roles in agile testing.
Pre-requisites:
None, but general reading about agile processes may be helpful
Learning objectives:
- The role of testers in refining and estimating stories
- Writing acceptance tests for stories without having to wait for the functionality to exist
- Testing stories rather than interfaces and interactions
- Writing tests collaboratively in a team setting
- How to use acceptance tests to discuss stories and settle arguments
- The roles of automation on an agile team
- Using Cucumber to specify acceptance criteria for user stories
- How to improve acceptance tests
- Developers: How to implement Cucumber scenarios
Requirements:
All attendees will need laptops with a text editor such as Notepad++ or TextMate. Developers will need a suitable IDE, such as Visual Studio 2008/2010 for .NET and Eclipse/IntelliJ for Java. Instructions will be provided to course participants ahead of time on what tools to download in preparation for the course.
Description:
This course emphasizes Acceptance Testing, the practice of creating tests for the acceptance and “done-ness” of a story. We will look at refining and estimating stories based on answering the questions “How would I test that?” and “How will I know we’re done?” Acceptance Test-Driven Development (ATDD) employs the approach of specification by example, and is also known as Storytesting or Behavior-Driven Development (BDD). Instead of talking in abstract terms about what the system will do, the team collaborates to create specific examples that specify what the system should do from the user’s perspective. These executable specifications function as acceptance criteria for the user stories the team is developing. The team specifies as concretely as possible what the specification is, and then the developers code enough of the system to make the test pass to satisfy the acceptance criteria for that specification.
Cucumber is such an amazing ATDD tool because it’s so good at mapping stories and acceptance criteria to automated functional tests. Product Owners and BA’s write acceptance criteria in natural language. Developers and testers unobtrusively automate tests for them. Anyone on the team can run the tests and see the current state of the system. Course attendees will work together to write acceptance tests, and then use Cucumber to collaborate on connecting the tests to the system under test.
