Agile Testing

Description

How testing is both different and the same in an Agile project environment

Testing is a fundamental part of any successful project - Agile projects included. All of the fundamental concepts and challenges of testing still exist. Learn how to adapt your existing skill set to maximise your contribution in an Agile project environment where you will work on all test levels, change is the norm and short iterations of work continuously deliver working software.

In traditional projects, testing happens mostly at the end of the project, after development is completed in a generally adversarial environment. Agile development inverts this structure - testing skills should be applied to a project from the beginning, and tests for specific stories should be written before the story is even implemented.

Part of the Agile way of working is that testing resources should work with the customers and the development team collaboratively to help make sure the right thing is developed in the shortest possible time, not waiting until the end to find out what mistakes the rest of the team made.

Target Audience

Analysts, developers, testers, project managers, architects and subject matter experts. Team leaders and line managers can also get a good overview of the process and practices to use in non-software development environments.

Outline

Prerequisites

This is not an introductory testing course.  Participants are expected to be familiar with the fundamentals of testing.  Some understanding of Agile practices would be beneficial. For an introduction to Agile practices see our Taste of Agile course.

Learning Outcomes

By the end of this course, participants will be able to:

  • Explain the role of testing in an Agile environment
  • Produce dynamic test strategies, plans, scenarios and test cases on an Agile project
  • Maximise contribution in all levels of testing, from unit to acceptance in an Agile project
  • Coordinate all testing activities within an Agile project.

Introduction

  • Agile principles and practices
  • Testing practices

Responsibilities

  • How testing is integral to Agile development and how to leverage that
  • Unit testing vs. acceptance testing; black vs. white box testing
  • Being involved early
  • The importance of identifying faults early
  • Who is responsible for signing off on stories?

Communication

  • Treating faults uncovered within an iteration in a lightweight way
  • Treating faults uncovered post-iteration as stories
  • Managing testing duplication
  • Monitoring
  • Creating an initial strategy and high-level plan - what should be in, what should be out?
  • How much detail should be captured in the Initiate Phase?
  • Including testing effort in estimates
  • Elaborating stories and tests incrementally, and how to collaborate with customers to achieve this

Test Cases

  • Difference between acceptance tests and test cases
  • Writing good test cases
  • Writing test scenarios
  • Regression testing
  • Stress and load testing
  • Performance testing

Automation

  • The importance of test automation
  • Working with developers to implement automation