Skip to content

Coverage

The Coverage screen — titled Traceability, Coverage & Requirements in the page header — answers one question: how well do my test cases cover my requirements, and how much of that is automated? It is not a single number on a single chart. It is a workspace with four tabs that follow the chain from a requirement (a thing the product must do, usually pulled out of a source document) down to the test cases that verify it, and further down to the test scripts (real files on disk) that automate it.

Critically, this screen measures coverage at three distinct levels, so read each metric carefully:

  • Requirements coverage — are your requirements linked to at least one test case? (the Traceability and Orphan tabs)
  • Automation coverage — of the test cases that exist, how many are actually automated by a script? (the Coverage Dashboard’s headline number)
  • Source coverage — of your source documents, how many have produced test cases at all? (the Coverage Dashboard) Analogy. Think of a building inspector’s checklist. The requirements are the items the inspector must check (fire exits, wiring, plumbing). The test cases are the inspections written up for each item. The test scripts are the inspectors who actually walk the site. This screen is the inspector’s clipboard: it shows which checklist items have an inspection assigned (traceability), which inspections actually have someone walking the site (automation), and which checklist items nobody is looking at (orphans/gaps).
  • QA leads and test managers who need to prove the test suite covers the spec, and to find requirements with no tests before a release sign-off.
  • Automation engineers who want to see which test cases still run manually and which test scripts on disk are not yet tied to a test case.
  • Product owners / BAs who want assurance that every requirement extracted from a PRD or Jira ticket has been turned into verifiable tests.
  • Anyone auditing the project who needs an exportable traceability matrix for a compliance or release record. No coding is required to read this screen. Generating the underlying requirements and test cases is done elsewhere (in AI Test Gen, from Sources); this screen reports on the result.
TermWhat it means here
RequirementA single thing the product must do. Requirements flow in automatically from Sources via the AI extraction pipeline; they are read-only on this screen (you cannot type a new one here). Each carries an External ID (e.g. REQ-001), title, priority, and source.
Test caseA documented test that verifies one or more requirements. A test case can be linked to a requirement on the Requirements tab, or generated against it from a source.
Test scriptAn actual automation file on disk (e.g. a Playwright or Cypress spec). A test case is considered automated when it is mapped to a script.
SourceA document the requirements/tests were derived from (PRD, Jira ticket, NLP prompt, uploaded file). Shown with a type icon: Requirement, NLP, JIRA, or Document.
Linked / UnlinkedLinked = a relationship exists (requirement<->test case, or test case<->script). Unlinked items are the ones this screen flags as gaps.
OrphanAn item with nothing on the other side of its expected link: a test case with no requirement, a script with no test case, or a source that produced no test cases.
StrategyA test-design technique a generated test belongs to (happy-path, negative, boundary, equivalence, error-handling, security, performance, accessibility, compatibility, integration, data-validation). Drives the heatmap columns in the Document view.
PersonaA user role a generated test was written for. Optional; only appears when the source’s tests carry persona metadata.
Coverage levelPer-requirement verdict: Fully Covered (green), Partially Covered (amber), or Not Covered (red).
Matrix fillOf all possible requirement x test-case cells in the grid, the percentage that are actually linked. A density measure, not a pass-rate.

Every number on this screen is computed by the backend from data you create elsewhere. Nothing here is hand-entered.

  • Requirements are extracted from Sources by the AI pipeline and arrive as active by default. The Requirements tab is read-only at the requirement level — there is intentionally no ”+ New Requirement” button.
  • Test cases come from AI Test Gen (generated against a source) or are linked manually on the Requirements tab.
  • Scripts are discovered by scanning the project directory; the Unmapped Test Scripts list reflects real test files found on disk that no test case claims.
  • The Coverage Dashboard pulls a single coverage-stats object (automation %, source %, per-priority automation, per-type counts) and an orphans object.
  • The Document view matrix is fetched per-source and is built from saved test cases that persisted requirement_id + strategy metadata at generation time. Older tests without that metadata are counted as legacy uncategorized.
  1. From the left navigation, open the Traceability, Coverage & Requirements entry (route /coverage).
  2. The page opens on the Requirements tab by default.
  3. Switch tabs using the four tab buttons under the header: Requirements, Traceability Matrix, Coverage Dashboard, Orphan Detection.
  4. The active tab is remembered in the URL (the tab query parameter), so you can bookmark or share a link straight to, say, the Coverage Dashboard.
