As the various Agile methodologies have become common mainstream software development processes, software testers and QA staff are faced with the challenge of shifting from the traditional QA model to being an integrated part of an Agile team. While the standard testing tools, processes, techniques and methods are essentially unchanged, the are applied in often radically different ways as testers are integrated into Agile teams and take on roles and responsibilities that are new and outside the scope of the traditional tester role. Instead of evaluating products, testers find themselves writing tests to evaluate the development process and drive new sorts of processes like test driven development. This course is designed to show software testers and QA analysts how to migrate their expertise and skills in testing and software quality into an Agile environment, partly by understanding the new roles and functions their work supports and also by learning to think about testing from an Agile perspective, applying Agile concepts and ideas to leverage their existing skills in an Agile environment. The course begins with an introduction to Agile development emphasizing the Agile principles that underpin the different Agile approaches. These concepts are related to more traditional models of quality assurance and testing maturity such as Beizer’s tester maturity model and the CMM test maturity models. This frames the role of the Agile tester in terms of more traditional testing excellence models actually being used to support the same Agile principles that are used by Agile developers. The modern concepts of software quality, good enough quality, risk mitigation, and related quality issues are also reframed in an Agile context without losing any of their effectiveness. The standard Crispen and Gregory four quadrant model of Agile testing is presented showing how the standard testing methodologies map into the various quadrants, followed by detailed explorations of the test methods, automation tools and quality objectives in each of the quadrants. The practical issues of migrating from a standard test environment to an Agile environment are evaluated from both role and task perspectives. One of the defining characteristics of Agile testing is the reliance on automation. The course looks at some of the various automation tools but also looks at the meta-testing problem of testing the automated testing tools. The course concludes with a “A Day in the Life” which follows a typical tester through a simple Agile project to demonstrate the roles they play and the interactions they have with the other team members, as well as looking at the specific activities they engage in at each stage of the project from inception to final delivery.
The course assumes a working knowledge of testing concepts and techniques. Students who are unfamiliar with testing concepts and methods may have difficulty with some of the material.
3 Days/Lecture & Lab
The course is intended for software testers and test mangers or any other QA analysts who have an interest in Agile testing.