- Explore key agile testing techniques including early testing of software artifacts, test driven development (TDD), acceptance test driven development (ATDD), and exploratory testing. Approaches for automating appropriate types of testing should be discussed.
- Compare and contrast agile testing with traditional software testing techniques and approaches. The learner should gain an understanding of the collaborative nature of agile testing and how business, development, and testing work together to produce high quality software.
- Give the learner both vocabulary and principles to be able to effectively perform agile testing as part of a whole-team concept – from initial test planning, through development iterations, to product release.
Prerequisite: Fundamentals of Agile
Although it takes months or years to learn how to be an effective agile tester, the contents set out below are designed to fit into three days of course materials and exercises, leading into more advanced learning in numerous testing topics. Instructors and self-learners are expected to include group activities of their own design and to incorporate their own, personal specialties that highlight particular aspects of agile testing. [pre-requisites: Fundamentals of Agile Learning Objectives, understanding of common testing techniques and processes]
The Agile Testing program is constructed around five major elements, with concepts and technique & application for each. An instructor or self-learner is welcome to add to these according to their own specialized interests.
How to read & use this document
This document is not a description of a course – it is a description of what a learner should encounter in courses, or study to learn, to gain a sound introduction to agile testing. These are the Fundamentals of agile testing.
These learning objectives are intended for those who are participating in agile teams and need to understand or perform software testing activities as part of their responsibilities. These roles may include: product owner, project manager, business analysts, software testers, and software programmers.
Watch, in each section, for concept elements, where a concept is introduced, and technique & application elements, where the learner gets to learn a technique, practice, or soak in a concept.
The time period set out to teach the agile testing learning objectives without test automation is two to three full days of instruction and activities. We encourage instructors to take more time to cover the material, to let the learner "soak" in the ideas for extra days, and to possibly split the learning objectives across multiple courses that may cover other material. We find that "soaking time" is key to conveying the mindset and approach of agile development and testing. Here are three ways you might extend the soaking time for your learners:
- Create a 4 or 5-day instead of 3-day course. Include more specific instruction on important agile testing techniques beyond those covered within this course in detail. Suggested topics include: test management, testing automation, load and performance testing, security testing, unit testing, usability testing, continuous integration.
- Split the material across multiple courses that cover other agile material (programming, project management, project planning)
- Separate material into classroom sessions and coaching sessions, with soaking on real projects and a coach to help steer into the agile approach along the way.
Depth of coverage
One difficulty that diligent instructors may encounter when preparing a 2-3 day course is balancing the need to cover the breadth of the agile testing topic while providing the details necessary to effectively educate course attendees. Wherever possible, group exercises should be used to drive home key learning objectives. Hands on use of tools and techniques are strongly encouraged as well.
- Jeffery Payne, Coveros
- Bob Galen
- Randy Rice
- Sharon Robson
- Elisabeth Hendrickson