AreaWhereWhat it does
Page titleTop-left, with a target iconReads Traceability, Coverage & Requirements with the subtitle “Track requirement coverage, manage traceability, and find orphan items”.
Export Matrix buttonTop-right of the headerExports the coverage matrix to XLSX (see the Export section).
Tab barBelow the headerFour tabs: Requirements, Traceability Matrix, Coverage Dashboard, Orphan Detection. Active tab has a colored underline.
Tab contentMain bodyChanges with the selected tab — table, matrix, metric cards, or orphan lists.

If you only have thirty seconds, do this:

  • Open Coverage Dashboard -> read the Automation Coverage % (green). That is your headline.
  • Glance at the three orphan counters (Orphan Test Cases, Orphan Test Scripts, Orphan Sources). Any non-zero number is a loose end colored amber/orange/purple.
  • Open Orphan Detection to see exactly which items those counters point to.

This tab lists every requirement and lets you attach test cases to them. It is the foundation the other three tabs measure against.

Controls. A Search requirements… box and an All Priorities dropdown (Critical / High / Medium / Low) filter the list. There is deliberately no create button and no status filter — requirements arrive from Sources as active, so those affordances were removed.

ColumnMeaning
(chevron)Click any row to expand it and reveal its linked test cases.
External IDThe requirement’s source identifier (e.g. REQ-001); falls back to the internal id.
TitleThe requirement statement.
PriorityColor-coded badge: Critical red, High orange, Medium amber, Low emerald.
SourceWhere the requirement came from (Jira, Confluence, PRD, etc.), or -.
Linked TCsCount of test cases attached to this requirement.

Expanding a row shows the Linked Test Cases panel: each linked test case with its id, title, and priority, plus an unlink (broken-chain) icon to detach it. A Link Test Cases button opens a modal with a search box and checkboxes to attach one or more existing test cases at once.

This tab maps the full chain Source Document -> Content Sections -> Test Cases. A view toggle at the top-right switches between Detailed View (document-grouped, the default) and List (one row per requirement).

CardMeaning
RequirementsNumber of requirements in the matrix.
Test CasesNumber of distinct test cases referenced across all requirements.
LinksTotal requirement<->test-case links (shown in brand color).
Matrix FillLinks divided by total possible cells (requirements x test cases), as a percent. A density figure — low is normal and not necessarily bad.

Detailed View lists each source document as a collapsible card. The card header shows the source title, file name, count of generated test cases, any manually-linked count (amber), and a coverage percent with a colored progress bar:

Coverage %Color
80% and aboveGreen (emerald)
50% to 79%Amber
Below 50%Red

Expanding a source card renders the Requirement x Strategy heatmap (the DocumentRequirementMatrix). Rows are requirements; columns are test-design strategies, abbreviated in the header — HP happy-path, NEG negative, BND boundary, EQ equivalence, ERR error-handling, SEC security, PRF performance, A11Y accessibility, CMP compatibility, INT integration, DV data-validation. Hover a column header for the full name.

Cell appearanceMeaning
Green checkmark + a numberThat requirement has that many test cases for this strategy.
Dim hollow circleNo tests for this strategy on this requirement (a gap).
Per-row score %Covered strategies divided by strategies seen for the source — a per-requirement coverage score.
Last Gen columnRelative time since the requirement’s tests were last generated (e.g. “3h ago”).
Tests columnTotal test cases for that requirement row.

Heatmap controls (above the table): a Search box (matches requirement title, source quote, requirement id, or test-case titles); a sort dropdown (Recently generated / Least covered first / Highest priority first / Most tests first / Fewest tests first); an Uncovered only checkbox (shows only requirements that have at least one strategy with zero tests); Per-persona columns checkbox (adds one column per persona, only offered when the source has persona data); Priority filter chips (Critical/High/Medium/Low); and Persona filter chips. A “Showing X of Y requirements” line and a Clear filters link round it out.

