Let’s leave out the comparisons. Explore how acceptance criteria and exploratory testing complement each other to enhance the software testing process.
Acceptance criteria and exploratory testing are often compared in the QA community. The debate about which one is better is constant; just try googling it.
On the other hand, there seems to be little discussion about how the two approaches shouldn’t be compared at all but rather used together. When we combine acceptance criteria and exploratory testing, we get the best of both (very different) worlds.
In this article, we’ll explore the two testing types through definitions and practical use cases and then see how they can complement each other to improve our QA process.
Exploratory testing ⇔ acceptance criteria
Acceptance criteria are specific, measurable conditions that define when a project or task is considered complete and meets the set requirements. They ensure clarity, transparency, and alignment with client expectations.
On the other hand, exploratory testing is a flexible and intuitive approach where testers spontaneously explore and test software without predefined scripts. They rely on their expertise and critical thinking to find defects and get an understanding of the software’s behavior.
My interest in the relationship between the two testing types was sparked by a piece of feedback I once got. The comment was that I didn’t engage in enough exploratory testing because the task in question had very detailed acceptance criteria. After discussing this with my team lead, we concluded that this is potentially a team-wide issue. We decided to pursue this theory further and find out what the exact scope was.
Insights from Infinum’s QA team
We organized a survey and asked our QA colleagues how often they engage in exploratory testing on tasks with acceptance criteria laid out in detail. Here’s what we learned:
- All software testers employ both types of testing to a certain degree.
- When testing, our team members don’t feel constrained by acceptance criteria.
- Occasionally, they find major issues through exploratory testing on these tasks.
- Most team members feel no drop in motivation when working on tasks with detailed acceptance criteria.
We were curious to know their opinions about the topic, so we also asked how detailed acceptance criteria and exploratory testing complement each other, whether there are any specific types of tasks where exploratory testing provides more value even if detailed acceptance criteria are in place, and what resources or support would make their exploratory testing more effective.
The answers provided interesting insights, and we identified a couple of trends. What we learned helped us determine how exploratory testing and acceptance criteria team up in practice.
The exploratory testing and acceptance criteria combo in practice
As we’ve learned, the combination of detailed acceptance criteria and exploratory testing is not just effective but also offers several different perspectives, providing an all-inclusive testing approach.
Combining the two can enhance the quality of the product and ensure the success of our projects upon delivery.
While detailed acceptance criteria are a solid foundation, exploratory testing provides a flexible approach where testers explore the software guided by their expertise.
There are specific scenarios where exploratory test sessions become not just valuable but essential in the process of testing software products. For example, if we are testing very complex features, dealing with frequently changing criteria, testing across different environments, handling different user interfaces, or facing critical bugs in the first round of testing, combining these approaches is a powerful tool for a well-rounded and complete software testing process.
With their diverse resources and support mechanisms, using exploratory testing on top of acceptance criteria can be further improved with the following:
- Providing enough time
- Promoting collaboration and the right mindset
- Ensuring clear communication
- Having access to relevant information
- Relying on knowledgeable and experienced testers
These elements collectively contribute to a more effective and insightful exploratory testing process with acceptance criteria at its baseline.
Take your testing process to the next level
A balanced approach through test plans
Using this combined approach, we can create an environment that combines the strengths of scripted testing and unstructured exploration. With it, we are:
- Encouraging a balanced approach through test plans
- Incorporating exploratory testing in acceptance criteria templates
- Recognizing the creative approach provided by exploratory testing
By carving in additional time for exploratory testing sessions, implementing a prioritization system, and conducting retrospectives at the end of every testing phase, we also add flexibility to our testing process. When we allow ourselves to be more adaptable, we can respond to each project’s unique demands, ultimately leading to more effective and customized testing results.
Strengthening communication channels and enhancing team skills
If you want to elevate your testing process, strengthening the communication channels within the project team and enhancing the skills and expertise of your testing team should be the first step.
Emphasize the importance of communication and collaboration or sharing experiences at every opportunity. You can do this by organizing internal meetings, testing sessions, and pair sessions.
By providing opportunities for the exchange of experiences, the learnings of one team member benefit the entire team. When other people find themselves in a similar situation, they will have a better idea of what to do and how to do it.
To create the environment for these types of discussions, you can randomly pair team members and schedule a weekly session for them. That way, everyone will be able to see what others are working on, what testing techniques they are using, and what new knowledge they have acquired. They will also have the opportunity to learn something new by testing a piece of software they never had.
Enhancing the skills and expertise of our testing team contributes directly to the effectiveness of your testing processes.
Promoting continuous improvement
In addition to the above, it is essential to promote continuous learning within a team. A skilled tester who is always working on upgrading their knowledge is a vital element for a strong testing strategy. To motivate testers to work on continuous skill improvement, you can:
- Establish a documentation repository
- Invest in external training opportunities
With a documentation repository, you can always point your team members to it to learn something new. When they are unburdened by time constraints, the learning can be more relaxing. A repository is also a place where all team members can share their experiences with certain tools, processes, ways of working, and other testing components at any time that suits them.
Further, investing in external training opportunities, whether different conferences or certificates, is a great way for team members to gain valuable knowledge that can improve the testing process on the projects they are working on.
A holistic approach to software testing
People often go straight into comparing acceptance criteria and exploratory testing, failing to see their combined potential. As we’ve learned from our internal survey, our testers thankfully don’t feel constrained by acceptance criteria and often use both approaches.
Combining the structure provided by acceptance criteria and the flexibility of exploratory testing makes the testing process more robust. When we add opportunities for team collaboration and professional improvement to the mix, we’ve laid the foundation of a strong testing process across projects.
By applying this holistic approach to software testing, we get closer to a goal the testers, their company, and their clients share – better digital products with no bugs in sight.