Tester: Responsibilities

The Tester role is a member of the full Agile team. The team drives the product from a tactical perspective. It is autonomous and self-organizing and is accountable to the Product Owner for committing to and delivering product increments within the duration of the iteration.

The full Agile team works in parallel with all appropriate stakeholders to estimate the size of backlog items, make design and implementation decisions, and transform stories into high quality software assets.

Working with the Team Agility Master, the team tracks its own progress, raises awareness for impediments, and devises options to maintain forward progress. The team is responsible for establishing processes and standards, continuously improving them, and then following those processes and standards.

Quality Assurance focuses more on discovering why defects are occurring than in finding defects. They are guided by two lean principles:

  • Optimize the Whole. Focus on the entire portfolio of products that are in the “value stream” for the enterprise. Do what is needed to improve the overall flow of the most important value. At the project level, business analysts, developers, and testers work together to make high-quality code. Bugs are not tolerated.
  • Build Quality In. Quality is built into the product, not tested in. It is part of de-sign. Patterns inform design choices that create sustainable, less complex, more flexible code. Quality assurance and testing exist less to catch bugs than to identify causes of bugs so that processes and systems can be corrected. Code development is test-driven.

Defining tests up front is an important practice. Help define tests up-front even if you do not write them up-front. It takes no work, increases understanding, and prevents many errors.

Testing involves more than simply discovering bugs. Testing helps discover the causes of errors and eliminating them. Testing helps make explicit the assumptions and requirements that customers have without getting overly technical. Testing ensures code integrity and compatibility with other code modules.

Testing minimizes the risks caused by humans, machines, and environment.

Planning the testing strategy should also begin as early as possible. This requires careful consideration: what will be tested, how much can be automated and what must still be done manually, what the testing environment will include, who will do testing, what they need to know, and what standards they will follow.

The Tester role is responsible for:

  • Understanding the context for the project and help others to make informed decisions based on this context. A key responsibility is to help the business analyst create acceptance tests up front.
  • Helping to set up a testing environment that is consistent with the team’s quality objectives. The tester then works with developers and business analysts to help them create and conduct tests with complete coverage.
  • Establishing the testing plan. The plan addresses all aspects of testing: Acceptance Testing, Automation, and Continuous Integration
  • Incremental value delivery, quality, and continuous improvement
  • Estimating the size of backlog items
  • Building potentially releasable features in every iteration
  • Accounting for work that must be carried over to another iteration
  • Tracking progress, raising awareness of impediments, and helping to resolve impediments with the team’s span of control
  • Ensuring all stories meet the acceptance criteria of the Product Owner and successfully pass all tests
  • Working with team members to improve team processes
  • Following agreed upon processes and standards

To see this role in the context of the work of Lean-Agile, see an example RACI Chart.