Drill-down. Click any row label (the chevron) to expand it inline. The expansion shows one card per strategy listing every test case (id, title, priority badge, persona badge); each test links to /test-cases?tcId=<id>. A special amber Manually Linked row appears at the bottom when the source has test cases attached by hand from the Requirements tab — those carry no strategy/persona metadata, so their taxonomy columns read “(no taxonomy data)”.

List View flattens everything to one row per requirement with these columns: Requirement (priority badge + title + id), Linked Test Cases (color-coded chips), Count, Result, and Coverage. A legend at the top decodes the chip colors.

SignalColorMeaning
Test-case chip / PassedGreen (emerald)Latest execution of that test passed (shown with a check).
Test-case chip / FailedRedLatest execution failed (shown with an X).
Test-case chip / Not RunGrayNever executed (shown with a dot).
Row tint — greenEmerald washRequirement is Fully Covered (has tests and all passed).
Row tint — redRed washRequirement has no test cases linked (a hard gap).
Coverage badgeGreen / Amber / RedFully Covered / Partially Covered / Not Covered.

The Result column rolls the linked tests into one verdict: Failed if any linked test failed, Passed only if every linked test passed (and there is at least one), otherwise Not Run. Coverage is none when no tests are linked, full when the rolled-up result is Passed, and partial otherwise.

This is the metrics tab — five stat cards on top, then two breakdown panels.

CardMeaningColor
Automation CoveragePercent of test cases that are automated (mapped to a script). The headline metric.Green % with a green progress bar
Source CoveragePercent of sources that have produced test cases.Purple % with a purple progress bar
Orphan Test CasesCount of test cases not linked to any requirement.Amber if > 0, gray if 0
Orphan Test ScriptsCount of mapped scripts whose test case no longer exists (broken script links).Orange if > 0, gray if 0
Orphan SourcesCount of sources with zero test cases via any path (generated or manually linked).Purple if > 0, gray if 0

A horizontal-bar panel. For each priority that has test cases, it shows automated / total and the percent, with a bar filled to that percent. Priorities are ordered Critical -> High -> Medium -> Low and bar-colored rose (critical), orange (high), amber (medium), emerald (low). Priorities with no test cases are hidden; if there are none at all it reads “No test cases yet.”

A set of colored pills, one per test-case type that has at least one case, each showing the type name and its count, e.g. Functional (12), Regression (5). Type colors: functional sky, regression violet, smoke amber, integration teal, e2e indigo, api cyan, performance rose, security red. If there is no data it reads “No type distribution data available.”

This tab is the gap list — “Find unlinked items that may need attention.” It has three sections, each with a count badge (colored when non-zero) and an all-clear empty state when there is nothing to fix.

Test cases not linked to any requirement. Columns: Title (with mono id), Type (colored badge), Priority badge, Created date. Empty state: “No orphan test cases — All test cases are linked to requirements.”

This section merges two related problems in one table:

Status pillMeaning
Not Mapped (amber)A test file found in the project directory that no test case claims. Columns: Script Path, File Name, Framework, Status.
Orphaned (red)A previously-mapped script whose test case no longer exists — a broken link. Shown on a faint red row tint.

Empty state (only when both lists are empty): “No unmapped scripts — All test scripts in the project are mapped to test cases.”

Sources with no generated or manually-linked test cases. Columns: Title, Type (with an emoji label: Requirement, NLP, JIRA, or Document), Created. Empty state: “No orphan sources — All sources have been used for test generation.”

WhereControlEffect
Requirements tabSearch box + Priority dropdownFilter the requirement list by text or priority.
Requirements tabRow chevronExpand to see / link / unlink test cases.
Traceability tabDetailed / List toggleSwitch between per-source heatmap and per-requirement table (stored in subtab).
Traceability — DetailedSource card chevronExpand a source to load its Requirement x Strategy heatmap.
HeatmapSearch / Sort / Uncovered only / Priority & Persona chips / Per-persona columnsNarrow and reorder the requirement rows; surface gaps.
HeatmapRow chevronInline-expand a requirement to list its test cases grouped by strategy, each linking to the test case.
Coverage Dashboard(none)Read-only metrics; click into Orphan Detection for the underlying items.

