Software Testing and Quality Assurance

Chapter 2
Software Quality Theories, Models and Standards

Post Graduate Diploma in Full Stack Development
Software Testing and Quality Assurance   •   Post Graduate

2. Software Quality Theories, Models and Standards

Introduction and Context

Software quality is often discussed as if it were a single property: a system is either “good” or “bad.” Professional engineering requires a more disciplined view. Quality is multidimensional, contextual, and produced through a combination of technical practices, human decisions, organizational processes, and governance. A secure banking application, a real-time control system, and an e-commerce website may require different quality priorities, even though all must be dependable.

For a full-stack developer, quality is not limited to final testing. It begins with requirements, continues through architecture and implementation, and is influenced by deployment, operation, maintenance, and retirement. Quality assurance therefore includes both product concerns—whether the software satisfies its intended and implied needs—and process concerns—whether the organization uses controlled, repeatable, and improvable methods to create it.

This chapter examines theories and standards that provide a foundation for evaluating software quality. It connects prevention and detection, cost of quality, product-quality models, quality-management standards, testing standards, process-maturity frameworks, and contemporary quality engineering. The emphasis is not on memorizing standards, but on understanding what problem each framework addresses and how the frameworks can be used together.

Learning Objectives

After studying this chapter, a student should be able to:

  • distinguish product quality from process quality;
  • explain prevention-versus-detection theory and the cost of quality;
  • apply ISO/IEC 25010 quality characteristics to software evaluation;
  • describe the purposes of ISO 9001, ISO/IEC/IEEE 29119, and relevant IEEE guidance;
  • compare CMMI and TMMi as process-improvement frameworks;
  • interpret quality metrics and select suitable quality practices for a project;
  • identify limitations, risks, ethical concerns, and emerging trends in quality engineering.

What Software Quality Means

A useful working definition is that software quality is the degree to which software possesses characteristics that satisfy stated and implied needs under specified conditions. The definition contains several important ideas. First, quality is related to needs, so it cannot be assessed without understanding stakeholders and usage context. Second, quality includes both stated requirements and reasonable expectations such as security, accessibility, maintainability, and operational resilience. Third, quality is evaluated under conditions: a system may perform adequately in a development environment but fail under production load.

Two distinctions are particularly important. Product quality concerns the software and its behavior. It includes functional correctness, performance, security, usability, reliability, maintainability, and portability. Process quality concerns the way software is specified, developed, tested, released, and improved. A high-quality process does not guarantee a defect-free product, but it increases the likelihood of consistent results and makes failures easier to investigate.

Quality assurance (QA) is the planned and systematic set of activities intended to provide confidence that quality requirements will be fulfilled. Quality control (QC) focuses more directly on examining outputs and identifying nonconformities. Testing is a major QC activity, but QA is broader: reviews, standards, training, process audits, preventive analysis, and improvement are also part of QA.

Quality is also relative to a quality objective. For example, a financial transaction service may prioritize integrity, security, traceability, and availability. A mobile game may prioritize responsiveness, usability, compatibility, and user experience. A quality model helps teams make these priorities explicit rather than treating every attribute as equally important.

Prevention, Detection, and the Cost of Quality

The prevention-versus-detection perspective asks when an organization should discover and address problems. Prevention attempts to avoid defects or reduce their probability before they enter the product. Examples include clear requirements, architecture reviews, coding standards, static analysis, threat modelling, and developer training. Detection identifies defects after they have been introduced through reviews, testing, monitoring, or customer feedback.

Detection remains essential because prevention is imperfect. However, defects generally become more expensive to correct as they move through the lifecycle. A misunderstood requirement found during requirements analysis may be corrected through a clarification. The same misunderstanding discovered after deployment may require code changes, data migration, customer communication, emergency support, and reputational recovery. The exact cost relationship varies by project; the important principle is that late discovery usually increases rework and risk.

The cost of quality (CoQ) commonly consists of four categories:

1. Prevention costs: training, process design, standards, test automation design, architectural risk analysis, and quality planning.

2. Appraisal costs: inspections, reviews, test execution, audits, measurements, and independent assessment.

3. Internal failure costs: rework, debugging, retesting, scrap, build failures, and schedule disruption before release.

4. External failure costs: production incidents, refunds, warranty work, regulatory penalties, lost customers, and damage to reputation.

