DEV Community

Cover image for SWQA Principles & Quality Management Notes
Aseel-Himeidan
Aseel-Himeidan

Posted on Originally published at sulanotes.hashnode.dev

SWQA Principles & Quality Management Notes

Coming from a freelance testing background, I used to think that software QA was only manual testing. My university course completely flipped this perspective. I quickly realised that QA is a far richer and broader discipline.

It was a relief, as I was ready to rule out the field altogether. Even though I am no longer aiming for a full-time QA role, applying these principles as a developer will make a huge difference in the quality of my deployments.

In this series, I will share simple notes and key takeaways to make digesting these topics easier for myself and other students. Let's kick things off with the first core concept: Quality Management.

The Principles

Before diving into management, let us establish the foundational rules of the field. Principles of SWQA guide the software development process, whereas software testing principles explain what testing achieves and its limitations.

Figure 1: Principles of Software Quality Assurance and Principles in Software testing.

​When doing freelance testing, I definitely saw the Phenomenon of Error Accumulation in action. If a product filter broke in a marketplace app under a specific condition, I knew to start digging deeper, inevitably, more bugs were waiting nearby in related components.

Realizing that QA begins long before a single line of code is written was a major eye-opener. As I learned more about software quality assurance, I realised that QA is an active and strategic discipline, and much richer and broader than I thought, far beyond the repetitive routines of manual testing alone.

Now, what is Quality Management (QM)?

Turns out quality assurance is one of the activities under the broader umbrella of quality management. Quality management (QM) encompasses all organised efforts to improve the quality of a product or service. In software development, this applies not only to code but also to all artefacts produced throughout the Software Development Life Cycle (SDLC).

If quality is not built in from the start of the lifecycle, errors from the early stages propagate. This makes fixing them significantly more expensive the later they are discovered; hence, QM activities are run alongside development.


​Figure 2: Overview of Quality Management activities and types.

Software can never be completely error-free as the principles of software testing explain. However, it can be thoroughly tested to detect and address critical bugs. The quality cost model helps organisations allocate budgets effectively.

In short, total software costs are divided into production and quality costs:

  • Quality Costs: The total expenditure on the quality of a software. They are split into error prevention and error correction costs.

  • Error Prevention Costs: These are expenses incurred before delivery to prevent or detect errors early and are made up of both constructive and analytical QM costs.

  • Error Correction Costs: These are the expenses incurred after software delivery. They are divided into internal and external costs. Internal costs are the costs that an organisation incurs when correcting errors within such as localising and fixing errors, and re-running tests after code modifications. External costs are the expenses incurred by the company due to external shareholders, including but not limited to contractual penalties, loss of customer confidence, and reputational damage.

Note: Do not confuse constructive (a priori) QM as the sole expense for error prevention. Analytical QM is also performed before delivery, even though it occurs during or after development.

The relationship between the cost of error prevention and correction is such that higher error prevention costs lead to higher quality systems and lower correction costs. In contrast, lower error prevention costs lead to lower-qualitysystems and higher error correction costs.

Investing more in QA leads to a higher-quality system; however, over time, obvious errors are found, and only those that require even more intensive testing resources remain. Hence, from an economic standpoint, there will be a point where testing reaches diminishing returns, and the cost of QA exceeds the actual errors found. Thus, companies aim for a cost-optimised system where error prevention and error correction costs are in equilibrium.

Top comments (0)