As a requirements 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.
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
Issues:
missing up reference
missing reference to Software Requirements
missing reference to System Tests
Build Reference: main | Timestamp: 2026-09-22 04:42:52+00:00 UTC
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 the tracing policy is a linear tracibility where each level traces to exactly one other level, forming a linear chain of traceability, THEN the tool support linear tracing policies.
IF the tracing policy is complex with multiple interconnected levels, where traceability can exist between multiple levels, THEN tool shall support complex tracing policies.
IF multiple input files are available in the workspace, THEN the tool shall only process the input files specified in the tracing policy configuration AND shall ignore any additional lobster files not referenced in the policy.
IF the tracing policy defines multiple levels with multiple source files for each level, THEN the tool shall correctly process and consolidate all source files and generate lobster report.
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.
IF the tool processes multiple items with their respective data and information, THEN the tool shall ensure that data do not get mixed between different items, AND each [[item]] shall maintain its own distinct data,
IF the tracing policy configuration references input files that cannot be found in the workspace, THEN the tool shall report error AND shall exit with a non-zero return code.
IF a raw tracing policy contains two or more levels declared with the same name, THEN the "build_tracing_policy" function SHALL raise a fatal LOBSTER_Error with the message "duplicate declaration" at the location of the repeated declaration.
IF a level's source file entry names a file that does not exist on disk, THEN the "build_tracing_policy" function SHALL raise a fatal LOBSTER_Error with the message "cannot find file <path>", where <path> is the file path given in the source entry.
IF a level's "trace to" list contains the level's own name, THEN the "build_tracing_policy" function SHALL raise a fatal LOBSTER_Error with the message "cannot trace to yourself".
IF a level's "trace to" list references a level name that is not declared anywhere in the raw tracing policy, THEN the "build_tracing_policy" function SHALL raise a fatal LOBSTER_Error with the message "unknown item <target>", where <target> is the undeclared level name.
IF a level's "requires" entry names a candidate level that is not declared anywhere in the raw tracing policy, THEN the "build_tracing_policy" function SHALL raise a fatal LOBSTER_Error with the message "unknown level <name>", where <name> is the undeclared level name.
IF a level's "requires" entry names a candidate level that does not have a "trace to" entry pointing at the requiring level, THEN the "build_tracing_policy" function SHALL raise a fatal LOBSTER_Error with the message "<candidate> cannot trace to <level> items".
IF a level does not declare any "requires" entry, THEN the "build_tracing_policy" function SHALL derive its "breakdown_requirements" as one single-candidate OR-group per other level that declares a "trace to" entry pointing at it. OTHERWISE, the function SHALL translate each declared "requires" entry into one OR-group of the candidate levels named in that entry.
IF a level declares a "trace to" entry pointing at another level, THEN the "build_tracing_policy" function SHALL set "needs_tracing_up" to true on the declaring level AND SHALL set "needs_tracing_down" to true on the targeted level.
IF two raw tracing policies contain the same levels with the same "trace to" and "requires" entries, differing only in the order in which the levels are declared, THEN the "build_tracing_policy" function SHALL produce the same result for both.