The first two categories are often called the cost of conformance; the latter two are the cost of nonconformance. A simplistic organization may attempt to reduce quality expenditure by cutting reviews or testing. This can lower appraisal costs temporarily while increasing failure costs substantially. Conversely, unlimited testing is not economically rational. The objective is an appropriate balance in which prevention and appraisal reduce unacceptable failure risk.

A practical quality-cost analysis links expenditure to outcomes. Teams can track escaped defects, incident severity, rework hours, automation maintenance, review effort, and time spent resolving recurring defect classes. Metrics must be interpreted carefully: a rising number of detected defects may indicate worsening quality, or it may indicate improved detection before release.

ISO/IEC 25010: A Product-Quality Lens

ISO/IEC 25010 provides a recognized product-quality model. The model is useful for converting vague expectations into quality characteristics and measurable criteria. Its product-quality characteristics include:

  • Functional suitability: the extent to which functions meet stated and implied needs. It includes functional completeness, correctness, and appropriateness.
  • Performance efficiency: behavior in relation to resources and time. It includes time behaviour, resource utilization, and capacity.
  • Compatibility: the ability to coexist and interoperate with other systems.
  • Usability: the extent to which specified users can use the system effectively, efficiently, and satisfactorily. It includes learnability, operability, user-interface aesthetics, and accessibility-related considerations.
  • Reliability: the ability to perform specified functions under specified conditions for a specified period. It includes availability, fault tolerance, and recoverability.
  • Security: protection of information and systems against unauthorized access or action. It includes confidentiality, integrity, non-repudiation, accountability, and authenticity.
  • Maintainability: the ease with which the software can be modified. It includes modularity, reusability, analysability, modifiability, and testability.
  • Portability: the ability to be transferred between environments. It includes adaptability, installability, and replaceability.

The model should not be treated as a checklist in which every characteristic receives identical weight. A project should translate characteristics into measurable quality requirements. For instance, “high performance” may become a 95th-percentile response time below a defined threshold under a specified workload. “Secure” may become requirements for authentication, authorization, encryption, logging, dependency management, and vulnerability remediation.

ISO/IEC 25010 also distinguishes quality in use, which concerns outcomes for users in a particular context. Quality-in-use considerations include effectiveness, efficiency, satisfaction, freedom from risk, and context coverage. This distinction prevents teams from declaring a product usable merely because it contains well-designed interface components; actual users and contexts must be considered.

Quality-Management and Testing Standards

ISO 9001

ISO 9001 is a quality-management-system standard applicable across industries. It emphasizes a process-based management system, customer focus, leadership, planning, support, operation, performance evaluation, and continual improvement. In software organizations, ISO 9001 may influence requirements management, document control, competence, supplier management, corrective action, internal audits, and evidence-based improvement.

ISO 9001 does not prescribe a particular programming language, testing tool, or development methodology. Certification does not prove that a specific application is defect-free. It indicates that an organization has established and maintains a quality-management system meeting the standard’s requirements, subject to audit scope and evidence.

ISO/IEC/IEEE 29119

ISO/IEC/IEEE 29119 is a family of standards concerning software testing. It provides concepts and vocabulary, test processes, test documentation, and test techniques. Its value lies in giving organizations a common structure for test planning, analysis, design, implementation, execution, completion, and reporting.

The standard can support risk-based testing. A test strategy may consider business impact, technical complexity, change frequency, regulatory requirements, and defect history. Test documentation should be proportionate: a safety-critical system requires stronger traceability and evidence than a small internal prototype. The standard should guide consistency, not create unnecessary bureaucracy.

IEEE Guidance

IEEE guidance has historically addressed software quality assurance plans, reviews, verification and validation, configuration management, and measurement. The central professional idea is that quality activities should be planned, assigned, documented, and evaluated independently where appropriate. IEEE-oriented practice emphasizes evidence: requirements, test results, review records, defect reports, baselines, and approval decisions should support claims about quality.

Standards should be tailored to context. Applying every document template mechanically can cause teams to optimize for compliance rather than quality. Conversely, abandoning disciplined documentation makes traceability and organizational learning difficult.

Process Maturity: CMMI and TMMi

Process models evaluate how systematically an organization performs and improves its work. CMMI, the Capability Maturity Model Integration, provides practices for improving organizational capability across areas such as development, services, planning, risk management, measurement, configuration management, and process management. It encourages organizations to move from ad hoc behavior toward managed, defined, quantitatively managed, and optimizing practices, depending on the representation and appraisal approach used.

