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
Participating in Scrum Activities
A tester on an Agile project will work differently than one working on a traditional project. Testers must understand the values and principles that underpin Agile projects, and how testers are an integral part of a scrum team, together with developers and business representatives.
The members in an Agile project communicate with each other early and frequently, which helps with removing defects early and developing a quality product.
It is important to note that testers in Agile projects, don’t just focus on testing the product to find bugs, rather the focus should largely be on improving the processes to prevent defects, and testers play an important role in this.
Here, we look at how Agile Testers can add value in each stages of the software delivery in an Agile setup.
Defining Overall Quality
Testers are involved in defining the overall quality and approach to testing and especially add value in the following activities:
- Agile Test Strategy
- Agile Test Automation Strategy
- Defining the Delivery Pipeline
- Advocating Whole-team Approach
- Defining Test Environments
Testers are involved in Pre-planning and Story grooming sessions and especially add value in the following activities:
- Defining testable user stories, including acceptance criteria
- Determining the testability of the user stories
- Creating acceptance tests for the user stories
- Participating in project and quality risk analyses
Testers are involved in Sprint planning meetings and especially add value in the following activities:
- Planning the testing for the release
- Participating in the detailed risk analysis of user stories
- Creating acceptance tests for the user stories
- Defining the necessary test levels
- Breaking down user stories into tasks (particularly testing tasks)
- Estimating testing effort associated with the user stories and all testing tasks
- Identifying functional and non-functional aspects of the system to be tested
- Supporting and participating in test automation at multiple levels of testing
Testing in Sprint
Testers are involved during Sprint and especially add value in the following activities:
- Performing Exploratory Testing of new Features
- Writing Automated Regression Tests for new and existing features
- Integrating and Executing Automated Tests on a CI server
- Feedback as soon as possible to the team in case of any issues
- Update Acceptance Tests when new scenarios are thought of