Flaky Test Quarantine: Owners, Expiry, and Nonblocking CI Results
A confirmed flaky test can block unrelated changes without providing a dependable release signal. Removing that obstruction is reasonable only if someone still sees…
A test manager asks for more regression capacity while engineering reports expensive defect repair. If the discussion uses only the QA budget, the proposed investment looks like another cost. If it adds every bug estimate to the same engineers' recorded hours, failure costs become inflated. A cost-of-quality ledger gives both sides a shared boundary: what was spent preventing problems, evaluating quality, and responding to failures.
Cost of quality, or COQ, includes prevention, appraisal, internal failure, and external failure. Cost of poor quality, or COPQ, covers the two failure categories. Neither is a synonym for the testing department's budget. The useful question is how the mix changes, which recurring failures consume resources, and what evidence would justify the next investment.
Start with one service or product area and one reporting period. A checkout team could record monthly effort and attributable nonlabor costs across engineering, testing, operations, and support. A team-only view is also possible, but label it: missing support costs must not disappear behind a claim about the whole service.
Write down the collection rules before assigning amounts:
Keep the reporting period separate from the release cohort. A repair paid for this month may concern a defect introduced months earlier. Retaining both dates lets finance reconcile when resources were consumed while engineering investigates where the failure originated. This is a management worksheet, not a replacement for the organization's financial recognition rules.
The activity's purpose and relationship to a failure determine its category. A person's job title, the tool used, or the fact that work happened early in development does not settle the classification. Agree on ambiguous cases once and keep that convention stable across periods.
Prevention aims to stop quality problems from being introduced. Examples include training engineers to avoid a recurring defect pattern, improving requirement-writing standards, and designing a more reliable development process. The improvement work needs its own entry rather than being hidden inside a general testing allowance.
Appraisal produces evidence about quality. Planned regression evaluation, inspections that look for defects, and static or dynamic testing belong here. In the ledger below, planned maintenance that keeps the regression checks usable is also allocated to appraisal. That is the worksheet's declared convention, not a claim that every organization must classify every automation task identically.
Separate mixed activities. A design session that changes the process to prevent a class of errors differs from a review inspecting a particular design for defects. If a meeting genuinely does both, split its recorded effort into disjoint portions with a documented basis. Do not charge the full meeting to both categories.
Internal failure costs arise from defects found before customer transfer. Include the diagnosis and product repair, plus retesting performed specifically because that defect needed correction. The planned regression session that discovered the problem remains appraisal; the additional fix-specific retest is failure work.
External failure costs concern defects found after customer transfer. Incident recovery, attributable support handling, product repair, and incurred customer credits may belong here. Classify by the agreed discovery and exposure boundary, not merely by the date a developer eventually implements the fix.
A post-incident improvement can have a different purpose from recovery. Restoring service is external failure work; later training or a process redesign to prevent recurrence can be prevention. Preserve the incident reference on both records, but record different time slices. A shared incident ID is useful traceability, not permission to count the same effort twice.
This fictional ledger covers one software service for a 30-day reporting period in USD. All effort, rates, invoices, credits, and subsequent-period figures are assumed teaching inputs, not customer observations, market rates, or measured testing outcomes. Labor uses illustrative fully loaded hourly rates; the ledger values consumed resources rather than claiming reduced payroll payments.
Assign each entry to exactly one category. Planned evaluation belongs to appraisal; diagnosis, repair, and fix-specific retesting caused by a pre-release defect belong to internal failure. Separate incident-response work from later prevention work, and never add a defect ticket estimate on top of the same recorded hours.
Each row below is one cost entry. The compute allocation excludes employment overhead already included in the labor rates. The credit is assumed to be incurred and recorded separately, rather than already deducted elsewhere in the same cost total.
Entry and Work | Category | Assumed Basis | Cost, USD |
|---|---|---|---|
P01: Defect-pattern training | Prevention | 6 h × $80/h | 480 |
P02: Requirement-writing standards | Prevention | 4 h × $100/h | 400 |
A01: Planned regression evaluation | Appraisal | 18 h × $60/h | 1,080 |
A02: Regression-test maintenance | Appraisal | 5 h × $80/h | 400 |
A03: Allocated test compute | Appraisal | Allocated invoice | 120 |
I01: Pre-release defect diagnosis | Internal failure | 6 h × $80/h | 480 |
I02: Pre-release product repair | Internal failure | 8 h × $100/h | 800 |
I03: Fix-specific retesting | Internal failure | 3 h × $60/h | 180 |
E01: Incident recovery and support | External failure | 10 h × $80/h | 800 |
E02: Approved customer credit | External failure | One credit | 300 |
Prevention totals $880, appraisal $1,600, internal failure $1,460, and external failure $1,100. Total COQ is $5,040: $2,480 for prevention plus appraisal and $2,560 for COPQ. These totals describe the assumed ledger, not a forecast of what testing saved.
Retain the evidence behind each line: a timesheet slice or reviewed effort record, its date, the defect or incident reference when relevant, and the approved rate or invoice allocation. A bug ticket can connect I01, I02, and I03 without becoming an additional monetary entry. Adding an estimated ticket cost of $1,460 to those same three rows would double the internal-failure total without adding any new work.
Use a parent-and-child allocation rule for summaries. If a release-level record summarizes work already represented by individual entries, mark it as a reconciliation total and exclude it from the sum. If several teams share a tool invoice, allocate the invoice once across those teams and retain the allocation basis. A tool subscription and the staff effort using it are different resources; a subscription allocation and the same full invoice are not.
For a reopened defect, record the genuinely additional investigation or repair under a new entry ID. Keep the earlier work rather than replacing it with the ticket's latest estimate. Corrections should identify the original entry and the adjustment, so the ledger remains reconstructable.
An incident with known support hours but no approved rate is unpriced, not free. A month with no support records is incomplete, not automatically a month with zero external failure. Keep an exceptions register containing the missing quantity or rate, responsible owner, collection gap, and expected resolution.
Distinguish three states: a supported zero, a known amount, and an unknown amount. For example, support can confirm that no attributable overtime was paid while still being unable to price all salaried incident effort. Those are different observations. If missing amounts can only add nonnegative costs, a known subtotal is a lower bound, but its category shares still do not describe the complete service.
Keep estimation visible too. A sampled effort allocation may be useful when detailed time tracking is unavailable, provided its method and uncertainty are recorded. Do not present that estimate as a reconciled invoice or a precise measurement. Changing collection coverage between months can create an apparent cost increase even when the underlying work has not changed.
Resource valuation and cash deserve separate interpretation. Reallocating fixed-payroll time can increase testing capacity without lowering salary payments. A refund or new contractor invoice can change cash differently. Do not add released hours and their dollar valuation as two benefits, or promise payroll savings without a supported spending change.
The actuals ledger records consumed resources and incurred failure costs. A proposal to prevent a future incident needs a separate forecast and a counterfactual: what could happen without the proposal, and how might the proposal change that exposure? Finding a defect does not reveal the incident that would otherwise have occurred.
For a separate fictional future 30-day period, assume at most one specified incident. Its conditional loss is $10,000. Assume a baseline incident probability of 0.20 and a proposed probability of 0.10 after an additional $600 of prevention and appraisal work. These probabilities, the loss, and the proposal cost are assumptions, not measured estimates from a customer system. The future period is separate from the ledger's completed reporting period.
On those assumptions, expected avoided loss is (0.20 - 0.10) × $10,000 = $1,000. Subtracting the $600 incremental proposal gives a modeled net benefit of $400. With a smaller probability change from 0.20 to 0.18, expected avoided loss is $200 and modeled net is -$400. With no probability change, avoided loss is $0 and modeled net is -$600.
The calculation illustrates sensitivity, not a guaranteed return. The loss estimate needs a defined perspective and nonoverlapping components. If it already includes support effort and customer credits, adding those same consequences again would overstate the benefit. Likewise, when comparing two testing options, include the additional work and genuinely displaced costs, not unchanged work charged against only one alternative.
Do not subtract the modeled $1,000 from recorded COQ or report it as money saved. Retain the forecast's assumptions, owner, evidence gaps, and decision date beside later observations. Some benefits may be released capacity or reduced exposure rather than changed cash. The test automation ROI worksheet develops that incremental-cost and economic-versus-cash distinction for a bounded automation investment.
A trend can help identify where to investigate, but only if the accounting boundary remains stable. Compare the same service, period length, labor-rate convention, allocation method, and collection coverage. Review changes in release activity and customer exposure alongside the category amounts. A quiet month and a major launch are not equivalent opportunities for failures.
Assume the next comparable 30-day period records prevention of $1,280, appraisal of $1,700, internal failure of $1,060, and external failure of $700. Total COQ becomes $4,740, down $300. Prevention and appraisal together rise $500 while failure costs fall $800. Both periods are fictional; the pattern is a review prompt, not evidence that the extra investment caused the reduction.
Before interpreting that pattern, ask whether the second period had fewer changes, a different risk profile, unresolved support records, or too little time for customer failures to emerge. A defect can be discovered later than the release that introduced it. Keep both a cost-by-reporting-period view and a failure-by-release-cohort view rather than forcing one to answer both questions.
Use the review to make a bounded decision:
Take the ledger to the next investment discussion with one reconciled cost boundary, a visible unknowns register, and one proposed change to evaluate. Fund or revise that change according to its purpose and evidence. A defensible cost-of-quality review explains where resources went and what remains uncertain; it does not need a universal defect multiplier or a promised ROI to support a useful decision.
A confirmed flaky test can block unrelated changes without providing a dependable release signal. Removing that obstruction is reasonable only if someone still sees…
A green automated test history can help a developer identify a safe-looking change while leaving a QA lead unable to answer a different question:…
A sprint can contain carefully estimated testing work and still overload the only person who can perform it. The missing input may be a…
Create traceable test cases, prepare release-specific test runs, and keep approved coverage current as the product changes.