CMMI is broader than testing. It asks whether organizational processes are planned, institutionalized, measured, and improved. Its usefulness is greatest when process improvement is tied to business goals rather than treated as a certification exercise.

TMMi, the Test Maturity Model integration, focuses specifically on testing maturity. Its staged approach commonly progresses from an initial, often inconsistent testing situation toward managed testing, defined test processes, measurement and control, and optimization. Typical improvement themes include test policy and strategy, test planning, test environment management, non-functional testing, reviews, defect prevention, and test process optimization.

CMMI and TMMi are complementary. CMMI may address organizational governance and engineering practices, while TMMi provides greater depth in test management and test process improvement. Neither maturity model guarantees product quality. A mature process can produce an unsuitable product if requirements are wrong, quality goals are poorly selected, or teams measure activity rather than outcomes.

Contemporary Quality Engineering

Modern quality engineering extends testing across the delivery lifecycle. In Agile and DevOps environments, quality is shared by developers, testers, product owners, security specialists, operations teams, and business stakeholders. Practices include continuous integration, automated regression tests, contract testing, infrastructure validation, observability, production monitoring, feature flags, and controlled experimentation.

The shift-left principle encourages earlier quality activities such as acceptance-criteria refinement, example mapping, static analysis, unit testing, threat modelling, and design review. A complementary “shift-right” perspective evaluates behavior in realistic operation through monitoring, resilience testing, canary releases, incident analysis, and user feedback. Neither direction replaces the other.

Risk-based testing allocates effort according to the consequences and likelihood of failure. A simple risk priority may combine impact, probability, and detectability, but numerical scores should not create false precision. Teams should discuss assumptions and focus on high-consequence risks, including security, privacy, accessibility, data integrity, and operational failure.

Automation is valuable when tests are repeatable, stable, fast enough to provide feedback, and economically maintainable. Automated tests do not remove the need for exploratory testing, usability evaluation, code review, or human judgement. Artificial intelligence can assist with test-data generation, code analysis, failure clustering, and prioritization, but outputs require validation. AI-generated tests may reproduce biased assumptions, miss business risks, or create large volumes of low-value checks.

Applying Models to a Full-Stack Project

Consider a subscription web application. The team can begin with ISO/IEC 25010 to identify priorities: functional suitability for subscription changes, performance efficiency during billing cycles, security for payment and identity data, reliability for recurring jobs, usability for account management, and maintainability for frequent feature delivery.

The team can then convert priorities into a quality plan. Requirements reviews and threat modelling provide prevention. Unit, integration, API, contract, end-to-end, performance, accessibility, and security tests provide detection. CI pipelines execute fast checks on every change, while broader tests run before release. Monitoring measures availability, latency, failed payments, error rates, and recovery behavior after deployment.

ISO/IEC/IEEE 29119 can structure test planning and reporting. ISO 9001 concepts can support controlled processes, competence, corrective action, and continual improvement. CMMI practices can help manage requirements, configuration, risks, and measurement, while TMMi can guide improvement if testing is inconsistent. The result is not “compliance with five frameworks”; it is a coherent quality system in which each framework serves a distinct purpose.

Illustrative Case Study: Preventing Checkout Failures

Background

A fictional online retailer releases features weekly. Its checkout application integrates a browser interface, product services, inventory, payment providers, and a shipment system.

Situation

After a major promotion, customers report duplicate charges and orders that remain in an uncertain state. The organization had many automated UI tests, but most ran only after deployment. Requirements for payment retries were ambiguous, and production monitoring showed only overall transaction failure, not the relationship between payment and order states.

Analysis

Using ISO/IEC 25010, the main quality concerns were functional suitability, reliability, security, performance efficiency, and recoverability. Cost-of-quality analysis showed that the organization had invested in late appraisal but little prevention. A process review identified missing acceptance criteria, insufficient contract testing between services, and no explicit failure model for provider timeouts.

Approach

The team introduced examples for successful payment, timeout, provider rejection, retry, cancellation, and recovery. Architecture and threat reviews were conducted before implementation. Contract tests verified service assumptions, while fault-injection tests simulated delayed and duplicated provider responses. Idempotency keys were added to payment requests. The CI pipeline ran unit and contract tests on every change, with selected end-to-end and performance tests at release gates. Dashboards tracked payment attempts, order states, reconciliation failures, and recovery time.