There are two independent export paths:

  • Export Matrix (header button, all tabs) — produces an XLSX of the coverage matrix via the backend document generator (type coverage-matrix).
  • Export CSV (inside an expanded source’s heatmap) — a client-side CSV built in the browser, no backend needed. Columns: Requirement ID, Title, Source Quote, Total Tests, Last Generated, one count column per strategy, one count column per persona, and a flat list of test case IDs grouped by strategy. The file is named coverage-matrix_<source-title>.csv.
I want to…Do this
See my overall automation levelCoverage Dashboard -> read Automation Coverage (green %).
Find requirements with no testsTraceability Matrix -> List view -> look for red-tinted rows / Not Covered badges.
Add a test to a requirementRequirements tab -> expand the requirement -> Link Test Cases -> check tests -> Link Selected.
Remove a wrong linkRequirements tab -> expand requirement -> click the unlink (broken-chain) icon.
See which strategies a requirement is missingTraceability -> Detailed -> expand the source -> find dim hollow-circle cells, or tick Uncovered only.
List every test for a requirementIn the heatmap, click the requirement’s row to expand it; tests are grouped by strategy.
Find test scripts on disk with no test caseOrphan Detection -> Unmapped Test Scripts (amber Not Mapped rows).
Find sources that produced nothingOrphan Detection -> Orphan Sources, or the dashboard’s Orphan Sources card.
Export for an auditHeader -> Export Matrix (XLSX); or per-source Export CSV in the heatmap.
Jump from a matrix cell to the test caseExpand the row, then click any test in the strategy card (opens /test-cases?tcId=…).
  • Chase the orphans first. The three orphan counters are your fastest signal of disorganization; aim to get them to gray zeros before a release.
  • Don’t confuse Matrix Fill with coverage. A low fill % is normal. Judge real coverage from the per-requirement Coverage badges and the per-source coverage %.
  • Automation % is not a quality score. It tells you how much is scripted, not how much passed — check the List view’s Result column for that.
  • Re-generate legacy tests. If you see “legacy uncategorized,” re-run AI Test Gen so tests carry requirement_id/strategy metadata and light up the heatmap.
  • Use Uncovered only + sort by Least covered first to triage the weakest requirements quickly.
  • Keep scripts mapped. An Orphaned (red) script means a test case was deleted out from under a mapping — clean those up to keep automation counts honest.
  • Bookmark a tab/subtab. The tab and subtab URL params let you deep-link teammates straight to, e.g., the List view.
SymptomLikely cause / fix
”No requirements found”No requirements have been extracted yet. Add a Source and run AI Test Gen — requirements cannot be typed in here.
A source shows 0% coverage but has testsIts tests may be manually-linked or legacy (no strategy metadata). Expand the source; check for the amber Manually Linked row or a legacy note, and re-generate to populate the heatmap.
Heatmap is empty for a sourceEither no saved tests, or only legacy tests without requirement_id/strategy. Use the Open AI Test Gen link to re-generate.
Matrix Fill % looks alarmingly lowExpected — it is link density across all requirement x test-case pairs, not coverage. Use the per-requirement Coverage badges instead.
Automation Coverage stuck at 0%No test cases are mapped to scripts yet. Map scripts to test cases (or generate automated tests) to raise it.
Orphan Test Scripts count is non-zeroA mapped script’s test case was deleted, leaving a broken link. Find it under Orphan Detection -> Unmapped Test Scripts (red Orphaned rows) and re-map or remove it.
A real test file isn’t listed anywhereIf it’s mapped it won’t appear as orphan; if unmapped it should appear under Unmapped Test Scripts after the project is scanned. Re-scan the project if it’s missing.
Persona chips/columns don’t appearThe source’s tests carry no persona metadata; the persona controls only render when persona data exists.
Export Matrix does nothingThe XLSX path needs the backend document generator; if it fails, use the per-source client-side Export CSV instead, which has no backend dependency.
Counts differ between Dashboard and Orphan tabThey shouldn’t — both read the same orphans source. Refresh; the dashboard cards mirror the Orphan Detection lists by design.
  • Sources — where requirements come from.
  • Test Cases — what’s covering them.
  • AI Test Gen — generate cases for uncovered requirements.