In an Agile team, testers must closely collaborate with all other team members and with business stakeholders. This has a number of implications in terms of the skills a tester must have and the activities they perform within an Agile team.
Agile Testing Mindset
Agile Testers need to break away from the principles and working methodologies of traditional software development. In order to succeed as an Agile Tester, the right mindset is required.
The Agile Testing Mindset, could be summed up in twelve principles:
- Quality Assistance over Quality Assurance
- Continuous Testing over Testing at the End
- Team Responsibility for Quality over Tester’s Responsibility
- Whole Team Approach over Testing Departments and Independent Testing
- Automated Checking over Manual Regression Testing
- Technical and API Testing over Just GUI Testing
- Exploratory Testing over Scripted Testing
- User Stories and Customer Needs over Requirement Specifications
- Building the Best Software over Breaking the Software
- Early Involvement over Late Involvement
- Short Feedback Loop over Delayed Feedback
- Preventing Defects over Finding Defects
What Skills Should an Agile Tester Have?
In addition to the skills required for a tester working in a traditional waterfall project, a tester in an Agile team should be competent in test automation, test-driven development, acceptance test-driven development, white-box, black-box, and experience-based testing.
As Agile methodologies depend heavily on collaboration, communication, and interaction between the team members as well as stakeholders outside the team, testers in an Agile team should have good interpersonal skills. Testers in Agile teams should:
- Be positive and solution-oriented with team members and stakeholders
- Display critical, quality-oriented, skeptical thinking about the product
- Actively acquire information from stakeholders (rather than relying entirely on written specifications)
- Accurately evaluate and report test results, test progress, and product quality
- Work effectively to define testable user stories, especially acceptance criteria, with customer representatives and stakeholders
- Collaborate within the team, working in pairs with programmers and other team members
- Respond to change quickly, including changing, adding, or improving test cases
- Plan and organize their own work
The Role of a Tester in an Agile Team
The role of a tester in an Agile team includes activities that generate and provide feedback not only on test status, test progress, and product quality, but also on process quality. These activities include:
- Understanding, implementing, and updating the Agile Test Strategy
- Work with Product Owners to define Acceptance Criteria and the Definition of Done.
- Measuring and reporting test coverage across all applicable coverage dimensions
- Ensuring proper use of testing tools
- Configuring, using, and managing test environments and test data
- Writing and executing automated checks and reporting back to the team
- Reporting defects and working with the team to resolve them
- Coaching other team members in relevant aspects of testing
- Ensuring the appropriate testing tasks are scheduled during release and iteration planning
- Actively collaborating with developers and business stakeholders to clarify requirements, especially in terms of testability, consistency, and completeness
- Participating proactively in daily standup meetings, story grooming sessions, team retrospectives, suggesting and implementing improvements
Within an Agile team, each team member is responsible for product quality and plays a role in performing test-related tasks.
Agile organizations may encounter some test-related organizational risks:
- Testers work so closely to developers that they lose the appropriate tester mindset
- Testers become tolerant of or silent about inefficient, ineffective, or low-quality practices within the team
- Testers cannot keep pace with the incoming changes in time-constrained iterations