Software Reliability — Revision Questions
Format: Explain in your own words, give brief examples
Part 1: Foundations
Q1: Fault → Error → Failure in Practice
Choose one of the following real-world failures and trace it through the full fault → error → failure chain:
- CrowdStrike 2024 (8.5M devices bricked)
- Meta/Facebook 2021 (6-hour global outage)
- Boeing 737 MAX (MCAS system, 346 deaths)
For your chosen case: (a) identify the fault (what was wrong in the design/code), (b) describe the error (what incorrect internal state occurred), and (c) explain the failure (what users observed).
Q2: Hardware vs Software Reliability
Explain why the “bathtub curve” (infant mortality → useful life → wear-out) applies to hardware but not to software.
What does the software reliability curve look like instead, and why?
Part 2: Failure Severity Classification
Q3: Define FSC for a Scenario
You are the quality lead for a hospital patient portal that allows patients to view test results, book appointments, and message their doctors.
Define a 4-class Failure Severity Classification for this system. For each class, provide:
- The severity definition
- A concrete failure example
- Which FSC criterion you chose (cost, capability, or human life) and why
Part 3: Failure Intensity Objectives
Q4: Calculate FIO from Availability
A payment processing system requires 99.9% availability. Average downtime per failure is 2 minutes (0.033 hours).
Using the exact formula, calculate:
- The maximum allowed failure intensity (λ)
- The MTTF
- How many failures per month (720 hours) this allows
Q5: When Metrics Mislead
Explain a scenario where:
- Failure density (failures per KLOC) makes a module look safe, but failure intensity reveals a serious problem
- Failure intensity looks acceptable, but the system is actually unreliable for users
Part 4: Fault Tolerance Strategies
Q6: Prevention vs Tolerance
Compare fault prevention and fault tolerance as strategies for meeting FIO.
For each, explain: (a) when it is more cost-effective, (b) give a concrete software example, and (c) identify its main limitation.
Q7: Backward Recovery and the Domino Effect
Explain backward recovery and the domino effect using the following scenario:
Service A processes an order, sends a “ship item” message to Service B, then fails.
What happens when Service A rolls back? Why is this called the “domino effect”? How would forward recovery handle this differently?
Q8: SRGM Release Decision
A system under test has the following Goel-Okumoto parameters:
- a = 80 faults (total expected)
- b = 0.03 per week (detection rate per fault)
The FIO target is 1.0 failure per week.
- What is the initial failure intensity λ(0)?
- After 20 weeks of testing, what is λ(20)?
- How many total weeks of testing are needed to reach the FIO?
- How many faults will have been found by release time?
Part 5: Redundancy & Independence
Q9: Why Independence Fails
Knight & Leveson’s 1986 experiment found 29× more coincident failures than the independence assumption predicts.
- Describe the experimental setup (what was tested, how many versions, how many test cases)
- List the three causes of correlated failures they identified
- Explain why this result is devastating for the theoretical reliability claims of N-version programming
Q10: Voting System Reliability
Three independently developed versions have individual reliability R_c = 0.95.
- Calculate the system reliability with majority voting (2-of-3)
- Calculate the system reliability with a single version (no redundancy)
- Now assume failures are NOT independent: 10% of failures are coincident (all 3 fail together). Re-estimate the effective system reliability.
Part 6: SLO & Error Budgets
Q11: Error Budget Calculation
A video streaming service has:
- SLO: 99.95% availability
- Monthly traffic: 50,000,000 requests
- Current month’s incidents: two outages totaling 8 minutes, plus a degraded-quality period causing 5,000 errors
Calculate:
- The monthly error budget (in requests and in minutes)
- How much budget has been consumed
- What action should the team take?
Q12: FIO vs SLO — Same Concept, Different Phase
Explain how Musa’s Failure Intensity Objective (1990s) and Google’s Service Level Objective (2010s) represent the same fundamental concept applied in different contexts.
For each of the following pairs, explain the equivalence:
- FIO ↔ SLO
- Failure intensity λ(t) ↔ Error rate SLI
- “Just right” reliability ↔ Error budget
Topics Covered
| Topic | Questions |
|---|---|
| Fault-Error-Failure Chain & Real-World Failures | Q1, Q2 |
| Failure Severity Classification | Q3 |
| Failure Intensity Objective & Availability | Q4, Q5 |
| Fault Tolerance Strategies | Q6, Q7 |
| Software Reliability Growth Models | Q8 |
| Redundancy, Voting & Independence | Q9, Q10 |
| SLO & Error Budgets | Q11, Q12 |