Building quality into the process, rather than testing it in at the end.
π Where this lives: the difference between QA and testing is the difference between a hospital's infection-control policy and its diagnostic lab. Testing finds defects that exist; quality assurance changes the process so fewer are created. That is why mature organisations invest in code review standards, definition-of-done checklists and CI gates rather than simply hiring more testers β you cannot inspect quality into a product at the end, a lesson manufacturing learned decades before software did. Search "quality cannot be inspected into a product Deming".
What quality means, and the two activities
SOFTWARE QUALITY is conformance to explicitly stated functional
and performance requirements, explicitly documented development
standards, and implicit characteristics that are expected of all
professionally developed software. (Pressman)
THE DEFINITION HAS THREE PARTS, and each failure mode is
distinct:
Β· fails the STATED REQUIREMENTS β a functional defect
Β· fails the DOCUMENTED STANDARDS β a process failure;
the code works but is
unmaintainable
Β· fails the IMPLICIT EXPECTATIONS β the most dangerous,
because nobody wrote
them down. Ease of
use, maintainability,
not corrupting data
on a crash.
THE QUALITY DILEMMA: if you produce a software system with
terrible quality you lose because no-one will buy it. If you
spend infinite time and effort achieving perfect quality you
lose because it will never ship. Somewhere between is a "good
enough" level, and identifying it is a judgement, not a
formula.
SQA is an UMBRELLA ACTIVITY applied throughout the software
process. It encompasses:
Β· a quality management approach
Β· effective software engineering technology (methods and
tools)
Β· formal technical reviews applied throughout the process
Β· a multi-tiered testing strategy
Β· control of software documentation and the changes made to
it
Β· a procedure to ensure compliance with software development
standards
Β· measurement and reporting mechanisms
QUALITY CONTROL vs QUALITY ASSURANCE β the distinction
examiners ask for:
QUALITY CONTROL the series of inspections, reviews and
tests used throughout the process to
ensure each work product meets its
requirements. Includes a FEEDBACK LOOP to
the process that created the work product.
β PRODUCT-oriented, DETECTS defects
QUALITY ASSURANCE consists of the auditing and reporting
functions of management. Provides
management with the data necessary to be
informed about product quality.
β PROCESS-oriented, PREVENTS defects
COST OF QUALITY β the standard breakdown, and the argument for
prevention:
PREVENTION COSTS quality planning, formal technical
reviews, test equipment, training
APPRAISAL COSTS in-process and inter-process
inspection, equipment calibration and
maintenance, testing
FAILURE COSTS
INTERNAL FAILURE rework, repair, failure mode analysis
β found before shipping
EXTERNAL FAILURE complaint resolution, product return
and replacement, help-line support,
warranty work β found by the customer
THE ARITHMETIC OF PREVENTION: recall the Boehm ratios β a
defect found in review costs ~1 unit and after release ~100.
So spending 10 units on prevention to avoid one released
defect is a 10Γ return, and prevention is where the money
belongs.
SQA activities and the worked cost case
SQA GROUP ACTIVITIES (Pressman's list):
1. PREPARES AN SQA PLAN for the project, identifying
evaluations, audits and reviews, standards applicable,
error reporting procedures, and the documents produced.
2. PARTICIPATES IN THE DEVELOPMENT of the project's software
process description, reviewing it for compliance with
organisational policy and standards.
3. REVIEWS ENGINEERING ACTIVITIES to verify compliance with the
defined process.
4. AUDITS DESIGNATED WORK PRODUCTS to verify compliance with
those defined as part of the process.
5. ENSURES DEVIATIONS are documented and handled according to
a documented procedure.
6. RECORDS ANY NON-COMPLIANCE and reports to senior
management.
SQA is deliberately given a reporting line INDEPENDENT of the
project manager, because otherwise schedule pressure would
always win over quality reporting.
WORKED β the economics of a review programme, computed.
A 40 KLOC project. Historical data:
defects introduced β 20 per KLOC β 800 defects
review finds β 60% of defects present
cost to fix in review β 1.5 person-hours
cost to fix in system testβ 9 person-hours
cost to fix after release β 45 person-hours
review effort β 3 person-hours per KLOC
WITHOUT REVIEWS β assume testing catches 80% of the 800:
found in test = 640 Γ 9 = 5,760 person-hours
escaped to field = 160 Γ 45 = 7,200 person-hours
review cost = 0
TOTAL = 12,960 person-hours
WITH REVIEWS:
review effort = 40 Γ 3 = 120 person-hours
found in review = 800 Γ 0.60 = 480 defects
480 Γ 1.5 = 720 person-hours
remaining = 320 defects
found in test = 320 Γ 0.8 = 256 β 256 Γ 9
= 2,304 person-hours
escaped = 64 Γ 45 = 2,880 person-hours
TOTAL = 6,024 person-hours
SAVING = 12,960 β 6,024 = 6,936 person-hours, a 53.5%
reduction, for an investment of 120 hours of review effort.
RETURN ON THE REVIEW INVESTMENT = 6,936 / 120 = 57.8Γ
AND NOTE WHERE THE SAVING COMES FROM: escaped defects fell
from 160 to 64, so the biggest single component is field
failures avoided β the most expensive category. That is the
quantitative case for reviews, and it is why they are the
first SQA activity any organisation should adopt.
Standards, and the difference between kinds
SOFTWARE STANDARDS are important because they:
Β· encapsulate best practice, avoiding repetition of past
mistakes
Β· provide a framework for defining what quality means in a
particular setting β a definition of "done"
Β· assist CONTINUITY when work is passed between people, and
reduce the learning effort for new staff
PRODUCT STANDARDS apply to the software product being
developed. Examples: a document standard such as the structure
of a requirements document; a documentation standard such as a
comment header for a class definition; a coding standard
defining how a programming language is to be used.
PROCESS STANDARDS define the processes to be followed during
development. Examples: definitions of specification, design
and validation processes; a description of the documents to be
written at each stage; how a review is to be conducted.
THE PROBLEM WITH STANDARDS, stated honestly: software
engineers often regard standards as bureaucratic and
irrelevant, particularly when they are not updated. To avoid
this:
Β· INVOLVE PRACTITIONERS in developing product standards β
they must understand the rationale
Β· REVIEW AND MODIFY standards regularly to reflect changing
technologies
Β· PROVIDE TOOL SUPPORT β a standard enforced by a linter or
a formatter costs nothing to follow; a standard enforced by
a document nobody reads costs arguments in every review
QUALITY PLANS β a project-specific plan setting out the
desired product qualities and how they are assessed, selecting
those organisational standards that are appropriate. Its
structure:
product introduction Β· product plans Β· process
descriptions Β· quality goals Β· risks and risk management
A quality plan should be SHORT. If it is not read, it has no
effect.
The QA/QC distinction is the one to have crisp: quality control detects defects in the product; quality assurance changes the process so fewer are created. Everything else in this unit β reviews, standards, metrics, CMMI β is one or the other, and knowing which tells you what it is for.
π Go further: the modern engineering form of "build quality in" is the CI quality gate: a pull request cannot merge unless tests pass, coverage does not fall, the linter is clean, no new high-severity static-analysis finding appears, and a human has approved. That is a quality plan expressed as executable policy rather than a document β the standard is enforced by a machine at the moment of the change, which is exactly the "provide tool support" recommendation taken to its conclusion. Search "quality gate branch protection required checks".
π‘ Exam angle: give Pressman's definition of software quality with its three parts and note that implicit requirements are the dangerous ones. Distinguish quality assurance (process-oriented, prevention, auditing and reporting) from quality control (product-oriented, detection, with a feedback loop). List the SQA group activities and the elements of the cost of quality (prevention, appraisal, internal failure, external failure). Distinguish product standards from process standards with examples of each, and state why engineers resist standards and what to do about it.
Syllabus points
SQA activities
Create a free account to tick topics off, take notes as you read, watch the video lessons and get a day-by-day study plan built around your exam date.
Related topics in Testing, Cost Estimation, Quality & Configuration Management