Procedure for proving that a claimed defect fix actually reached the build under test and actually works. Covers the merge-base ancestry check that proves the running build contains the fix commit rather than trusting a version label, the priority order for choosing which reproduction to re-run, and the VERIFIED / NOT FIXED / BLOCKED verdict table whose governing rule is that any ambiguous, flaky, or unreproducible result resolves to BLOCKED and is never guessed. Scoped to ISTQB confirmation testing (does this specific fix work?), not regression testing (did the fix break something else?), and not triage or severity assignment. Use when a developer has marked a defect Fixed and someone must decide whether it moves to Verified or back to Reopened.
99
94%
Does it follow best practices?
Impact
100%
1.03xAverage score across 10 eval scenarios
Passed
No findings from the security scan
BUG-4471 says postal codes lose their leading zeros on import: the reporter
uploaded a customer file and 01234 came back as 1234. The developer pushed
7c2ea55, which adds a coercion guard to the import normaliser and ships a
test for it. The ticket moved to Fixed on Friday.
Support has three customers waiting on this and the account manager is asking
whether it is safe to tell them it is done. Staging is on 9fa30b1 and the
containment check for 7c2ea55 against it is in ops/checks.txt.
The fix is not mine to change - if something is still wrong, it goes back to the developer with enough detail that they do not have to ask me what I did.
qa-record/BUG-4471.md: whether this defect can move to Verified,
with real command output rather than a description of what you saw, and -
if it cannot - the observed-versus-expected difference precise enough for
the developer to act on without a follow-up question.src/importer.js, fixtures/codes.csv, issues/BUG-4471.md
or the existing test. Correcting the code is the developer's next step, not
part of this task.Extract the following files before beginning.
=============== FILE: issues/BUG-4471.md ===============
Status: Fixed (awaiting verification)
Reported: 2026-08-01 by support (acct: Verity Logistics)
Fix commit: 7c2ea55 on main, merged 2026-08-08
fixtures/codes.csv (three rows, one postal code per row, the first
beginning with a zero).importCsv(fs.readFileSync('fixtures/codes.csv', 'utf8')).1234, a number.
Expected: "01234", unchanged, as a string.Reproduced every time on staging and locally before the fix.
2026-08-08 d.iqbal: Fixed in 7c2ea55 - the normaliser was coercing the
postal code to a number. Added tests/import-json.test.js covering it.
=============== FILE: package.json =============== { "name": "customer-import", "version": "1.9.2", "private": true, "scripts": { "test": "node --test" } }
=============== FILE: fixtures/codes.csv =============== id,postal_code,city c_1,01234,Springfield c_2,58221,Rivermouth c_3,90210,Beverly Hills
=============== FILE: src/importer.js =============== 'use strict';
function normaliseJsonRow(row) { return { id: String(row.id), postalCode: String(row.postal_code), city: row.city, }; }
function importJson(rows) { return rows.map(normaliseJsonRow); }
function parseCsv(text) { const [head, ...lines] = text.trim().split('\n'); const cols = head.split(','); return lines.map((line) => { const cells = line.split(','); const row = {}; cols.forEach((c, i) => { row[c] = cells[i]; }); return row; }); }
function normaliseCsvRow(row) { return { id: String(row.id), postalCode: Number(row.postal_code), city: row.city, }; }
function importCsv(text) { return parseCsv(text).map(normaliseCsvRow); }
module.exports = { importJson, importCsv };
=============== FILE: tests/import-json.test.js =============== 'use strict';
const test = require('node:test'); const assert = require('node:assert/strict'); const { importJson } = require('../src/importer');
test('BUG-4471: postal codes keep their leading zero', () => { const rows = [{ id: 'c_1', postal_code: '01234', city: 'Springfield' }]; assert.deepEqual(importJson(rows), [ { id: 'c_1', postalCode: '01234', city: 'Springfield' }, ]); });
=============== FILE: ops/checks.txt =============== $ curl -s https://import.staging.internal/internal/build-info {"service":"customer-import","commit":"9fa30b1","branch":"main","deployedAt":"2026-08-09T07:20:03Z"}
$ git merge-base --is-ancestor 7c2ea55 9fa30b1; echo $? 0