Prototype Branch Coverage: Check Alternate Paths Before Review

Audit the success, cancellation, failure, and recovery paths in an interactive prototype with a practical branch coverage checklist.

Try Mockitt for Free

Audit the success, cancellation, failure, and recovery paths in an interactive prototype with a practical branch coverage checklist.

Prototype Branch Coverage: Check Alternate Paths Before Review

An interactive prototype can look convincing while covering only the happy path. A reviewer taps “Continue,” reaches a success screen, and assumes the flow is complete. Real tasks also include cancellation, unavailable choices, validation errors, permission limits, and a return from detail to summary. Prototype branch coverage is a practical way to find those gaps before the team treats a flow as ready.

Use Mockitt’s interactive prototyping workspace to connect the screens that answer one review question.

What branch coverage means in a prototype

Branch coverage is an inventory of meaningful outcomes for a task. It is not a demand to draw every theoretical click. A branch begins when a condition changes the next step or the information a person needs. A general user-flow guide can help name the actors and entry points; this article focuses on checking whether the important outcomes are actually represented.

For an expense-reimbursement flow, useful branches could include:

Point in the taskBranchExpected result
Receipt uploadValid file / unsupported fileContinue with receipt, or explain the correction without losing other fields
Amount reviewWithin policy / over policySubmit, or show the policy reason and next action
Final actionSubmitted / duplicate requestShow confirmation, or preserve the existing request context

The table describes behavior to review. It does not claim that a prototype validates the real upload, policy, or duplicate-detection service.

Step 1: State the task and entry condition

Write one task in ordinary language: “Submit a travel expense for a receipt that needs a correction.” Record where the participant starts, what data is already present, and what outcome counts as completion. If the flow has several audiences, make a separate branch map instead of hiding permissions in a footnote.

Keep the first version small. A task with one entry, two decision points, and one recovery branch is more useful than a board of disconnected screens. Name the screens by state so that reviewers can identify the exact branch under discussion.

Step 2: Draw the happy path, then mark decisions

Create the primary route from entry to outcome. At every action that can produce a different consequence, add a decision marker. Typical markers include:

  • a required field that may be invalid;
  • a selection that may be unavailable;
  • a request that may be delayed or rejected;
  • an action that can be canceled or reversed; and
  • a permission boundary that changes what is visible.

Do not add an error screen just because the word “error” appears in a requirement. Connect it to the condition that causes it and identify how the person continues. If there is no meaningful next step, record that as an unresolved product decision.

Step 3: Build a branch inventory

Use a simple inventory alongside the prototype:

IDTrigger or conditionEntry screenDestinationRecovery or returnOwnerStatus
B-01Unsupported receipt typeReceipt uploadFile guidanceKeep other fieldsContent + engineeringOpen

The status can be covered, partially covered, out of scope, or open. “Out of scope” is honest when a service or policy cannot be represented in the visual draft. It should still have an implementation check and owner.

Step 4: Connect the states in the prototype

In the editor, link each branch to a visible outcome. The interactive prototype workflow explains the general idea of connected screens; here, preserve the task context when someone recovers. If an amount fails validation, keep the entered amount and explain the constraint. If a request is canceled, return to a predictable summary rather than a blank start screen. If a permission rule changes the action, show the reason and the path for requesting access.

Use the same sample record across branches so the difference is understandable. A changed customer name or total can make reviewers think they are looking at a different task. Add a note for simulated behavior, such as “the policy check is represented by this state; implementation must connect the real rule.”

Step 5: Review every branch with a task prompt

Do not review branches as a gallery. Give reviewers a prompt that starts from a known state:

  1. Open the expense draft with its amount and description already entered.
  2. Select a receipt file that the flow does not support.
  3. Follow the file guidance and replace it with a supported receipt.
  4. Return to the expense summary and verify that the amount and description are still present.

Record whether the expected state appeared, whether the reviewer knew why it appeared, and whether the next action was clear. A branch is covered visually when the route exists and the information is understandable; that does not prove the implemented service will return the same result.

An expense-reimbursement branch map separates valid and unsupported receipt files, keeps other draft fields during correction, and returns to review and submit.
Illustrative receipt-correction branch below an official Mockitt toolbar excerpt. The recovery route replaces the receipt while retaining the rest of the expense draft.

Common coverage gaps

Cancellation returns to the wrong context

A modal may close correctly but return the person to a list instead of the draft they were editing. Add an explicit return target and test it from both the primary and recovery branches.

Empty and failed states look identical

“No matches” means a valid search produced no result. “Could not load” means the service or network failed. Use distinct copy and a distinct next action so reviewers do not test the wrong recovery.

A disabled action has no explanation

If a person cannot submit because required information is missing or they lack permission, show the relevant reason near the action. Avoid relying on a color change alone.

The prototype skips the handoff state

A confirmation screen may hide the receipt, owner, or next deadline that implementation must preserve. Add the information needed to verify the outcome, then capture the requirement separately.

A compact coverage review

Before sharing, ask:

  • Can another reviewer name every decision point in the task?
  • Does each meaningful branch have a destination or an explicit out-of-scope note?
  • Does cancellation return to the right context?
  • Are loading, empty, failure, permission, and success outcomes distinguishable where relevant?
  • Are simulated conditions labeled for the implementation team?
  • Can the reviewer repeat a branch without being coached through the control names?

Keep the inventory with the prototype version. When a screen changes, update the affected branch row and repeat only the scenarios that depend on it. The prototype usability testing plan can then use the selected branches to write neutral participant tasks. This keeps a review focused while making gaps visible.

Branch coverage is useful because it turns “the prototype works” into a more precise statement: these task outcomes are represented, these are intentionally simulated, and these still need a product or implementation decision. That clarity is more valuable than adding decorative screens to an untested happy path.