It’s been 12 years since the Agile Manifesto was created, and the majority of developers have jumped on the bandwagon since then. Agile methodologies are now dominating the software development landscape. It has overtaken waterfall as the dominant approach. But in the rush to implement the agile mindset, something has been overlooked: the tester.
The focus on delivering a good product without endless documentation is undoubtedly a positive move for developers. By keeping the needs of the end user in sight at all times, and by creating feedback loops, projects generally deliver better software, faster than before. Given that the agile methodology was conceived by developers for developers, it left the testers in the dark. As a report from Forrester points out, agile teams must invite testers to the table.
It should be obvious that agile development completely disrupts traditional testing practices, yet many companies have done nothing to update processes or arm testers for the new challenges they are facing.
Imagine a typical scenario on an agile project with a team of five developers and a pair of testers. From the development point of view, five developers can work at a steady, measurable velocity, adding new features to each new build. But that simply isn’t true for testers.
At first, testing each sprint is not a problem, because testers have a limited number of features to test. But as the software grows, they have to test new features, verify bug fixes, and perform regression testing. Everything has to be tested within the sprint timeline; the shorter it is, the more rounds of regression testing are needed. Soon, the test team is bogged down and overloaded.
Automated unit tests developed along with the code help to relieve some of the pressure, but the workload for the testers remains high. How can the same two testers cover all the new features while also doing verification and regression testing? The answer is simple: They can’t.
A different approach
In order to ensure that the quality remains high, management could scale up the test team significantly as the development progresses, but there is a much more cost-effective solution. Regression testing has to be documented and then automated as you progress. There’s no way to write up these test cases or scripts before the code has been delivered.
New-feature testing and bug validation is where you want your testers to focus. You can avoid duplicating work by using the test flow they are capturing as they test to generate test cases that can be used to automate the regression testing for the next build. It’s an all-at-once approach that requires testers to be on their toes.
A new tester
For agile testing to work, testers need to adopt the same agile mindset as developers, but ditching the traditional waterfall process for sprints does require some upfront planning.
Previously, the testers’ routine involved reading and understanding requirements, writing test cases before the build arrived, and testing the software when the build was made available. For the agile project, the tester cannot afford to write test cases before the build arrives since there’s not enough detail available.
There has to be a change in routine: Leverage exploratory testing to put new functionality through its paces; write a limited set of core test cases for future regression testing; and automate them as soon as the software in that area is stable to reduce a manual testing burden.
In the absence of detailed requirements and documentation, agile testers must understand the needs of the end user. It is vital they put themselves in the end user’s shoes and have a good understanding of exactly what they need from the software and how they are likely to use it. This means full participation in Scrum meetings, absorbing user stories, and asking questions whenever something isn’t clear. The ideal tester is an advocate for the end user.
Time for agile testers
So much effort has been put into creating agile practices for developers, isn’t it about time that testers were given due attention? For all the good that agile development brings, it doesn’t dispense with the need for skilled testing if you fully expect to deliver an excellent product for users. Integrate testers into the agile process from the start, help them develop exploratory skills, and use automation to cope with the repetition of regression testing, and you’ll have yourself a tester for the agile age.