In an Agile testing team, testers must closely collaborate with all other team members and with business stakeholders. This has a number of implications in terms of agile tester skills must have and the activities they perform within an Agile team.
Agile Tester Skills
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 methodology 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. Below are the Agile Tester Skills-
- 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
Continuous skills growth, including interpersonal skills growth, is essential for all testers, including those on Agile teams.
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. In addition to the activities described elsewhere in this syllabus, these activities include:
- Understanding, implementing, and updating the test strategy
- Measuring and reporting test coverage across all applicable coverage dimensions o Ensuring proper use of testing tools
- Configuring, using, and managing test environments and test data o 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 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
- To mitigate these risks, organizations may consider variations for preserving independence.
The Role of a Tester in a Scrum Lifecycle
Throughout this study content, general reference has been made to Agile methods and techniques, and the role of a tester and agile tester skills within various Agile lifecycles. This subsection looks specifically at the role of a tester in a project following a Scrum lifecycle .
Teamwork is a fundamental principle in Agile development. Agile emphasizes the whole-team approach consisting of developers, testers, and business representatives working together. The following are organizational and behavioural best practices in Scrum teams:
- Cross-functional: Each team member brings a different set of skills to the team. The team works together on test strategy, test planning, test specification, test execution, test evaluation, and test results reporting.
- Self-organizing: The team may consist only of developers, but ideally there would be one or more testers.
- Co-located: Testers sit together with the developers and the product owner.
- Collaborative: Testers collaborate with their team members, other teams, the stakeholders, the product owner, and the Scrum Master.
- Empowered: Technical decisions regarding design and testing are made by the team as a whole (developers, testers, and Scrum Master), in collaboration with the product owner and other teams if needed.
- Committed: The tester is committed to question and evaluate the product’s behavior and characteristics with respect to the expectations and needs of the customers and
- Transparent: Development and testing progress is visible on the Agile task board.
- Credible: The tester must ensure the credibility of the strategy for testing, its implementation, and execution; otherwise the stakeholders will not trust the test results. This is often done by providing information to the stakeholders about the testing process.
- Open to feedback: Feedback is an important aspect of being successful in any project, especially in Agile projects. Retrospectives allow teams to learn from successes and from failures.
- Resilient: Testing must be able to respond to change, like all other activities in Agile projects.
These best practices maximize the likelihood of successful testing in Scrum projects and agile tester skills.
The First Sprint
In the first iteration of the Scrum many preparation activities take place. The tester collaborates with the team on the following activities during this iteration:
- Identify the scope of the project (i.e., the product backlog)
- Create an initial system architecture and high-level prototypes
- Plan, acquire, and install needed tools (e.g., for test management, defect management, test automation, and continuous integration)
- Create an initial test strategy for all test levels, addressing (among other topics) test scope, technical risks, test types, and coverage goals
- Perform an initial quality risk analysis
- Define test metrics to measure the test process, the progress of testing in the project, and product quality
- Specify the definition of “done”
- Create the task board
- Define when to continue or stop testing before delivering the system to the customer
- First Sprint sets the direction for what testing needs to achieve and how testing needs to achieve it throughout the sprints.
In Agile projects, the objective is to deliver customer value on a continuous basis (preferably in every sprint). To enable this, the integration strategy should consider both design and testing. To enable a continuous testing strategy for the delivered functionality and characteristics, it is important to identify all dependencies between underlying functions and features.
Since testing is fully integrated into the Agile team, test planning should start during the release planning session and be updated during each sprint. Test planning for the release and each sprint should address the issues.
Sprint planning results in a set of tasks to put on the task board, where each task should have a length of one or two days of work. In addition, any testing issues should be tracked to keep a steady flow of testing.
Agile Testing Practices in scrums
Many practices may be useful for testers in a agile scrum team, some of agile tester skills include:
- Pairing: Two team members (e.g., a tester and a developer, two testers, or a tester and a product owner) sit together at one workstation to perform a testing or other sprint task.
- Incremental test design: Test cases and charters are gradually built from user stories and other test bases, starting with simple tests and moving toward more complex ones.
- Mind mapping: Mind mapping is a useful tool when testing. For example, testers can use mind mapping to identify which test sessions to perform, to show test strategies, and to describe test data.