31. May 2023 By Elif Gürcüoğlu
How to Achieve More Test Coverage in Less Time
Time constraints, a backlog alongside priorities, budget problems, an upcoming milestone deadline... Sound familiar? Not surprised at all. I would like to let you know that in all this hustle and bustle, you don’t have to sacrifice anything, especially quality. After working with various teams, I can assure you that every sacrifice made in quality will come back to get what it deserves. So, is it really possible to test less but cover the requirements more? Let’s take a look at these three facts.
1. Automation: Your Tireless Teammate
Without a doubt, manual test execution is one of the most time-consuming tasks of a QA team. The CI/CD pipeline, which is the first condition of efficient automation, saves a lot of time for teams while managing test packages. In addition to the CI/CD pipeline, automation scripts created with the right test set become a great advantage, especially for teams that release large, scoped codes in a short time.
The decision to automate a test case or not is critical.
If you are unsure whether automation is necessary for your software, you can evaluate it with a quick calculation. The return on investment (ROI) of test automation requires an analysis of the costs and benefits involved.
In order to make this calculation, you need to observe and record your manual test case design and test running durations for a while. It is not that complicated a process if your team already uses a test management tool.
Here is an example of a breakeven point chart from one of the projects I was involved in some time ago:
The two curves above show how cost increases with each testing method. While the cost curve of manual testing increases gradually, the cost of automation is higher than manual testing at the beginning. It is an undeniable fact that there will be a big difference in budget and time consumption between the two test methods after the breakeven point.
This opens up some more space for your QA team to take on more critical tasks while issues in your software are revealed and resolved faster.
2. Thinking with an End User Mindset
Testing is more like playing the role of the end user, and it requires a certain mindset. Key factors are patience, creativity, and open-mindedness.
According to the black box method, which is very common, the tester does not have knowledge about the code. The tester verifies the input and output and doesn’t care about the architectural design of the data flow. Just like the end users.
At the beginning of projects, what I find really helpful for software testing experts is to hold discovery sessions. They work directly with all project stakeholders. Business, BA, QA, and UX teams come together for discovery meetings to deep dive into the behavior analysis of the end user.
Discovery sessions are pretty useful during the test case design process. It allows the test team to focus on the scenarios closest to the end user experience without any distractions.
Persona, device penetration, user habits, the physical environment in which the user interacts with the software, and the primary purpose of the user are some of the key points that have a direct impact on test planning. Identifying these key points clearly reveals the most efficient testing approach required by the project.
I usually observe that significant results are obtained thanks to user statistics. This approach significantly reduces the time consumed for manual testing and shortens the time needed to find crucial defects much before new features meet with users. Here is just a small example: During one of the projects I was involved in, it was determined that almost half of the end users used one of two particular mobile devices. While the test teams focused on these two devices in manual tests, time was saved by reducing the count of executions on other devices.
3. Prevention is better than cure
Defect prevention is a structured problem-solving methodology to identify, analyze, and prevent possible defects.
Fewer defects mean less testing as well. Re-testing after bug fixes is an overhead process for most QA teams. Especially for the teams that are not supported by automation.
Defects found during the testing phase or after release are much more costly than preventing them before they occur. Not only the cost but also the reputation of the brand should be considered.
Defect logging and documentation are beneficial ways to make defects analyzable. This method helps teams with defect traceability. After documentation, defects are classified by the QA team based on their types, recurrence frequency, priority, and impact. It provides a detailed basis for root cause analysis. Defect logs should be updated when needed, and root cause analysis sessions should be held regularly with the participation of teammates from each track.
While applying a defect prevention strategy, the main aim of the quality assurance team is usually identifying the most recurring defect, finding its root cause, and seeking a solution to eliminate it.
Organizations need a QA approach that shares the same mindset with their end users. A well-skilled tester should discover the real user experience, automate, and provide options to prevent recurrence.
Testing less but covering more requirements of the software seems quite possible by executing these three methods.