Outcome

The changes reduced reliance on late UI testing and made failure states observable. When a provider later experienced intermittent delays, the system recovered without creating duplicate charges, and the operations team could identify affected transactions quickly. The principal improvement was not a single test; it was the combination of prevention, controlled design, targeted detection, and operational feedback.

Learning Points

The case demonstrates that quality models guide prioritization, standards organize evidence and process, and maturity frameworks expose organizational weaknesses. It also shows why passing tests alone cannot demonstrate quality when requirements, system interactions, and production behavior remain poorly understood.

Limitations, Risks, and Professional Judgement

Models simplify reality. ISO/IEC 25010 characteristics can overlap, and a measure for one characteristic may affect another. Increased security controls may reduce convenience; extensive logging may affect performance; aggressive test isolation may fail to reveal integration problems. Quality metrics can also be gamed. A team may increase test counts while missing critical risks, or reduce reported defects by discouraging defect registration.

Common mistakes include treating certification as proof of product quality, equating code coverage with test effectiveness, measuring tester activity rather than customer outcomes, automating unstable tests, ignoring non-functional requirements, and applying heavyweight documentation to low-risk work. Another mistake is assigning quality solely to a testing department. Developers and managers influence quality through design decisions, schedules, incentives, staffing, and release governance.

Ethically, quality decisions must consider users who may be vulnerable or excluded. Accessibility should not be postponed merely because it is difficult to measure. Privacy and security defects can harm individuals even when the software meets its functional requirements. Teams should report known risks honestly, preserve evidence, protect test data, avoid using real personal data without proper controls, and ensure that automated or AI-assisted decisions do not introduce unjustified bias.

Current Directions and Best Practice

Contemporary organizations increasingly combine standards with lightweight, continuous practices. Useful directions include software supply-chain security, automated dependency and container scanning, privacy engineering, resilience testing, accessibility automation supplemented by human evaluation, and observability-driven quality improvement. Digital product teams also use quality gates based on risk, service-level objectives, escaped-defect trends, and incident learning rather than on a single pass/fail test count.

Effective practice generally follows five principles: define quality in stakeholder and measurable terms; prevent defects early while retaining independent detection; select standards according to risk and context; use metrics to support decisions rather than punish teams; and improve the system through feedback from development, testing, operation, and users. Quality is strongest when it is built into work rather than inspected into a finished product.

Chapter Summary

Software quality includes product quality and process quality. Prevention reduces the introduction of defects, while detection identifies problems that prevention misses; both contribute to an economically sensible cost-of-quality balance. ISO/IEC 25010 provides a product-quality vocabulary covering functional suitability, performance efficiency, compatibility, usability, reliability, security, maintainability, and portability. ISO 9001 focuses on quality-management systems, ISO/IEC/IEEE 29119 structures testing practices and evidence, and IEEE guidance supports disciplined quality assurance and verification activities. CMMI addresses broad organizational capability, whereas TMMi concentrates on test-process maturity. Contemporary quality engineering integrates shift-left and shift-right practices, automation, risk-based testing, observability, and continual improvement. Frameworks are valuable only when tailored to context, connected to measurable objectives, and interpreted through professional judgement.

Key Terms

Product quality: The degree to which software characteristics satisfy stated and implied needs.

Process quality: The capability and consistency of the methods used to produce and maintain software.

Quality assurance: Planned activities that provide confidence that quality requirements will be fulfilled.

Quality control: Activities that examine outputs and identify nonconformities.

Prevention: Actions intended to avoid defects or reduce their probability before introduction.

Detection: Activities that reveal defects after they have entered a work product or system.

Cost of quality: The combined cost of conformance and nonconformance.

Cost of conformance: Prevention and appraisal expenditure.

Cost of nonconformance: Internal and external failure costs.

Functional suitability: The extent to which functions meet intended needs.

Reliability: The ability to perform specified functions under specified conditions over time.

Maintainability: The ease of analysing, modifying, and testing software.

Quality in use: Quality experienced by users in a specified context.

ISO 9001: A standard for establishing and improving a quality-management system.

ISO/IEC/IEEE 29119: A family of standards addressing software-testing concepts, processes, documentation, and techniques.

CMMI: A framework for improving and appraising organizational process capability.

