As a traceability manager I want the traceability report to list items that fulfill the tracing policy, and how they do so, so that I can decide whether to release my product.
Example: If the tracing policy is: Tests --(trace to)--> Requirements, then the report shall list all tests that link to at least one requirement, and the report shall list all linked requirements per test.
The use case applies to the reverse direction as well.
As a traceability manager I want the traceability report to list items that are not covered by other items, where coverage rules are specified by the tracing policy, so that I can identify gaps in the coverage.
Example: If the tracing policy is: Tests --(trace to)--> Requirements, then the report shall list all tests that do not link to any requirement.
The use case applies to the reverse direction as well.
As a traceability manager I want the traceability report to show the fraction of the number of items in one level (of the tracing policy) which fulfill the tracing policy, divided by the total number of items in that level (of the tracing policy). The fraction shall be shown as percentage.
Example: If the tracing policy is: Tests --(trace to)--> Requirements, then the report shall show the fraction of requirements which are covered by at least one test, divided by the total number of requirements.
As a CI administrator I want that the tool exits with a non-zero return code whenever it encounters invalid input so that the CI pipeline can catch invalid input automatically.
Issues:
missing reference to System Requirements
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
As a user of LOBSTER I want to have a good usability and standard command-line ergonomics, like built-in help or automatic creation of output destinations, so that using the tools is intuitive and seamless in scripts and interactive use.
Issues:
missing reference to System Requirements
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
IF the config option "name_attribute" is given and not an empty string, AND the input item contains that key, THEN the tool SHALL use the value of that key as tag in the serialized LOBSTER item.
IF the config option "name_attribute" is given and not an empty string, AND the input item does not contain that key, THEN the tool SHALL print an error message identifying the missing key to STDOUT, SHALL NOT write any output, AND SHALL exit with a non-zero return code.
OTHERWISE (the config option "name_attribute" is not given or is an empty string), THEN the tool SHALL create a synthetic tag name based on the path of the JSON input file and an item counter.
Notes: - "Synthetic" means that, the name does not need to be related to the data. - The item counter does not need to be unique across input files, but it shall be unique at least for each input file separately. - No further specification is made about how to combine the path and the item counter.
The config option "tag_attribute" is mandatory. IF the input item contains the key given by "tag_attribute", THEN the tool SHALL use the value(s) of that key as the requirement reference(s) of the serialized LOBSTER item. The value SHALL be accepted whether it is a single string or a list of strings.
OTHERWISE (the input item does not contain the key given by "tag_attribute"), THEN the tool SHALL generate the LOBSTER item without any requirement reference.
IF the config option "justification_attribute" is given, AND the input item contains the key given by that option, THEN the tool SHALL use the value(s) of that key as justification(s) for a missing requirement reference of the serialized LOBSTER item. OTHERWISE (the option is not given, or the input item does not contain that key), THEN the tool SHALL generate the LOBSTER item without any justification.
IF the config option "test_list" is given, THEN the tool SHALL navigate to the key path given by that option within each input file's JSON content, and SHALL treat the value found there as the list of test items to extract, instead of the top-level JSON content of the file.
IF the file given through the command line option "--config" does not exist, THEN the tool SHALL print an error message stating that the config file was not found AND SHALL exit with a non-zero return code.
IF the config file does not contain the mandatory parameter "tag_attribute", THEN the tool SHALL print an error message naming the missing parameter AND SHALL exit with a non-zero return code.
IF the config file contains a key that is not a supported configuration parameter of the tool, THEN the tool SHALL terminate with a non-zero return code AND SHALL NOT produce output.
IF neither the config option "inputs" NOR "inputs_from_file" is given, THEN the tool SHALL use the current working directory as the sole input, and SHALL recursively search it for files with the ".json" extension.
IF a list element given through the config option "inputs" (or a line in the file given through the config option "inputs_from_file") is a directory, THEN the tool SHALL recursively search that directory AND SHALL treat every file found with the ".json" extension as an additional input file.
IF the config option "inputs_from_file" is given, THEN the tool SHALL treat every non-empty, non-comment line of that file as an additional input file or directory, applying the same rules as for elements given through the config option "inputs".
Note: a comment is any part of a line starting with "#".
IF both config options "inputs" AND "inputs_from_file" are given, THEN the tool SHALL process the union of the files and directories listed by both options, including files that are listed by both options.
IF a list element given through the config option "inputs" is a file, AND the file extension is not ".json" (case-insensitive), THEN the tool SHALL print a warning AND SHALL nevertheless process the file as if it were a JSON file.
IF an input file is empty OR its content cannot be parsed as JSON, THEN the tool SHALL print an error message stating that the file contains invalid JSON to STDERR, SHALL exit with a non-zero return code, AND SHALL NOT write any output.
IF a list element given through the configuration file under "inputs" is not a file nor a directory, THEN the tool shall print an error message identifying the offending element to STDOUT, SHALL NOT write any output file, AND SHALL exit with a non-zero return code.