Use cases#

The use cases are modelled as stakeholder requirements of the tool user, a module CI pipeline or a developer on a Linux host. Tool requirements satisfy them.

UC1 One report for C++ and Rust
status: valid
security: NO
safety: ASIL_B

The user shall obtain, from one bazel coverage run, one report with line and branch coverage for the C++ and Rust units of the module.

UC2 Untested code is visible
status: valid
security: NO
safety: ASIL_B

The user shall see every source file of the declared coverage scope in the report, including files that no test links against, with exact 0 % line and branch coverage for those.

UC3 Reviewed justifications
status: valid
security: NO
safety: ASIL_B

The user shall be able to justify intentionally uncovered lines with a reviewed argument, and obtain an effective coverage figure that counts justified lines as covered while reporting the raw figure alongside.

UC4 CI gate
status: valid
security: NO
safety: ASIL_B
rationale: The platform quality criteria (85 % QM, 100 % safety) are enforced automatically.
reqtype: Functional
valid_from: v0.1.0
version: 1

The user shall be able to fail a CI job when the gated coverage is below a configured threshold, and shall be able to tell a failed gate from a run that could not be evaluated.

UC5 Archived evidence
status: valid
security: NO
safety: ASIL_B
rationale: The module verification report cites the archived LCOV and justification report.
reqtype: Functional
valid_from: v0.1.0
version: 1

The user shall be able to archive the HTML report, the LCOV data, the justification report and the JUnit results of a run as one CI artifact.

UC6 Job summary
status: valid
security: NO
safety: QM
rationale: Reviewers read the numbers on the workflow page without downloading artifacts.
reqtype: Functional
valid_from: v0.1.0
version: 1

The user shall obtain a markdown summary of the run, on the GitHub Actions step summary or in a file, even when the gate fails.