Software Project ManagementUnit 711 min read
Software Quality Management: Models, Metrics, and Assurance
Unit 7 of Software Project Management explores quality management frameworks (ISO/IEC 9126, CMMI), defect prevention techniques, testing strategies (V-model, agile testing), and metrics (defect density, cyclomatic complexity). It covers quality assurance (QA) vs. quality control (QC), process improvement models, and re
TAKEAWAYS:
- Quality management in software ensures fitness for use through systematic planning, execution, and evaluation of quality activities.
- The V-model integrates testing phases with development phases to catch defects early, while agile testing adapts to iterative development.
- Metrics like defect density and cyclomatic complexity quantify quality and guide process improvements.
- ISO/IEC 9126 and CMMI provide standardized frameworks for measuring and improving software quality.
- Quality Assurance (QA) focuses on preventing defects via processes, while Quality Control (QC) focuses on detecting defects via testing.
- Real-world examples like eSewa’s transaction reliability and Ncell’s app stability demonstrate how quality management impacts user trust and business success.
Core Concepts of Software Quality Management
Software quality management (SQM) ensures that software products meet user requirements, business goals, and technical standards. It is not just about fixing bugs but about preventing defects, improving processes, and delivering value. SQM is divided into two key areas:
- Quality Assurance (QA): Proactive activities to prevent defects (e.g., reviews, process improvements).
- Quality Control (QC): Reactive activities to detect defects (e.g., testing, inspections).
1. Quality Assurance (QA) vs. Quality Control (QC)
mindmap
root((Software Quality Management))
QA["Quality Assurance (Preventive)"]
--- "Process-Oriented"
--- "Activities: Reviews, Audits, Training, Process Improvement"
--- "Goal: Build quality into the product"
QC["Quality Control (Detective)"]
--- "Product-Oriented"
--- "Activities: Testing, Inspections, Metrics"
--- "Goal: Detect and remove defects"Key Difference:
| Aspect | Quality Assurance (QA) | Quality Control (QC) |
|---|---|---|
| Focus | Processes and standards | Product and deliverables |
| Timing | Throughout development | At milestones (e.g., after coding) |
| Example | Code reviews, training developers | Unit testing, system testing |
| Outcome | Prevents defects | Identifies and fixes defects |
2. Software Quality Models
A. ISO/IEC 9126 Standard
The ISO/IEC 9126 standard defines six quality characteristics of software:
Example in Nepal:
- eSewa’s reliability (Characteristic: Reliability) ensures that online payments do not fail during peak hours (e.g., Dashain/Tihar).
- Ncell’s app usability (Characteristic: Usability) ensures that users can easily navigate features like mobile data top-ups.
B. CMMI (Capability Maturity Model Integration)
CMMI is a process improvement framework that helps organizations mature their software development processes. It has five maturity levels:
stateDiagram-v2
[*] --> Level1: Initial
Level1 --> Level2: Managed
Level2 --> Level3: Defined
Level3 --> Level4: Quantitatively Managed
Level4 --> Level5: Optimizing
state Level1 {
[*] --> "Chaotic, ad-hoc processes"
}
state Level2 {
[*] --> "Basic project management"
}
state Level3 {
[*] --> "Standardized processes"
}
state Level4 {
[*] --> "Process metrics and control"
}
state Level5 {
[*] --> "Continuous improvement"
}
note right of Level1: "Processes are reactive"
note right of Level2: "Project management exists"
note right of Level3: "Engineering discipline"
note right of Level4: "Quantitative process control"
note right of Level5: "Optimizing processes"Example in Nepal:
- Nepal Rastra Bank (NRB) follows CMMI Level 3 for its core banking systems to ensure stability and compliance.
- F1Soft (Nepal’s IT company) uses CMMI to improve its software development for clients like NTC and NEPSE.
3. Quality Metrics
Metrics quantify software quality and help in decision-making. Key metrics include:
A. Defect Density
- Definition: Number of defects per size of software (e.g., defects per 1,000 lines of code).
- Formula:
- Example:
- A Daraz order processing system has 50 defects in 10,000 LOC.
- Defect Density = 50 / 10 = 5 defects per 1,000 LOC.
- If the target is <3 defects/1K LOC, the system needs improvement.
B. Cyclomatic Complexity
- Definition: Measures logical complexity of code (more branches = higher complexity).
- Formula:
- = Number of edges (decision points)
- = Number of nodes (statements)
- = Number of connected components (usually 1)
- Example:
- A bank loan approval system has a function with:
- 10 statements ()
- 12 edges ()
- 1 component ()
- Complexity = 12 - 10 + 2 = 4 (Moderate complexity; refactoring may be needed).
- A bank loan approval system has a function with:
4. Testing Strategies for Quality Assurance
A. V-Model (Verification and Validation)
The V-model links testing phases with development phases to ensure early defect detection. Example in Nepal:
- Ncell’s billing system uses the V-model to test:
- Unit Testing: Each module (e.g., recharge, data plan) is tested individually.
- System Testing: All modules are integrated to check if a user can smoothly switch from prepaid to postpaid.
B. Agile Testing
In agile development, testing is iterative and continuous, aligned with sprints.
sequenceDiagram
participant Dev as Developer
participant Tester as Tester
participant CI as CI/CD Pipeline
loop Per Sprint
Dev->>CI: Commits Code
CI->>Tester: Runs Automated Tests
alt Defect Found
Tester->>CI: Reports Defect
CI->>Dev: Fixes Defect
else No Defect
CI->>Dev: Approves Code
end
CI->>Dev: Merges to Main
endExample in Nepal:
- Pathao’s ride-hailing app uses agile testing to:
- Test new features (e.g., Pathao Pay) in short sprints.
- Use automated UI tests to ensure the app works on Android and iOS.
5. Defect Prevention Techniques
| Technique | Description | Example |
|---|---|---|
| Code Reviews | Manual inspection of code by peers | GitHub pull requests in open-source projects |
| Static Analysis | Automated code scanning for potential bugs | SonarQube detects vulnerabilities in eSewa’s payment gateway |
| Inspections | Formal review of documents (e.g., requirements) | NTC’s network upgrade plans reviewed by experts |
| Pair Programming | Two developers work together to write code | F1Soft’s agile teams reduce bugs in NEPSE’s trading software |
| Automated Testing | Scripts to test functionality (unit, integration) | Selenium tests for Daraz’s checkout flow |
## In the Real World
eSewa’s Transaction Reliability
- Quality Model Used: ISO/IEC 9126 (Reliability)
- How? eSewa ensures 99.9% uptime during festivals by:
- Load testing (QC) to handle 10,000+ transactions/minute.
- Code reviews (QA) to prevent payment failures.
- Metric: Defect Density < 1 per 1,000 LOC in critical modules.
Ncell’s App Stability
- Quality Model Used: CMMI Level 3
- How? Ncell’s app avoids crashes by:
- Automated UI testing (Selenium) for Android/iOS compatibility.
- Daily builds and smoke testing to catch regressions.
- Example: During Dasain, Ncell’s app handled 500K+ logins/hour without crashes.
Daraz’s Order Fulfillment
- Testing Strategy: V-Model + Agile Testing
- How? Daraz ensures orders are processed correctly by:
- Unit testing each module (inventory, payment, shipping).
- Integration testing to check if a user’s order flows from cart → payment → dispatch.
- Metric: 99.8% order accuracy (measured via defect density in order processing code).
## Exam Tip
Define Key Terms Clearly
- Always start with definitions (e.g., "Quality Assurance is...").
- Example answer start:
*"Software Quality Management (SQM) is a systematic approach to ensure software meets specified requirements and user expectations. It includes Quality Assurance (QA) and Quality Control (QC)."*
Compare Models in Tables
- Examiners love structured comparisons (e.g., V-model vs. Agile Testing).
- Use bullet points or tables for clarity.
Use Real-World Examples
- Link concepts to Nepalese companies (eSewa, Ncell, Daraz).
- Example:
"Like how eSewa uses load testing to prevent failures during Dashain, software projects should implement stress testing in QC."
Calculate Metrics Step-by-Step
- For defect density or cyclomatic complexity, show formulas and substitutions.
- Example:
"Given 80 defects in 20,000 LOC, defect density = 80/20 = 4 defects per 1,000 LOC."
Avoid Vague Statements
- ❌ "Testing is important."
- ✅ "System testing in the V-model ensures that integrated modules (e.g., Ncell’s billing + recharge system) work together as intended."
Diagrams Score Extra Marks
- Draw mindmaps (ISO 9126), flowcharts (V-model), or state diagrams (CMMI levels).
- Label every component clearly.
Final Note: Software quality is not a phase but a culture. Companies like eSewa and Ncell succeed because they embed QA/QC in every stage of development. For exams, focus on models (ISO 9126, CMMI), metrics (defect density), and testing strategies (V-model, agile)—these are high-weightage topics!
Based on the TU BCA syllabus for Software Project Management (CACS407), unit 7.
Discussion
Loading…