Skip to main content

Universal traceability validation and rollup for requirements-to-tests mapping.

Project description

Traceability Tooling

Universal traceability validation and rollup for requirements ↔ tests mapping. Designed to work across monorepos and git submodules.

Install

pip install tracetree

Quick Start

From a repo root with docs/traceability/:

tracetree init
tracetree validate
tracetree link
tracetree aggregate

Expected Structure (Defaults)

  • docs/traceability/requirements.md
  • docs/traceability/risk_controls.md
  • docs/traceability/traceability_matrix.csv
  • docs/traceability/soup_inventory.md
  • docs/traceability/iec62304_mapping.csv

If you do not already have these files, run:

tracetree init

Generated reports (default):

  • docs/traceability/generated/traceability_report.md
  • docs/traceability/generated/traceability_report.json
  • docs/traceability/generated/testid_links.md
  • docs/traceability/generated/testid_links.json
  • docs/traceability/generated/aggregate/traceability_rollup.md
  • docs/traceability/generated/aggregate/traceability_rollup.json
  • docs/traceability/generated/iec62304_traceability_table.md

Test discovery defaults:

  • GTest: tests/, test/
  • Pytest: tests/, test/
  • JS/TS (Jest/Mocha/Vitest/Deno): tests/, test/, __tests__/, spec/
  • Rust (#[test]): tests/, test/, src/

TestID matching:

  • GTest: SuiteName.TestName
  • Pytest: test_function_name
  • JS/TS: string in test("name", ...) or it("name", ...) (also Deno.test("name", ...))
  • Rust: function name following #[test]

IEC 62304 mapping file format (iec62304_mapping.csv):

RequirementID,SoftwareItem,IntegrationSystemTest,Evidence
REQ-EXAMPLE-1,Example Module,verify_reliability.py,Test logs

Repo Configuration

Create .traceability/config.json to override defaults:

{
  "traceability_dir": "docs/traceability",
  "traceability_output_dir": "docs/traceability/generated",
  "requirements_file": "requirements.md",
  "risk_controls_file": "risk_controls.md",
  "matrix_file": "traceability_matrix.csv",
  "iec62304_mapping_file": "iec62304_mapping.csv",
  "gtest_roots": ["tests"],
  "pytest_roots": ["bindings/python/tests"],
  "js_roots": ["packages/web/tests"],
  "rust_roots": ["crates/core/tests", "crates/core/src"]
}

You can also point to a custom config with TRACEABILITY_CONFIG=/path/to/config.json.

Coverage Threshold

Default is 100%. Override with:

TRACEABILITY_REQ_COVERAGE=0.95 tracetree validate

Submodule Rollup

tracetree aggregate reads .gitmodules and validates each submodule that contains traceability files. Results are written to: docs/traceability/aggregate/traceability_rollup.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tracetree-0.1.3.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tracetree-0.1.3-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file tracetree-0.1.3.tar.gz.

File metadata

  • Download URL: tracetree-0.1.3.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.3

File hashes

Hashes for tracetree-0.1.3.tar.gz
Algorithm Hash digest
SHA256 01a4dfc53c5ca0a3482b7bcf46fc88be7423acc829b517986fef14947a5ef778
MD5 f99a012f7ebcdd1f0d9e150f64280515
BLAKE2b-256 bbc79dd16c3c6bad81825aa1a3550357a2df4d9643c02e1b14812f1e799f6515

See more details on using hashes here.

File details

Details for the file tracetree-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: tracetree-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 9.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.3

File hashes

Hashes for tracetree-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b38158879668663cb6a9a72d585bfd3ddee9cb7466506e3b59ea0f43bb6e7cd4
MD5 2c34f5eed130feb460b6fa9611e6874b
BLAKE2b-256 a5ee3e3ccc2bac626b776f066748586b51247546d6f8ca80e49c87df4eec1c87

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page