TMMi: A maturity framework focused on improving testing processes.

Risk-based testing: Allocating test effort according to the likelihood and consequences of failure.

Shift-left: Performing quality activities earlier in the lifecycle.

Observability: The ability to understand system behavior through outputs such as logs, metrics, and traces.

Review Questions

Short Answer Questions

1. Distinguish product quality from process quality.

2. What are prevention costs and appraisal costs?

3. Name four ISO/IEC 25010 product-quality characteristics.

4. What is the primary focus of ISO 9001?

5. How does TMMi differ from CMMI?

Long Answer Questions

1. Explain prevention-versus-detection theory and relate it to the cost of quality.

2. Discuss how ISO/IEC 25010 can be converted into measurable quality requirements.

3. Compare the purposes of ISO 9001, ISO/IEC/IEEE 29119, and IEEE quality guidance.

4. Explain the relationship between CMMI and TMMi in organizational improvement.

5. Discuss how shift-left, shift-right, automation, and observability contribute to contemporary quality engineering.

Analytical / Application Questions

1. A team has high code coverage but frequent production failures caused by unclear requirements and service interactions. Using the theories in this chapter, diagnose the problem and propose an improvement plan.

2. For a healthcare appointment platform, prioritize five ISO/IEC 25010 characteristics and propose one measurable quality requirement for each.

3. An organization wants certification mainly to advertise that its software is defect-free. Critically evaluate this claim and recommend a more responsible quality-governance approach.

22. Multiple Choice Questions with Answers

Question 1

Which situation best illustrates prevention rather than detection?

A. Running a regression suite after deployment

B. Reviewing an ambiguous payment requirement before coding

C. Investigating a customer-reported failure

D. Monitoring production error logs

Correct Answer: B. Reviewing an ambiguous payment requirement before coding

Question 2

Which item is classified as an external failure cost?

A. Developer training

B. Architecture review

C. Production refunds after a software failure

D. Pre-release test execution

Correct Answer: C. Production refunds after a software failure

Question 3

A requirement states that 95% of API responses must complete within two seconds under a defined workload. Which ISO/IEC 25010 characteristic is primarily being measured?

A. Performance efficiency

B. Portability

C. Compatibility

D. Maintainability

Correct Answer: A. Performance efficiency

Question 4

What is the principal focus of ISO 9001 in a software organization?

A. Prescribing a specific automated testing tool

B. Defining programming-language syntax

C. Establishing a quality-management system

D. Guaranteeing that every release is defect-free

Correct Answer: C. Establishing a quality-management system

Question 5

Which framework is specifically focused on testing-process maturity?

A. ISO 9001

B. TMMi

C. ISO/IEC 25010

D. CMMI-DEV only

Correct Answer: B. TMMi

Question 6

Why is code coverage alone an inadequate measure of software quality?

A. Coverage cannot be calculated for automated tests

B. High coverage proves that requirements are correct

C. Coverage may not demonstrate meaningful assertions or risk coverage

D. Coverage measures only hardware performance

Correct Answer: C. Coverage may not demonstrate meaningful assertions or risk coverage

Question 7

A team uses threat modelling during design, contract tests in continuous integration, and production resilience testing. Which interpretation is most accurate?

A. It combines prevention, early detection, and operational feedback

B. It relies exclusively on final acceptance testing

C. It applies ISO 9001 as a programming standard

D. It eliminates the need for human judgement

Correct Answer: A. It combines prevention, early detection, and operational feedback

Question 8

What is a major risk of treating quality standards as rigid templates?

A. They make all defects impossible to detect

B. Teams may optimize for documentation or compliance instead of meaningful quality

C. They prevent requirements from being written

D. They eliminate the need for process measurement

Correct Answer: B. Teams may optimize for documentation or compliance instead of meaningful quality

Question 9

Which practice most directly supports shift-right quality engineering?

A. Requirements inspection before design

B. Static analysis during coding

C. Canary deployment with operational monitoring

D. Writing a coding standard

Correct Answer: C. Canary deployment with operational monitoring

Question 10

In the checkout case, idempotency keys primarily helped address which quality concern?

A. Preventing duplicate effects during retries

B. Improving interface aesthetics

C. Increasing source-code portability

D. Reducing training costs

Correct Answer: A. Preventing duplicate effects during retries

Software Testing and Quality Assurance
Chapter 2 of 14