01
Separate pass rate from completeness
A tag, path, shard, browser project, module, or discovery change can remove tests while every remaining assertion passes. QaCockpit therefore keeps several signals separate:
Pipeline lifecycle
Did the workflow or pipeline complete?
Result intake
Did usable JUnit evidence arrive?
Test outcome
What happened to reported cases?
Completeness
Which expected identities are missing?
02
Keep test identity stable
The first complete report can establish a versioned baseline. Later reports are compared using the suite, test name, class or file, parameters, and optional stable identifiers available in the imported JUnit evidence.
- Use deterministic test and parameter names instead of timestamps or random values.
- Keep framework project or browser context explicit when it changes test meaning.
- Avoid renaming suites merely to change display formatting.
- Treat an intentional removal as a reviewed baseline change, not an automatic count reduction.
04
Review repeated scope changes explicitly
One difference may come from a temporary shard failure or a branch-specific filter. Repeated matching evidence can become a candidate baseline, but a permitted user still decides whether to keep the active revision or accept the new scope.
- Inspect added and removed exact identities.
- Confirm the branch, workflow inputs, modules, projects, and shards.
- Decide whether the change is expected product evolution or missing evidence.
- Keep or accept the baseline with an auditable decision.
05
Inspect deterministic scope-drift runs
Both public demo repositories expose a scope-drift scenario. The workflow completes with valid JUnit XML while deliberately omitting one normally reported test, which demonstrates why result success and evidence completeness are different questions.
