Part II · The Life Cycle, Audited

15 Reliability of Nondeterministic Systems

BreaksLab: Reliability of your systemFeeds M6P10

Load-bearing assumption

The program is fixed between fixes; execution is deterministic; failures are independent

Verdict: Breaks

The fault-counting reliability growth model assumes a fixed program, deterministic execution and independent failures. Regeneration violates the first, model-calling components violate the second, and layered checks built on one model leave the third untested; frozen agent-written code still fits.

Learning objectives

After this chapter you should be able to:

  1. Compute failure intensity, MTTF and R(t), and fit a Goel–Okumoto growth model to weekly defect counts, with the uncertainty in expected remaining faults.
  2. Build an operational profile and explain why reliability is measured against use.
  3. State the three load-bearing assumptions of reliability growth modeling and distinguish failing to meet one from being new.
  4. Explain how regeneration, model-calling components and correlated verification layers violate them, and where the classical models still apply.
  5. Estimate the reliability of a nondeterministic component from repeated trials, with a Wilson interval and the rule of three.
  6. Measure what a second verification layer adds, using seeded defects, incremental detection, the joint miss rate and a correlation.

Opening case

A composite case, not a real engagement.

Marcus and Aiko, who maintain Dispatch (Chapter 14), are two months from a release. They have rebuilt the customer-notification module with coding agents. At each stage of a delivery the system sends the customer a short message, which the module composes by calling a large language model (LLM).

The chapter continues from here.

What the chapter covers

  1. 15.1 The classical method
    • 15.1.1 What reliability means
    • 15.1.2 The operational profile
    • 15.1.3 Reliability growth: the Goel–Okumoto model
    • 15.1.4 Service levels and what the classical models got right
  2. 15.2 The assumption it depends on
  3. 15.3 What agents change
    • 15.3.1 What does not change: frozen code
    • 15.3.2 Violation 1: components that call models
    • 15.3.3 Violation 2: churn
    • 15.3.4 Violation 3: layers that share blind spots
    • 15.3.5 The saturation critique
    • 15.3.6 How strong is the evidence?
  4. 15.4 The verdict
  5. 15.5 What replaces it: reliability measured per baseline
    • 15.5.1 Repeated-trial reliability with confidence intervals
    • 15.5.2 Churn-aware growth modeling
    • 15.5.3 Measuring what a second layer adds
    • 15.5.4 The same example, side by side
  6. 15.6 Lab: Reliability of your system
  7. 15.7 What would make this verdict false

Lab and prediction

Lab: Reliability of your system

Feeds milestone M6. How the labs fit the project

The lab tests this prediction from the working paper the book grows from (Smith 2026a):

  • P10 Verification layers built on the same model show correlated failures, so observed failure rates exceed p^k

This chapter's own prediction: A growth-model forecast fitted on one baseline undershoots the defect count observed after a regeneration by more than its Poisson limit allows.

A result that contradicts a prediction, honestly reported, is a result. You are graded on accurate records and reasoned interpretation, not on agreeing with the book.

Summary

  • Reliability is the probability of failure-free operation in a stated environment: R(t) = e^(−λt) and MTTF = 1/λ for constant λ. The Goel–Okumoto model fits the fall in failure intensity during testing; on the worked data, about 90 faults, about 20 remaining, with a wide interval.
  • Load-bearing assumptions: the program is fixed between fixes; execution is deterministic; failures are independent. The verdict rests on regeneration, model-calling components and same-model layers not meeting them, not on their being new.
  • Evidence: frozen agent-written code still fits. Nondeterminism of model calls is measured for code generation; correlated failure is measured classically and projected for AI review layers; churn is structural.
  • Compounding and saturation: five steps at 95% succeed 77% of the time; 20 items at p = 0.1 give an 88% chance of at least one defect.
  • Verdict: breaks for model-calling components, fits that span regeneration, and p^k claims about untested layers; it holds for frozen deterministic code on a fixed baseline.
  • Replacement: repeated-trial estimates with Wilson intervals and the rule of three; growth models scoped to one baseline; a measured joint miss rate, correlation and incremental detection for each layer. A correlated layer still added 40% detection while p^k failed.

Key terms

Operational profile
the operations a system performs and the probability of each in use (Musa 1993).Also used in 13, 16
Goel–Okumoto model
nonhomogeneous Poisson growth model, m(t) = a(1 − e^(−bt)); a is expected total faults, b the per-fault detection rate.
Wilson interval, rule of three
an interval for a proportion with good coverage at small n; with no failures in n trials, the 95% upper bound on the failure probability is about 3/n.Also used in 13, 17
Baseline-scoped fit
a growth-model fit restricted to the period when program, model, prompts and configuration were unchanged.
Joint miss rate, φ
the fraction of defects missed by every layer; the correlation between two layers' miss indicators.Also used in 1, 11, 12, 16, 18
Incremental detection
the share of one layer's misses that another layer catches (Chapter 16, condition 1).Also used in 1, 5, 7, 9, 11, 12, 16, 18

Connections

Where this chapter and another point to each other most often.

See it on the map

Further reading

  • Musa (1993), "Operational Profiles in Software-Reliability Engineering." Why reliability is measured against use.
  • Goel and Okumoto (1979). The model of Section 15.1.3 in its original form. Read the assumptions first.
  • Knight and Leveson (1986). The classic experiment on independence in redundant software. How would you replicate it with agent-written versions?
  • Yao et al. (2024). The source of pass^k: a system that succeeds once versus one that succeeds every time.