247b8311f3
Final German naming cleanup in dev-process: - vorlagen/ -> templates/ - vorlagen-word/ -> templates-word/ - tools/generate_word_vorlagen.sh -> tools/generate_word_templates.sh - *-vorlage.md / *-vorlage.docx -> *-template.md / *-template.docx - Review-Protokoll-vorlage.* -> Review-Minutes-template.* - angebot-vorlage.* -> quote-template.* - angebot-beispiel.html -> quote-example.html All references in README.md, toolstack/toolstack.md, build_word_template.py, and generate_word_templates.sh updated. The master Word style template (slohmaier-doc-template.docx) was already English-named. The dev-process repo is now fully English in both content and structure.
68 lines
3.2 KiB
Markdown
68 lines
3.2 KiB
Markdown
# Traceability Matrix
|
|
|
|
## Principle
|
|
|
|
The traceability matrix ensures end-to-end traceability from requirement to test:
|
|
|
|
```
|
|
System requirement → Software requirement → Architecture element → Implementation (PR/file) → Test case → Test result
|
|
```
|
|
|
|
Each level must be traceable in both directions:
|
|
- **Forward:** requirement → has it been implemented and tested?
|
|
- **Backward:** test case → which requirement does it verify?
|
|
|
|
## Table structure
|
|
|
|
| Sys-Req | SW-Req | ASIL | Arch element | Implementation | Test case | Test result | Status |
|
|
|---------|---------|------|--------------|----------------------|-----------|---------------|--------------|
|
|
| SYR-001 | SWR-010 | B | MOD-Timer | PR !23, timer.c | TC-010 | Pass (v1.2) | Complete |
|
|
| SYR-001 | SWR-011 | B | MOD-Timer | PR !23, timer.c | TC-011 | Pass (v1.2) | Complete |
|
|
| SYR-002 | SWR-020 | A | MOD-CAN | PR !31, can_driver.c | TC-020 | Pass (v1.2) | Complete |
|
|
| SYR-003 | SWR-030 | B | MOD-Watchdog | — | — | — | Open |
|
|
| — | SWR-040 | QM | MOD-Diag | PR !35, diag.c | TC-040 | Fail (v1.1) | Finding open |
|
|
|
|
## Column explanation
|
|
|
|
| Column | Description |
|
|
|------------------|----------------------------------------------------------------|
|
|
| Sys-Req | System requirement ID (Gitea issue with label `req::system`) |
|
|
| SW-Req | Software requirement ID (Gitea issue with label `req::software`) |
|
|
| ASIL | Assigned ASIL level |
|
|
| Arch element | Architecture module or component |
|
|
| Implementation | Pull request and/or file |
|
|
| Test case | Test case ID (Gitea issue with label `test::*`) |
|
|
| Test result | Pass/Fail with version/date |
|
|
| Status | Complete / Open / Finding open |
|
|
|
|
## Gap analysis
|
|
|
|
The matrix makes gaps visible:
|
|
|
|
- **Requirement without test:** row without test-case entry → test missing
|
|
- **Requirement without implementation:** row without PR → not implemented
|
|
- **Test without requirement:** test case not assigned to any requirement → verify
|
|
- **Fail without finding:** failed test without a documented finding → rework
|
|
|
|
## Automatic generation from Gitea
|
|
|
|
The matrix can be generated automatically from Gitea issues:
|
|
|
|
1. A Python script reads all issues with `req::*` labels via the Gitea API
|
|
2. It follows issue links to architecture issues, PRs, and test issues
|
|
3. It reads CI-pipeline results (JUnit XML) for test outcomes
|
|
4. It produces the matrix as a Markdown table or CSV
|
|
|
|
**Precondition:** issues are correctly linked and labelled (see `gitea-aspice-setup.md`).
|
|
|
|
**Output formats:**
|
|
- Markdown (for wiki / documentation)
|
|
- CSV (for import into customer systems)
|
|
- HTML (for reporting)
|
|
|
|
An example script lives at `tools/traceability-report.py` in the project repository.
|
|
|
|
---
|
|
|
|
*The current traceability matrix is updated on every release and stored in the wiki.*
|