Unit V: Software Quality and Risk Management.
I’ll include:
Definitions & explanations
Flowcharts/diagrams (in text and will suggest visuals)
Examples where needed
1. McCall Quality Factors
Purpose: Defines quality based on factors important to users
and developers.
🔹 Categories of Factors:
Factor
Description Example
Category
Correctness, Reliability, Software performs its
Product
Efficiency, Integrity, intended function
Operation
Usability efficiently and securely
Product Maintainability,
Easy to fix or adapt
Revision Flexibility, Testability
Product Portability, Reusability,
Easy to move or reuse
Transition Interoperability
✅ Example:
Usability: An ATM interface should be easy to navigate.
📊 Suggested Diagram:
A table or flowchart with three categories → list factors
under each.
2. ISO and CMM Models
🔹 ISO 9001 (Quality Management Standard)
Focuses on process quality.
Emphasizes documentation, audits, continuous
improvement.
🔹 CMM (Capability Maturity Model):
Five levels of process maturity:
1. Initial: Ad hoc, chaotic.
2. Repeatable: Basic project management.
3. Defined: Standard processes established.
4. Managed: Quantitative performance measurement.
5. Optimizing: Continuous process improvement.
📊 Suggested Diagram:
Flowchart with five blocks (levels) → each labeled with key
characteristics.
3. Tools and Techniques for Quality Control
Inspection
Walkthroughs
Peer Reviews
Checklists
✅ Example:
Code review checklist for identifying common bugs.
4. Pareto Analysis
80/20 Rule: 80% of defects come from 20% of causes.
✅ Example:
If login and payment modules cause most bugs, focus
improvements there.
📊 Suggested Diagram:
Bar chart with descending bars → highlight top 20%.
5. Statistical Sampling
Select a representative subset for inspection/testing.
Types: Random, Stratified, Systematic.
✅ Example:
Test 20 randomly selected software builds out of 100.
6. Quality Control Charts & Seven Run Rule
Control Charts: Plot metrics (like defects) over time.
Seven Run Rule: 7+ points in a row on one side of
average → not random, signals issue.
📊 Suggested Diagram:
A control chart with upper/lower limits and a “7-run”
example line.
7. Modern Quality Management
Focuses on customer satisfaction, continuous improvement,
and process orientation.
Key Concepts:
TQM (Total Quality Management)
Six Sigma (reduce defects)
Kaizen (continuous improvement)
8. Risk Management
🔹 Importance:
Mitigates potential loss in software projects.
🔹 Types:
Technical
Operational
Financial
External
🔹 Risk Management Process:
1. Risk Identification
2. Risk Analysis
3. Risk Evaluation
4. Risk Response
5. Risk Monitoring
📊 Suggested Diagram:
Risk Management Lifecycle (circular or sequential flow)
9. Risk Analysis and Assessment
Qualitative: Probability x Impact (High, Medium, Low)
Quantitative: Numeric analysis (Expected Monetary
Value)
✅ Example:
Risk of data breach: Probability = High, Impact = High →
Critical
10. Risk Strategies
Avoidance: Don’t take the risk
Mitigation: Reduce impact/probability
Transfer: Insurance, outsourcing
Acceptance: Acknowledge and monitor
11. Risk Monitoring and Control
Track known risks
Identify new ones
Re-evaluate impacts and strategies
✅ Tools:
Risk registers
Dashboards
Weekly risk review meetings
12. Risk Response and Evaluation
Implement mitigation plans
Evaluate effectiveness post-response
13. Software Reliability
Definition: Probability that software performs without
failure.
🔹 Reliability Metrics:
MTTF (Mean Time to Failure)
MTTR (Mean Time to Repair)
Availability = MTTF / (MTTF + MTTR)
14. Reliability Growth Modeling
Tracks improvements in reliability over testing phases.
Models:
Jelinski-Moranda
Goel-Okumoto
15. Use Case: Defect Tracking and Management
Tools used:
Jira – Bug tracking and project management.
Bugzilla – Open-source defect tracking.
GitHub Issues – Lightweight tracking system.
✅ Example Workflow:
1. Defect logged
2. Assigned to developer
3. Fix applied and retested
4. Closed
16. Test Automation Tools
Tool Purpose Language Support
Jira Issue & test case management Web-based
Selenium Automates browsers Java, Python, C#
Appium Automates mobile apps Java, JS, Python
JUnit Unit testing for Java apps Java only
✅ Example:
Selenium script to test login form:
java
CopyEdit
driver.findElement(By.id("username")).sendKeys("admin");
driver.findElement(By.id("password")).sendKeys("admin123");
driver.findElement(By.id("login")).click();