Overview

reqstool is a tool for managing requirements with related software verification cases (aka tests) and verification results (test results).

  • Requirements are defined in YAML files and can reference each other (depending on the variant, different data will be parsed).

  • Annotations are then used in code to specify where a requirement is implemented as well as tested.

With this information and the actual test results (e.g. JUnit) use reqstool to:

  • Generate a report (AsciiDoc, which can be transformed into e.g. PDF) listing all requirements, where that requirement is implemented and tested, and whether the tests passed/failed. This report can be used e.g. with auditors ("Yes, we track this requirement, it’s implemented (here) and it has been tested with a pass (here).")

  • Status the software, i.e. get a list of all requirements, their status on implementation and tests. reqstool will exit with a status code equal to the number of requirements that have not been implemented and tested with a pass. Hence, it can be used in a pipeline as a gate for deployment to production.