Testers have a vital role to play in the agile world, but in order to do so, they need to develop a distinct mind-set. Speaking at a workshop hosted by IndigoCube, Janet Gregory, a leading international expert in agile testing, outlined the characteristics of an agile tester.
“The agile tester no longer sees herself as someone whose main purpose is to identify bugs or ensure that specific requirements are met. Agile testers are thinkers and take a much broader view, asking, ‘What can I do to help deliver the software successfully?’” says Gregory. “The ideal agile tester is analytical, curious, observant and critical—and combines a wide cross-functional knowledge with deep skills in the discipline of testing.”
In Gregory’s view, the agile (or thinking) tester is also characterised by a thorough commitment to collaboration.
“Agile has transformed software development by prioritising the creation of self-organising, cross-functional teams, in which individual roles have value only within the context of the overall goal of the team,” she explains.
“The agile tester thus works together with the whole team to find solutions, and does not see her role in isolation. Acceptance Test-Driven Development places testing at the centre of a widening circle of collaboration that includes the business, customers, developers and testers.”
As part of their broader, collaborative role to the overall success of the project, Gregory believes that agile testers need to move beyond simply “checking”—a largely automated verification of expected behaviours—to include “testing”, which requires human sapience and involves deeper probing, exploration and learning.
“Testing is not just about code, we need to uncover hidden assumptions and test them in order to build a common understanding of what the project as a whole is trying to achieve, and to prevent defects from occurring,” says Gregory.
To help her discharge her multi-faceted role, the agile tester must have a variety of appropriate tools at hand. Gregory believes that simple tools are often the most effective, particularly as they can be easily adapted to meet the needs of a specific project. Among these tools are mind maps, deep thinking and predict-check techniques, which involve testing before coding even begins.
Summing up, Gregory says that in the agile environment, testers share responsibility for quality with the whole team, just as the whole team helps programmers understand what they need to code. “Agile is all about getting the entire team to perform as a unit, and the agile tester’s set of skills is geared towards that,” she concludes.