In a traceability record linking requirements to test cases and defects, which gap and orphan findings appear, and what does each call for?
answer
- Look at both ends of every link
- Asked for, with nothing verifying it
- A case serving no stated requirement
- A defect no case reproduces
- A link with no execution behind it
basics
~20 sFour findings recur: a requirement with no linked test case, a test case linked to no requirement, a defect linked to no test case, and a linked case that has never been executed. Each calls for a different action.
solid answer
~50 sFour findings come out of walking the links, and they are not interchangeable. A **requirement with no linked case** is the plain gap: something was asked for and nothing verifies it, so write a case or retire the statement. A **case with no linked requirement** is an orphan and a question rather than a defect — it may encode a real invariant nobody wrote down, or be residue from a removed feature, so attach it or delete it. A **defect with no linked case** says the failure was found by a route the suite does not repeat, so add the case that reproduces it. A **link whose case has never been executed** is the quiet one: the chain joins up and looks verified, but no evidence exists, and that is a scheduling problem rather than a planning one.
code
pseudocode · 15 linesfor req in requirements:
if req.linkedCases is empty:
report GAP(req) // write a case, or retire the requirement
for case in testCases:
if case.linkedRequirements is empty:
report ORPHAN(case) // attach to what it serves, or delete
for defect in defects:
if defect.linkedCase is null:
report UNREPEATED(defect) // add a case that reproduces it
for link in requirementToCaseLinks:
if link.case.executions is empty:
report UNEXECUTED(link) // schedule it; not yet evidencego deeper
Be ready to say what a link between a requirement and a test case is for, and to name the two plain findings: something asked for that nothing verifies, and a case that serves no stated requirement.
An interviewer expects you to separate the four findings and give each a different action, and to explain why a defect with no linked case points at a hole in the suite rather than at untidy bookkeeping.
Show that you read the execution side too. A link with nothing run behind it produces the same joined-up picture as a verified requirement, and you should describe how you keep those two apart in whatever you report.
Own what the finding list is for: whether it drives work into the current release or feeds a standing hygiene budget, and what a team is permitted to conclude from a record that reports nothing at all.
## What the analysis is reading A traceability record is a set of links. Each requirement points at the acceptance criteria that make it checkable, each criterion at the test cases meant to verify it, each case at the executions that produced a result, and each defect at the case that found it. Gap and orphan analysis is nothing more than walking that set and reporting the ends that do not join up. It is mechanical and cheap, and its whole value is that **the four ways a link can be missing mean four different things**. Say which end is dangling and you have already said what has to happen next. ## The four findings | Finding | What it says | What it calls for | |---|---|---| | Requirement with no linked case | Something was asked for and nothing verifies it | Write a case, or retire the requirement if it is no longer wanted | | Test case with no linked requirement | A case asserts an expectation nobody has written down | Attach it to the statement it actually serves, or delete it | | Defect with no linked case | A failure was found by a route the suite does not repeat | Add a case that reproduces it and link it to the requirement it violated | | Link whose case has never executed | Intent was recorded; evidence was not produced | Schedule the execution, or read the criterion as unverified until it happens | ### A requirement with no linked case This is the finding most people mean by "gap", and it is the cheapest of the four to act on because the work is obvious: write the missing case. The second legitimate outcome is that nothing should be written at all, because the statement is verified by a means other than a test case — a review, an inspection, a constraint the build enforces. That is a fine answer exactly once: it has to be recorded as the verification method, or the same finding reappears every time the analysis runs and somebody re-argues it. ### A test case with no linked requirement The orphan, in the traceability sense. It is a **question, not a defect**. Two things produce it. The case may encode a real invariant that nobody ever wrote down as a requirement, in which case the repair is on the requirement side: write the statement, link it, and the case becomes defensible. Or the case is residue from a feature that was removed, in which case it should go. The test a reviewer applies is simple: *if this case fails tomorrow, who decides whether that is a bug?* If no one can answer, the case has no requirement behind it and deleting it costs nothing. ### A defect with no linked case An unlinked defect record tells you how the failure was found — by exploration, by an operator, by a customer — and therefore that the suite does not reproduce it. Adding a case turns a one-off finding into standing evidence: the fix becomes confirmable and the failure becomes catchable if it returns. Closing the defect without that step leaves the route unexercised and loses the only moment when somebody knew exactly how to trigger it. ### A link with no execution behind it This is the trap of the four, because link presence and verification look identical in anything built on links. The requirement has a case; the case has never run; the record shows a joined-up chain. The finding is real but it is a **scheduling** problem, not a planning one, and mixing it in with the other three misdirects the work. ## Why one number is not enough Reporting "seventeen gaps" collapses four different pieces of work into one figure that nobody can act on. - The four findings have **different owners**: whoever writes requirements, whoever writes cases, whoever decides what runs. - They have **different costs**. Joining an existing case to an existing requirement is a five-minute edit; writing a case from nothing is a day's work. - One of them is not a planning defect at all. An unexecuted link needs a slot, not a design decision. - A gap and an orphan are frequently **the same underlying fact seen from two ends** — the case exists, the link does not. Match them before you count, or you will report two problems and pay for one twice. A useful report is therefore grouped by finding type, addressed to the person who can close it, and deduplicated across the two directions first. ## What the analysis cannot tell you It reads the record, not the system. A tidy record can sit over a suite whose cases assert almost nothing, and a scruffy one can sit over a well-tested product. The findings are the opening of a conversation with the people who own each requirement — a list of places where the written intent and the written evidence disagree — and not, on their own, a judgement about the state of the release.
- A test case links to no requirement and the team insists it must stay. What do you do with it?Find the statement it actually verifies and link it there — an invariant, an operational obligation, or the defect it was written for. If no such statement exists, the case is asserting an expectation nobody has agreed to: either write that expectation down and link it, or delete the case. Left unlinked, the next person cannot tell whether a failure from it is a bug.
- Why is a defect with no linked test case worth chasing rather than closing quietly?The defect proves a route the suite does not exercise. Closing it without adding a case leaves that route unverified and lets the same failure return unnoticed, and it throws away the one moment when somebody knew exactly how to trigger it. Linking a new case to the requirement that was violated also repairs the record, turning a one-off finding into standing evidence.
- How can a gap and an orphan be the same underlying problem?Often the case already exists and only the link is missing, so the requirement is reported as a gap and the case is reported as an orphan in the same run. Matching the two before counting turns two findings into one five-minute edit. Skip that step and someone is sent to write a case that is already written.
It is a guest list checked against a seating plan: names with no seat and seats with no name are different problems, and a named seat nobody ever sat in is a third one.
saying these in an interview costs you the question
- Treats every unlinked test case as something to delete
- Calls a requirement verified because a link exists, without asking whether anything ran
- Reports a single gap count with no breakdown by finding type
- Closes a defect without adding a case that would catch it again
- Assumes an unlinked requirement and an unlinked case need the same fix