Select requirements & read coverage
Select requirements by area path, iteration, a WIQL query, or a list of IDs — you start from the features to cover, not from an existing plan. For each requirement, TestPulse resolves the test cases linked viaTestedBy and classifies it:
- Covered — at least one linked test.
- Gap — no linked test.
100% gaps is a valid result — a plan made entirely of empty suites, ready to fill. It is never an error.
”Covered but unplanned” (opt-in)
A third state — covered but unplanned (a test exists but is in no plan, so you’d reuse it rather than rewrite it) — sits behind an opt-in “Planning scan” toggle, off by default. The scan resolves planning per linked test case (one bounded, deduplicated lookup per unique test, with short timeouts) — it never enumerates the collection’s plans, so it stays usable on large repositories. If a lookup fails, that test is considered planned: the scan never invents a false “unplanned”. The state is never shown unless a real scan ran; without the toggle, the core stays two clean states.Where are the tests planned? (Plans column & execute links)
With the Planning scan on, a Plans column shows per requirement where its linked tests are planned: the plan name if unique, “N plans” if several, ”—” for a gap (or scan off). Expand a row to list each (plan, suite) pair with a one-click Run in Azure DevOps link opening the execute view, plus an n/m run execution progress fetched lazily on expand only (once per suite, cached for the session, degrading silently — a date the server cannot provide is hidden, never invented). The plan detail is extracted from the responses the scan already receives — no extra API call at table load.Preview & export (no permission needed)
TestPulse builds a plan spec: one requirement-based suite per requirement, each with its expected test cases and a gap flag. A preview shows what would be created (e.g. “9 requirement-based suites, 34 test cases”). The Export spec button is always available and needs no permission — it serialises the spec to JSON, Markdown or CSV, so a quality lead without write rights keeps the full read value. The export reflects the preview exactly.Related
Create the plan in Azure DevOps
The one place TestPulse writes.
Read-only by design
What it writes, and what it never touches.