Years ago, software development was once a fragmented experience. Developers created a program then passed it along to testers for evaluation before releasing the finished product to consumers.
Since the agile school of thought took the software development world by storm, however, more businesses have amended their practices to place more focus on a fluid production cycle, encouraging co-operation between individual members and teams as well as quickly accounting for emerging market and customer demands.
As noted by Michael Kelly from TechTarget, developers needed a new testing model in order to facilitate this revolutionary approach to development.
This led exploratory testing to pick up in rapid development pace agile environments. In this article, we are looking at benefits and challenges of exploratory testing in such agile software projects.
Benefits and Challenges of Exploratory Testing
In an agile environment, teams require up-to-date information and insight. These resources can’t be utilized if developers are sitting around waiting for testers to pass along the results from their latest analysis.
Although exploratory testing has its roots in earlier models such as ad hoc testing, the modern iteration of exploratory testing is much more sophisticated and deliberate.
Satisfice founder and StickyMinds contributor James Bach explained that even though this process, that doesn’t mean quality assurance teams get to kick back and relax while developers toil away. They need to be running constant tests to quickly spot any flaws with in-development code and pass that information along as soon as possible.
“Unlike traditional test methods where the process might be phased, exploratory testing is more of a real-time process,” Kelly wrote.
“Instead of test design and execution being separated by iteration or team, with each test executed, the tester learns more about the product and uses that information to design the next best test to be executed.
It’s a process that allows the tester to respond to each test in a way that should maximize focus on the most relevant risks in getting the most out of exploratory testing.”
Bach noted that sometimes the lines between exploratory, scripted and ad hoc testing can blur as testers dip their toe a little into each during the evaluation process.
For instance, Bach recommended that QA management teams continually record any ideas for future tests that might occur to them.
This practice might feel similar to scripted testing, but it’s meant to be more of a loose guide than the hard and fast parameters dictated by test scripts.
The latter, Bach noted, is useful when testers know what software is coming down the pipeline, but in an agile work environment, they can’t even be sure what changes will be made in the immediate future.
Optimising exploratory testing efforts comes down to effective QA management. Bach suggested that there are essentially two ways QA leaders can approach this through delegation or participation.
If a test lead decides to pass the buck with different testing responsibilities, he or she must be sure to meet with individuals on a regular basis to get updates on their progress.
Many organizations have found that the easiest and most productive way to delegate duties is to assign a specific task or component to each team member. This approach places an enormous amount of responsibility on individual testers, and the most critical jobs should be given to the most reliable employees, as they will be largely working without any oversight (or safety net).
Conversely, by taking the participation approach, test leads are opting to roll up their sleeves and get down in the trenches of exploratory testing. This method is more in the spirit of agile development process, as managers are on hand to receive real-time updates and actively engage with team members.
Bach cautioned, however, that the participation approach is not ideal for QA management officials with a large number of extraneous duties. If they are expected to attend regular meetings with executives and other team leaders, they will have little time to take a hands-on approach to the testing process.
QA officials should take whichever approach best fits their managerial style and their work schedules. By properly integrating exploratory testing, evaluation teams can provide real-time updates to their agile development counterparts.
Image Credit: [James Theophany]
Editor’s note: This is a guest post by Sanjay Zalavadia, VP of Client Service at Zephyr. If you would like to contribute to the testing community, you can send your guest posts here.