Agile development methodologies have become widely prevalent in the last five years or so. The Agile Manifesto emphasizes working on software and responding to change over the course of the product lifecycle and promoting iterative development and faster time to market.
Test organizations are continually on the lookout for innovative and newer techniques to help achieve the required test coverage within the given constraints in shipping a quality product. Test teams have come to rely on exploratory testing more than ever before in the current scenario. In simple terms, Wikipedia defines this technique as “simultaneous learning, test design and execution.”
There are clear benefits to adopting exploratory testing in an agile workspace, but is it really adding to the randomization that might already exist in the agile environment?
Here are some scenarios where exploratory testing might be randomizing in an agile environment and some associated mitigating strategies to alleviate them and realize the technique’s true returns:
Independent test efforts without a clear charter—Testers often assume exploratory testing to be an independent, informal test execution effort. When adopted in an agile cycle, especially as a sole test technique or an important supplement to formal test efforts, a clear test strategy with owners for specific areas is important to ensure test coverage, accountability, and timely test execution, even within the umbrella of “exploration.” Variants such as session-based exploratory testing can be attempted.
Lack of test documentation—It has long been debated whether documentation is really required in the agile space. As the model evolves and becomes more mature, organizations are beginning to value the true meaning of documentation—keeping it precise, scalable, flexible, and dynamic to address user needs. The testing discipline also faces the same dilemma in the agile world, which is exponentiated with exploratory test efforts.
Creative ways can be adopted to build a testing body of knowledge, such as record and annotate tests and test results, and list critical points and data conditions to address documentation needs. Such non-traditional routes may also reduce test maintenance efforts.
Exploratory test results not tied back into meaningful exit criteria—When working within tight timelines, the test effort and associated results can soon become very chaotic if they are not analyzed and mapped to the goal of gauging and improving product quality. The test management plays a critical role in educating and empowering the entire product team and ultimately owning “effective inference of exploratory test results.”
In addition to the above, the following practices will improve effectiveness, increase productivity, and reduce any chances of randomization in agile exploratory testing:
- Explore the product through regular bug bashes to leverage the team’s knowledge and varied perspectives
- Use exploration to promote the team’s product understanding and collaboration
- Unwind amid busy project schedules with weekly short sessions of exploratory testing
- Apply exploratory testing through the product lifecycle—at the start, during development, and post development
As director of engagement, Rajini Padmanaban leads the engagement and relationship management for some of QA InfoTech's largest and most strategic accounts. She has more than twelve years of professional experience, primarily in the software quality assurance space. Rajini actively advocates software quality assurance through evangelistic activities including blogging on test trends, technologies, and best practices; providing insights on software testing to analyst firms such as Gartner, IDC; and speaking at the STAR conferences run by SQE.