Software Quality Management: What, Where, and How?
Low-quality software may result in the insufficient user adoption rate, so it may put a company’s reputation at risk and not make up for software production costs. No wonder, 36% of the current World Quality Report respondents see the higher quality of software to be the main objective of their IT strategies.
As soon as quality becomes your business priority, it cannot remain the concern of QA teams only. The efforts of all the parties involved in software production are required. And a thought-out quality management (QM) strategy is aimed to define and coordinate these efforts. You can build and implement this strategy relying only on your in-house resources or turn to QA outsourcing.
Anyway, we’ll show you what benefits and common concerns each way to efficient quality management is prone to. You can also find the information on what quality management consists of and how to measure the current level of your quality management.
- What does quality management consist of?
- What is your current level of quality management maturity?
- How to ramp up quality management maturity?
Software quality management is a comprehensive process that ensures software is compliant with its requirements, national and international quality standards, for example, established by ANSI, IEEE, and ISO. Quality management comprises the following activities: quality control (QC), quality assurance (QA), and quality planning (QP).
Quality control is a tip of quality management. As a rule, it’s observed even when the rest of quality management is overlooked. This product-oriented quality management component starts simultaneously with software development. QC includes software testing activities predetermined by a quality plan. Manual and automated functionality, performance, integration, usability, security, regression testing – all these and many other testing types comprise QC. Quality control should check whether software is compliant with its requirements and no severe defects will be revealed after software is released.
Quality assurance is a process-oriented part of quality management, which should be introduced as early as a project planning stage. QA deals with the following questions:
- What standards and requirements software should comply with?
- What should each stakeholder (for example, project managers, BAs, and developers) do for software to be of high quality?
- What kind of the software production process can prevent defects from occurring?
- How to establish such a process?
As the US National Institute of Standards and Technology found, it’s 5 times more expensive to fix a bug found during system testing than to organize software requirements gathering in the way this bug wouldn’t appear. Mature quality assurance aims primarily at preventing, not detecting the existing defects.
Quality planning. A quality plan can be devoted either to general enterprise-wide quality management practices or quality provision during each project specifically. On a project level, QP normally formalizes such aspects of quality management as:
- Stakeholders’ roles and responsibilities with regard to quality assurance.
- Required project and testing documentation.
- A software requirements specification and the set of standards software should comply with.
- Relevant testing types.
- An approximate testing schedule, cost, and human resources line-up for the corresponding project.
- Training required by QA team members.
- A reporting process and schedule.
- Testing KPIs.
- A risk mitigation plan.
The common obstacles on the way to effective quality management include its underestimation by parties involved in software production, leaving out crucial aspects of a quality plan (like testing efficiency metrics or required professional training), and mixing up QA with QC. While all three quality management parts are interdependent and none of them can be neglected if you aim at high-quality software.
Effective quality management is indicated by a high QA maturity level. In its turn, mature quality assurance is impossible without clear quality planning and thorough quality control activities. This way, to get started with quality management improvement, you should find out where exactly you are standing on a QA maturity ladder with the help of one of the QA maturity models.
Test Maturity Model Integration (TMMi), the most popular QA maturity model, provides a clear set of QA, QP and QC activities characteristic to each maturity level for you to easily understand what has already been done to deliver quality software and what goals still lie ahead.
Level 1. Initial
This level is characterized by basic quality control activities, such as smoke and internal integration testing, aimed to find the most critical functionality bugs. Testing activities are poorly organized and documented. Quality assurance and quality planning are almost non-existent.
Level 2. Managed
Quality control activities greatly differ from project to project. It includes unit, smoke, internal integration, and user acceptance testing. Each project’s testing process is already planned and documented. However, quality plans lack such crucial aspects as stakeholders’ roles and responsibilities, testing effectiveness evaluation criteria, QA training, risk mitigation and management. Quality provision is still seen by many stakeholders only as the set of activities done before a code release.
Level 3. Defined
At this level, apart from multi-level functional and regression testing, QC comprises such testing types as performance, security, usability, compatibility, disaster recovery, and compliance testing. Quality plans are almost complete and lack only the common set of testing metrics and KPIs. Testing is no longer seen as the only way to ensure the quality of software, and there is an established quality assurance process involving all employees concerned with software product into quality provision. Common software quality standards are used through the organization. Training on relevant test automation tools and modern testing techniques is provided to QA team members and knowledge transfer between different QA teams is implemented.
Level 4. Measured
At this level, the regular measurement of quality assurance process effectiveness adds to its maturity. QA efficiency is checked against such KPIs as testing time and budget, the number of missed bugs, the rate of test automation, the quality of defect description, the number of executed test cases and software requirements not covered by test cases.
Level 5. Optimization
The highest level of QA maturity is characterized by regular improvement and optimization of a quality assurance process. To enhance the QA process, testing KPIs are analyzed, forefront testing tools and technologies are reasonably adopted, and the most widespread quality management pitfalls are identified and eliminated.
If you find out that your quality management is not mature enough, you should carefully consider the most appropriate way to advance it. Ad hoc attempts to improve quality assurance by jumping from Level 1 to Level 5 can bring about only more confusion and undermine the stakeholders’ QM appreciation.
Here’re the proven options to reach higher quality management maturity for you to make the most appropriate choice. Some of them can be implemented relying solely on our in-house QA human resources, others require external QA professionals' involvement.
A higher quality management level can be set as a goal of a corporate program. A CIO announces such a program to achieve quality enhancement goals with the help of a dedicated program manager. The program manager comes up with a detailed plan of relevant quality management improvement steps for project teams to implement and monitors their results.
The option’s main benefit
A QM corporate program is handy as it doesn’t require any changes in an organization’s structure: no additional employees, positions or structural units are introduced.
The option’s typical pitfall
The quality management corporate program requires the relevant input from every project team, so the program manager’s lack of administrative resource can ruin it. If project teams ignore the program manager’s recommendations, your quality management will remain where it is. And naturally, it demands additional efforts from the program manager, who should allocate enough time to implement quality management changes and monitor results along with handling their daily tasks.
QA human resources, testing budgets, quality metrics, and best practices dispersed around the whole enterprise can be centralized in a separate organizational unit named the Testing Center of Excellence (TCoE). As a result, QA professionals assigned to different project teams become a part of this new center with TCoE managers to supervise them.
The option’s main benefits
TCoE’s primary aims are to promote quality assurance through the whole enterprise, introduce a comprehensive company-wide quality plan, establish common testing KPIs, and decide on the balanced testing human resources allocation to different projects. TCoE implementation can help to establish a universal optimized quality assurance process, increase the test automation rate, reduce the number of missed bugs, and shorten testing time.
The option’s main constraints
Establishing TCoE requires substantial organizational efforts. New positions of TCoE managers should be introduced. In addition, the TCoE evolution process requires about a year.
Both the quality management corporate program and TCoE options don’t rule out the possible need in external QA consulting. A QA consultant can help:
- To develop an effective action plan for a QM corporate program and consult a program manager on how to put forward the planned quality management advancements most productively.
- To develop an optimal plan for establishing TCoE and assist with its setup and evolution.
- To propose a plan of immediate actions to resolve quality assurance problems within a particular project.
Normally QA consulting includes QA maturity assessment, the investigation of software quality problems’ root causes, the preparation of an action plan for quality improvements and its negotiation with all the parties concerned, supervision and guidance of the plan’s implementation.
QA outsourcing may imply an immensely wide range of services from just reinforcing a test team with top testing professionals to complete QA outsourcing without any internal QA human resources being involved.
To advance quality management, you can turn to transformational QA outsourcing. This cumulative approach presupposes that a QA vendor’s professionals complement your in-house QA teams and improve their efficiency. The QA vendor will contribute to quality management enhancement resolving actual QA issues like an excessive number of bugs, poor test coverage, overlong testing cycles, and incoherent bug descriptions. At the same time, your IT professionals responsible for quality management (for example, a QM program manager) will need to organize effective collaboration between the vendor and the project teams as well as align a new advanced QA process with the company’s general quality management strategy.
The option’s benefits
Successful QA outsourcing can level up your QA maturity much quicker than other options by giving access to highly qualified professionals, best QA practices, forefront tools and technologies and introducing a fresh external approach to your work processes. Besides, QA outsourcing helps a QM program manager to dwell on a general enterprise-wide quality plan development and implementation, while a QA vendor will get busy with current QA process advancement and efficient quality control activities.
The option’s major constraints
To choose a right transformational QA outsourcing provider, you should pay special attention to the company’s experience in quality management transformations, not their cost-effectiveness as involving such a vendor is likely to require a substantial financial investment.
Additionally, QA outsourcing even from the best-of-breed vendor requires continuous vendor management for you to be sure you get the desired scope and level of QA services. Thus, you’ll need to dedicate a QA manager to measure the progress of your QA with the help of relevant KPIs, review test documentation, perform contract and SLA management, and provide your QA vendor with relevant feedback on their performance.
In a nutshell
A sure way to ramp up software quality management starts with acknowledging what QA, QP, and QC activities it comprises and determining your current quality assurance maturity level. Then, it’s time to choose the way to quality management improvement that is most appropriate to you.
Internal ways of quality management maturity enhancement include a QM corporate program and TCoE. Both solutions can be established either solely with your in-house QA resources or with the help of QA consulting. Otherwise, you can turn to QA outsourcing as an external asset to your QA progress.