As a requirements manager I want the traceability report to show the list of requirements (from codebeamer or TRLC) which are covered by tests (in C++ or JSON).
As a requirements manager I want the traceability report to show the list of requirements (from codebeamer or TRLC) which are not covered by tests (in C++ or JSON).
As a requirements manager I want the traceability report to show the list of tests (in C++ or JSON) which are not covering any requirement in (in codebeamer or TRLC).
As a requirements manager I want the traceability report to show the fraction of the number of requirements (in codebeamer or TRLC) which are covered by tests (in C++ or JSON) divided by the total number of requirements. The fraction shall be shown as percentage.
As a requirements manager I want the traceability report which includes sources from a local git clone to show the git hashes of the git commit from which files were taken.
As a requirements manager I want the traceability report between requirements (in codebeamer or TRLC) and tests (in C++ or JSON) to show a list with all findings where the tracing policy is violated.
Some software tests are not mapped to the requirements correctly. example, software test mapping is missed or software tests are swapped while mapping.
The test shall verify output file contains correct mapping of requirement to software tests based on requirement reference mentioned in software tests.
The test shall verify output file contains correct mapping of software tests to requirement based on requirement reference mentioned in software tests.
IF "trace to" is an invalid entry given in the configuration file according to the schema, THEN the tool shall exit with a non-zero return code and with an error message "lobster error: unknown item".
OTHERWISE IF the "just_up" list of the [[item]] contains at least one value AND there is at least one level in "trace to" in the tracing policy for the level of the item, THEN the tool shall set the tracing status to "JUSTIFIED" of that [[Item]].
OTHERWISE IF the "just_down" list of the [[item]] contains at least one value AND the level of the item is mentioned in at least one "trace to" entry of any other level, THEN the tool shall set the tracing status to "JUSTIFIED" of that [[Item]].
OTHERWISE, IF an [[Item]] has no references to an [[Item]] from a level mentioned in trace to, THEN the tool shall set the tracing status to "MISSING" of that [[Item]] and write "missing up reference" into the message section according to the schema.
OTHERWISE, IF an [[Item]] has references to an [[Item]] from a level mentioned in trace to, THEN the tool shall set the tracing status to "OK" of that [[Item]]
IF a level defined in the tracing policy has zero items in the corresponding input file, THEN the tool shall set the coverage for that level to 0.0 in the generated report file.
IF an input file given in the configuration is not valid JSON, THEN the tool shall raise an error of type LOBSTER_Error AND shall exit with a non-zero return code AND shall report the error location and message.
IF a JSON input file does not contain a dictionary at the top level, THEN the tool shall raise a Exception, AND the tool shall exit with a non-zero return code.
IF a lobster input file contains a schema that is not in the list of supported schemas, THEN the tool shall: - Report "unknown schema kind <schema>" - Exit with a non-zero return code
IF a lobster input file contains a schema with an unsupported version number, THEN the tool shall: - Report "version <X> for schema <Y> is not supported" - Exit with a non-zero return code
IF the input .lobster file is missing a schema key, THEN the tool shall raise a LOBSTER_Exception, AND the tool shall exit with a non-zero return code.
IF the input .lobster file is missing a version key, THEN the tool shall raise a LOBSTER_Exception, AND the tool shall exit with a non-zero return code.
IF the tool detects an invalid input file AND raises a LOBSTER_Exception, THEN the tool shall invoke the exception's dump() method to display the error details in the standard output AND exit with a non-zero return code.
IF a reference in a lobster file points to a tag that does not exist in the set of loaded items, THEN the tool shall report "unknown tracing target <tag>" and exit with non-zero return code.
IF a reference specifies a version but the destination tag is unversioned, THEN the tool shall report "tracing destination <tag> is unversioned" and exit with non-zero return code.
IF a reference specifies a version and the destination tag has a different version, THEN the tool shall report "tracing destination <tag> has version <x> (expected <y>)" and exit with non-zero return code.
IF a required input file for the tool does not exist or cannot be accessed, THEN the tool shall report "file not found <file_path>" and exit with a non-zero return code.
IF an item contains a "message" and traces to another item, THEN the traced item shall have 100% coverage, AND the item with the message shall have 0% coverage.
This is not really a requirement. It will be used only to generate a minimal tracing report for each tool. It can be deleted as soon as all the tools get their real requirements.