Software Engineering: Comprehensive Notes on Quality Assurance and Quality Control
Categories of Quality Methods
/
Quality methods are categorized into two primary types based on their timing and intent during the production process:
Preventive Methods: These are proactive measures.
Detective Methods: These are reactive measures.
Preventive Methods (Proactive Quality Control)
Definition: Preventive methods are focused on avoiding defects before they occur. The central objective is to design processes with such precision that the occurrence of errors becomes unlikely or impossible.
Key Idea/Mantra: "Do it right the first time."
Examples of Preventive Activities:
Comprehensive training for employees to ensure they follow correct procedures.
Development and implementation of Standard Operating Procedures (SOPs).
Detailed process design and continuous improvement of existing workflows.
Rigorous risk analysis.
Quality planning conducted thoroughly before production begins.
Benefits:
Reduces wastage of time and necessary rework.
Provides long-term cost savings.
Significantly improves customer satisfaction.
Specific Contextual Examples:
Factory Setting: Designing a machine that mechanically prevents incorrect assembly is a preventive measure.
Software Engineering: Carefully reviewing requirement documentation before any coding begins is a preventive measure.
Detective Methods (Reactive Quality Control)
Definition: Detective methods are focused on identifying defects after they have already occurred but prior to the product being delivered to the customer.
Key Idea/Mantra: "Find and fix the problem."
Examples of Detective Activities:
Physical inspection of finished goods.
General product testing.
Ongoing quality checks performed during the production cycle.
Software-specific testing, such as unit testing and system testing.
Benefits:
Acts as a safeguard preventing defective products from reaching the end user.
Identifies specific weaknesses in the production process.
Provides data that helps improve future prevention efforts.
Specific Contextual Examples:
Checking products at the end of a production line to filter out defective units.
Running software test suites specifically to detect bugs.
Quality Assurance (QA)
Definition: Quality assurance is an activity (or set of activities) that establishes and evaluates the actual processes used to produce products.
Function: It is considered a staff function. Its role is to ensure the quality plan is strictly followed by managing and improving the software development process.
Scope of Activities:
Establishing requirement definition processes.
Defining testing processes and professional standards.
Standardizing coding processes.
Continuous Improvement: QA measures these established processes to pinpoint weaknesses. Once identified, these weaknesses are corrected to ensure the process improves continually.
Quality Control (QC)
Definition: Quality control is the process wherein product quality is compared against applicable standards. Actions are taken immediately when a nonconformance is detected.
Function: It is considered a line function. The work is performed within a specific process to ensure the work product conforms to requirements and standards.
Scope and Focus:
Software testing itself is explicitly defined as a Quality Control activity.
QC focuses on identifying defects within the actual products being produced.
These activities span the entire software development lifecycle, starting with requirement reviews and continuing until all testing is finalized.
The Relationship Between QA and QC
QC without QA: It is entirely possible to have Quality Control without having a Quality Assurance function. For instance, an organization may have a test team performing system testing at the end of development regardless of whether a formal QA function exists to manage the process.
Differentiating Points:
Process vs. Product: QA helps establish processes and measurement programs to evaluate those processes; QC relates to a specific product or service.
Management vs. Technical: QA is a management responsibility often performed by a staff function; QC identifies defects for the purpose of correction.
Scope: QA is concerned with products across all projects; QC is focused on a specific product line.
Hierarchy: QA is sometimes referred to as "quality control over quality control" because it evaluates if the QC mechanisms are working correctly.
Roles: QA personnel should not perform QC unless they are doing so to validate the QC process itself.
Verification: QC verifies if specific attributes are present or absent in a product.
Summary Table:
QA Focus: Process-oriented (Preventive).
QA Action: Establishes and evaluates processes.
QA Mantra: "Are we doing the right things?"
QC Focus: Product-oriented (Detective).
QC Action: Compares product to standards; finds defects.
QC Mantra: "Are we doing things right?"
Quality Terminology and Perspectives
The definition of quality directly determines the scope of software testing. Core components of quality include:
Quality is fundamentally based on customer satisfaction.
An organization must define quality clearly before it can be achieved.
Quality improvement efforts must be lead by management.
Five Perspectives of Quality:
Transcendent: Defined as exceptional or outstanding quality. It is characterized by the phrase "I know it when I see it." Example: An app that feels smooth, professional, and reliable.
Product-Based: Measured by features and technical attributes. Example: Fast performance, low bug counts, and high security.
User-Based: Defined as "fitness for use." It depends on how well the product satisfies user needs. Example: An easy-to-use banking app.
Development and Manufacturing Based: Defined as conformance to requirements. Example: A system that works exactly as described in the requirements document and follows coding standards.
Value Based: Quality defined at an acceptable cost. It balances performance against development cost and time. Example: A system delivered on time and within budget that works well.
Software Quality Gaps
Quality in Fact vs. Quality in Perception: Patrick Townsend notes that "Quality in Fact" is the supplier's view, while "Quality in Perception" is the customer's view. Discrepancies between these lead to problems.
The Producer Gap: The difference between what was specified (documented requirements and IT standards) and what was actually delivered.
The Customer Gap: The difference between what the producer delivered and what the customer actually expected.
Role of Testing: Software testing performs a significant role in closing both of these gaps.
Closing the Producer Gap: Objective is to achieve consistency, often called the "McDonald’s effect." Just as a Big Mac tastes the same globally regardless of whether a customer likes it, the IT function should produce a consistent product that matches its own standards.
Closing the Customer Gap: Requires understanding true user needs through:
Customer surveys.
Joint Application Development (JAD) sessions where producers and users negotiate requirements.
Increased user involvement and Agile development strategies.
The Cost of Quality (CoQ)
1. Prevention Costs: Resources spent before the product is built to do the job right the first time. Includes training, planning, and establishing procedures.
2. Appraisal (Assessment) Costs: Resources spent to ensure quality during development life cycle stages. Includes in-process reviews, dynamic testing, and final inspections to ensure conformance to requirements.
3. Failure Costs: Costs from defective products delivered to users or moved to production.
Internal Failure Costs: Found before deployment (rework, re-testing, delays, lack of flexibility).
External Failure Costs: Found after delivery (customer complaints, lawsuits, bad debt, revenue loss, help desk operations).
Categorization:
Costs of Control (Costs of Conformance): Prevention + Appraisal Costs. These represent "good quality."
Costs of Failure of Control (Costs of Non-Conformance): Failure Costs. These represent "poor quality."
The Iceberg Diagram (Hidden Costs of Poor Quality):
Visible Costs: Waste, returns, inspection, rejects, testing, recalls, rework.
Hidden Costs: Excessive overtime, field service expenses, late paperwork, pricing errors, planning delays, excess inventory, unused capacity, employee fluctuation, IT system costs, complaint handling, and time spent with dissatisfied customers.
Economics and Statistics of Quality
In many IT projects, the Cost of Quality can account for as much as of the overall product cost.
Distribution of Quality Costs (within the ):
Preventive Costs:
Appraisal Costs:
Failure Costs:
Quality is Free Logic: Understanding CoQ shows that identifying and eliminating problems early reduces rework and warranty costs. Thus, creating quality products does not cost money; it saves money.
Continuous Testing ROI: Applying continuous testing and effective process improvement reduces the Price of Non-Conformance (PONC) and increases Return on Investment (ROI) by following the principle of "Do It Right the First Time" (DIRFT).
Questions & Discussion
Quiz Point: Choose one thing that could be tested throughout the software development cycle? How it could be tested from your point of view?