A 3-day intensive course
Agile projects thrive on fast feedback. That means testing practices are essential every step of the way. This 3 day class offers an opportunity to gain deep insight into the testing principles and practices that enable teams to achieve real agility.
If your organization is struggling to integrate testing throughout the lifecycle, get stories production-ready, or transition to Agile, this class will help you...
- Move from working in traditional silos to a fully integrated, highly collaborative team
- Gain a visceral sense of the power of fast feedback
- Increase agility incrementally
- Create executable specifications by defining acceptance tests before writing code
- Embrace the test-driven mindset: "Begin with the End in Mind"
- Choose testing tools that work for Agile teams
- Explore the emerging system to discover risks and vulnerabilities
- See how Quality Assurance and Quality Management work in Agile
- Connect Agile principles and practices to delivered value
Agenda
Day 1: Discover Real Agility
Real agility means delivering value continuously, at a sustainable pace, while adapting to the changing needs of the business.
On our first day, we'll set the foundation for the rest of the class by experiencing a transition to Agile in our "WordCount" simulation.
In the simulation, you'll work with all the class participants as a team to deliver a word counting product that the customer is willing to buy. Each successful delivery generates revenue for the company. Just as with projects in the real world, producing a working product on a tight schedule can be challenging. We'll pause to reflect and adapt at regular intervals, and to see how testing-related activities are helping to move the project forward and deliver greater value.
At the end of the simulation you will have gained a deep understanding of core principles in Agile testing including visibility, feedback, collaboration, coordination, and whole team responsibility for quality.
Day 2: Move Testing Up
In a traditional context, testing comes last. In this second day we discover how to put testing first, using tests to define "Done."
Warning! Test first thinking may be habit forming. You may find yourself applying it to everyday situations like choosing an appliance. "How will I know I purchased the right toaster? Given I place a bagel in the slot, when I press the lever, then the bagel slides smoothly into the toaster without getting stuck."
We'll experience the power of defining concrete acceptance tests up front with Acceptance Test Driven Development (ATDD). Simply put, ATDD is beginning with the end in mind. As a group, we'll define acceptance tests for an example story. We'll see how tests forge alignment between stakeholders.
We then automate the tests and write the code to implement the feature. Along the way we'll compare and contrast the whole team practice of ATDD with the programming practice of Test Driven Development (TDD). The result is automated acceptance tests that become executable specifications. Because some test automation frameworks are better suited for an Agile context than others, we will also explore what makes a test framework Agile-friendly by comparing and contrasting frameworks such as Cucumber and Robot Framework.
At the end of the day, you'll have a solid grasp of the whole ATDD cycle, including automating the tests. You'll know how ATDD fits within an Agile development lifecycle. And you'll know how to select test automation tools to support the practice.
Day 3: Explore
No matter how careful we are in building software there is always the risk of unintended consequences, side effects, and vulnerabilities. On the final day we'll discover how to integrate exploratory testing throughout the lifecycle so we can characterize these risks on an ongoing basis.
Exploratory testing is the practice of designing and executing tests together in a rapid cycle, using our observations from the last test to inform the next. This inherently dynamic approach uses the most important testing tool at your disposal: the one between your ears.
We'll practice with real software (usually a hand held game) guiding our exploration using charters and heuristics derived from test design techniques such as state modeling. We'll debrief each exploratory session so you get practice in giving elevator-pitch length reports on the information you discovered.
Wrapping Up
We'll conclude the three days by reflecting on the group's observations and insights, giving you a chance to identify specific, concrete, and actionable takeaways you'll be able to use right away.
Feedback From Past Classes
"If our team had taken this training early in our Agile adoption process it would have moved us forward two or three months in a single day." — Chris Elvart, NAVTEQ (referring to the WordCount simulation on Day 1)
"Loved the collaborative simulation exercise which really drove home the concepts. Great takeaways that are executable."
"This was a fun class, and I found the instructors to be very knowledgeable."
"The collaboration realistically represented an agile team solving process problems together."
"I would take any other classes you offer."
