danieleades / sphinx-graph

Plain text requirements management using Sphinx
https://github.com/danieleades/sphinx-graph
11 stars 0 forks source link

Traceability matrix #89

Open danieleades opened 1 year ago

danieleades commented 1 year ago

add a traceability matrix feature.

A traceability matrix is used to show links and coverage from parents to children. For example, to show the links and coverage between requirements and their associated test cases.

For use in this library, this can be a bit more generic.

so i'm imagining a directive like the following-

.. vertex-matrix::
    :parents: parent-query
    :children: child-query

    [parents]
    key1 = value1

    [children] 
    key2 = value2
    key3 = value3

where the query names are defined in the config, and key-value pairs can be injected using toml in the body of the directive.

In practice you'd have a default query with some sensible kwargs, so you'd have something like

.. vertex-matrix::

    [parents]
    type = "USR"

    [children] 
    type = "SYS"

or, equivalently-

.. vertex-matrix::

    parents = { type = "USR" }  
    children = { type = "SYS" }

this would output a table vaguely like the following - image

with the results of each query being the row and column headers, and the value of each cell being determined by the relationship between the two corresponding nodes.

danieleades commented 2 months ago

future work- how to propagate something like test results where it's not just the linkage that's important, but the state?