Climb up the QA Maturity Ladder
The majority of companies acknowledge the importance of QA in achieving not only optimized testing budget and time, but also better brand reputation, customer satisfaction and trust through high-quality software. However, many of them are not satisfied with their QA achievements and admit that there is a long way to go ahead.
So, how not to get lost in non-systematic QA improvements? All you need is a clear and proven QA development strategy. In this article, we guide you through four steps to higher QA maturity: identifying QA obstacles, QA assessment, choosing a way to level your QA up, and evaluating QA effectiveness.
Step 1. Consider common QA pitfalls
Before setting off for higher QA maturity levels, you’d better be aware of some obstacles that may undermine the process. Here are the most common hindrances on the way to higher QA maturity levels:
The lack of QA awareness. QA maturity is not only QA professionals’ and test teams’ business. Project managers, BAs, and developers need to understand their role in software QA. When project managers underestimate QA, they may, for example, not allocate relevant time and budget for testing needs, which will result in testing delays, insufficient test coverage, a lot of missed bugs, and poor software quality. If BAs don’t involve QA professionals into software requirements gathering, it can result in a vague requirements specification not properly structured for testing. Developers neglecting such QA aspects in coding as readability, testability, and robustness may provide heavily bugged code of inferior quality.
Testing time pressure bound to Agile, DevOps/Continuous Delivery. Popular software development methodologies require quick testing and seamless cooperation between development and test teams. To meet iteration deadlines, test teams sometimes compromise on test coverage and, thus, testing quality. Also, development activities take up the majority of iteration time with too little time left for testing and QA activities.
Silo QA resources. If QA professionals form part of different project teams, it may be difficult to establish a unified and clear QA process, knowledge transfer, the set of conventional testing tools and their versions. Test teams may rely on different testing quality metrics and not perform testing quality measurement regularly. They may use different software versions and test automation tools, which increases licensing costs. Knowledge sharing between test teams may be complicated as QA professionals may not know about the relevant competences of their colleagues working on other projects.
Insufficient test automation. The World Quality Report shows that IT departments understand the benefits of test automation (vast test coverage, shorter testing time, fewer bugs missed because of a human factor, consistent bug reports) and want to increase its implementation. But it’s still a stumbling block due to the lack of test automation engineers and understanding which projects require test automation, what test cases and scenarios are worth scripting, and when it’s the right time to script them.
Step 2. Find your bearings
Acknowledging the obstacles that may block your way to higher QA maturity levels, you can start the journey. The first step is to come up with a QA maturity measurement to understand where you’re standing and what QA practices are already present in your organization. Either your in-house QA team or an external QA expert can carry out QA maturity assessment using one of the QA maturity models or a custom one.
According to TMMi, the most widely used QA maturity model, if your QA activities are limited to debugging without even proper test documentation maintenance, you are at level one of QA maturity. The second level is characterized by the presence of integration, regression and user acceptance testing types and test documentation. Still, at this level, testing is performed late in a software development life cycle. The third level requires QA professionals’ involvement into requirements gathering, execution of testing activities from the earliest development stages, regular training and knowledge transfer provision. The two remaining levels imply that testing effectiveness is continuously measured against relevant QA KPIs; there are proven testing best practices and an established testing process, which is regularly revised and improved; the missed bugs rate is low, and testing deadlines are normally met.
The primary goal is to reach the forth and the fifth levels of QA maturity. However, the third level of QA maturity is already a good result.
Step 3. Ramp up QA maturity
QA consulting may be helpful either to save the project with a lot of requirements not covered with test cases, missed bugs, overlong testing cycles, and poor bug description or to enhance QA maturity. Depending on your needs, a QA consultant can provide you with a one-time aid, the entire QA process establishment or its improvement. Thus, QA consulting may be relevant at any QA maturity level.
You may turn to an external professional to give you a helping hand if you have no time to gain insight into the actual QA complications. Besides, QA consulting doesn’t interrupt your ongoing QA activities, and the QA process improvements are introduced between projects’ iterations. A QA consultant usually performs the following activities:
- Analyzes the current QA condition and the root causes of the problematic issues.
- Prepares an action plan to level up QA maturity and communicates it to the project stakeholders.
- Assists a dedicated stakeholder with implementing the suggested improvements.
- Advises on how to sustain the achieved results and advance QA further.
Testing Center of Excellence (TCoE)
Unlike QA consulting, TCoE is an internal solution that can help you reach higher QA maturity levels. TCoE is an organizational unit that gathers your QA human resources assigned to numerous project teams and allocates QA professionals to manage them. The location of your QA teams may remain unchanged, they can continue as a part of their project teams, which is required by Agile and DevOps/Continuous Delivery approaches. They will be guided by TCoE managers who will establish a unified testing process, standards, metrics, and testing quality control. TCoE managers will develop a conventional bug reporting procedure, introduce test management and test automation tools and promote test automation.
However, TCoE has several limitations you should consider. Firstly, its setup requires substantial organizational efforts, so TCoE is mostly appropriate for large-scale enterprises with numerous departments and lines of business. Also, there should be some established QA processes for TCoE to centralize them. Thus, it’s relevant to have level 2 or better 3 of QA maturity in an organization before introducing TCoE.
Step 4. Evaluate the effectiveness of the undertaken measures
No matter what strategy of QA enhancement you decide on: an external or an internal one, you need to regularly measure its effectiveness. It is required to get the real-life picture of how productive your effort in developing QA maturity is. There are some common KPIs that may help to visualize the tangible results of your QA getting mature or remaining unchanged: the number of missed bugs, testing time and costs, the rate of test automation, and the number of requirements not covered with test cases.
The way up the QA maturity ladder may seem to be thorny. However, there is a proven approach for you to follow. The preliminary stage is to get to know what hindrances you may encounter trying to develop QA maturity. Then you should proceed with QA maturity assessment conducted with the help of a relevant QA maturity model. After that you should decide on an external way to boost your QA maturity level – QA consulting, or an internal one – TCoE. However, you shouldn’t forget that while QA consulting is relevant for any current QA maturity level, TCoE is an optimal solution only if your QA maturity assessment resulted in, at least, the second level. And, finally, don’t forget to evaluate the effectiveness of undertaken measures.