L.O.B.S.T.E.R.

Lightweight Open BMW Software Traceability Evidence Report
✔ !

Overview

Coverage

Category Ratio Coverage OK Items Total Items
Use Cases 80.0% 80.00% 8 10
System Requirements 55.6% 55.56% 5 9
Software Requirements 100.0% 100.00% 7 7
System Tests 100.0% 100.00% 15 15
Software Tests 100.0% 100.00% 3 3

Tracing policy

LOBSTER Tracing Policy n_1cf7e301510c711b73d2b182b9dcf084 Use Cases n_419cfc02b324dc7d8faefa90ed608fb0 System Requirements n_1cf7e301510c711b73d2b182b9dcf084->n_419cfc02b324dc7d8faefa90ed608fb0 n_9d273bd32c1fceb91b7d6a4d40e98bdd Software Requirements n_419cfc02b324dc7d8faefa90ed608fb0->n_9d273bd32c1fceb91b7d6a4d40e98bdd n_3f7ae1d4bec7e6d318ef39c7a7dcaa65 System Tests n_419cfc02b324dc7d8faefa90ed608fb0->n_3f7ae1d4bec7e6d318ef39c7a7dcaa65 n_c4738e043501e27ee3ef08d6a4883d27 Software Tests n_9d273bd32c1fceb91b7d6a4d40e98bdd->n_c4738e043501e27ee3ef08d6a4883d27

Filtering

Item Filters

Show Issues

Filter

Issues

Detailed report

Requirements and Specification

Use Cases

lobster/use_cases.trlc
TRLC Usecase UseCases.List_Ok_Items
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.
Issues:
  • missing reference to System Requirements
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC Usecase UseCases.List_Not_Ok_Items
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.
Issues:
  • missing reference to System Requirements
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC Usecase UseCases.Item_Coverage
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.
Traces to:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC Usecase UseCases.List_Requirements_to_Tests
As a requirements manager I want the traceability report to show the list of
requirements which are covered by tests.
Traces to:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC Usecase UseCases.List_Requirements_without_Tests
As a requirements manager I want the traceability report to show the list of
requirements which are not covered by tests.
Traces to:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC Usecase UseCases.List_Tests_to_Requirements
As a requirements manager I want the traceability report to show the list of
tests covering requirements.
Traces to:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC Usecase UseCases.List_Tests_without_Requirements
As a requirements manager I want the traceability report to show the list of
tests which are not covering any requirement.
Traces to:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC Usecase UseCases.Failure_On_Invalid_Input
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.
Traces to:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC Usecase UseCases.Tool_Usability
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.
Traces to:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC Usecase UseCases.PKG_Misplaced_Trace_Warning
As a requirements manager I want lobster-pkg to print a warning
for lobster-traces in <DESCRIPTION> and <VALUE> nodes
which are not extracted (due to wrong XML node or path properties).
Traces to:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC

System Requirements

lobster/tools/pkg/requirements/extraction_rules.trlc
TRLC System_requirement pkg_req.Pkg_Invalid_Xml
IF an input file cannot be parsed as XML,
THEN the tool SHALL print an error message identifying the file and the parse
error to STDOUT
AND SHALL exit with a non-zero return code.
Derived from:
Issues:
  • missing reference to Software Requirements
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC System_requirement pkg_req.Pkg_No_Input_Files
IF no input files or directories are given on the command line,
THEN the tool SHALL print an error message stating that no input files were
found to process
AND SHALL exit with a non-zero return code.
Derived from:
Issues:
  • missing reference to Software Requirements
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC System_requirement pkg_req.Input_Not_File_Not_Directory
IF a command line argument is neither an existing file nor an existing
directory,
THEN the tool SHALL print an error message identifying the offending argument
to STDERR
AND SHALL exit with a non-zero return code.
Derived from:
Issues:
  • missing reference to Software Requirements
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC System_requirement pkg_req.Pkg_Output_Directory_Created
IF the directory of the given output file path does not exist,
THEN the tool SHALL create it, including any missing parent directories,
before writing the output file.
Derived from:
Issues:
  • missing reference to Software Requirements
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC System_requirement pkg_req.Pkg_File_Item
The tool SHALL create a LOBSTER output item of type "Activity" for each input file
IF the file represents a test case, identified by having an <INFORMATION> node
containing a <TAGS> node with a <TAG> child node whose text is "TESTCASE"
(case-insensitive)
OR IF a lobster-trace is given in an ANALYSIS block
(details see [[Trace_in_Analysis_Node]]).

The following requirements describe how to fill the "refs" attribute of these
items.

Note: If no requirements is fulfilled, which describes how to fill the "refs" attribute,
then the item SHALL be created with an empty "refs" attribute.
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC System_requirement pkg_req.Trace_in_Test_Step_Node
Note: Pay attention to the difference between TESTSTEP and TESTSTEPS!

The tool SHALL extract all tags (marked by "lobster-trace") from <VALUE> nodes
from the specified input files
WHERE all of the following conditions apply:
- The file SHALL be a test case, identified by having an <INFORMATION> node
containing a <TAGS> node with a <TAG> child node whose text is "TESTCASE"
(case-insensitive).
- The <TESTSTEPS> node is of type "testCase".
- The <TESTSTEP> node is the first child node of a <TESTSTEPS> node.
- The <TESTSTEP> node is named "TsBlock".
- The <VALUE> node is nested inside a <TESTSTEP> node.
- The <VALUE> node contains one or more substrings in the format
"lobster-trace:<REQUIREMENT_ID>"
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC System_requirement pkg_req.Trace_in_Analysis_Node
The tool SHALL extract all tags (marked by "lobster-trace") from <DESCRIPTION> nodes
from the specified input files
WHERE all of the following conditions apply:
- The <ANALYSISITEM> node is a **direct** child node of a <TRACE-ANALYSIS> node.
- The <ANALYSISITEM> node is of type "episode".
- The <DESCRIPTION> node is a **direct** child node of an <ANALYSISITEM> node.
- The <DESCRIPTION> node contains the substring in the format
"lobster-trace:<REQUIREMENT_ID>"
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC System_requirement pkg_req.Misplaced_Value_Node_Trace_Error
IF a "lobster-trace" tag is found in a <VALUE> node which does not satisfy the
nesting conditions of [[Trace_in_Test_Step_Node]],
THEN the tool SHALL print an error message identifying the file and the line
number(s) of the misplaced tag(s)
AND SHALL exit with a non-zero return code.
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC System_requirement pkg_req.Misplaced_Description_Node_Trace_Warning
IF a "lobster-trace" tag is found in a <DESCRIPTION> node which does not satisfy
the nesting conditions of [[Trace_in_Analysis_Node]],
THEN the tool SHALL print a warning message to STDOUT identifying the file and
the misplaced tag
AND SHALL continue processing the remaining input.

Note: This requirement does not influence the tool return code.
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC

Software Requirements

lobster/tools/pkg/requirements/software_requirements.trlc
TRLC Software_requirement pkg_req.Xml_Parser_Extracts_Allowed_Value_Traces
The function "xml_parser" SHALL return one activity entry per
"lobster-trace:" substring found in a <VALUE> node located in an allowed
<TsBlock> (the first <TsBlock> under <TESTSTEPS>, or a <TsBlock> that is a
direct child of it), for a file identified as a test case.
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC Software_requirement pkg_req.Xml_Parser_Returns_Empty_List_When_Not_Applicable
The function "xml_parser" SHALL return an empty list,
IF the file is not identified as a test case,
OR IF no "lobster-trace:" substring is found in any allowed <VALUE> node.
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC Software_requirement pkg_req.Xml_Parser_Raises_On_Misplaced_Value_Trace
The function "xml_parser" SHALL raise a LOBSTER_Exception whose message
names the file and the line number(s),
IF a "lobster-trace:" substring is found in a <VALUE> node that is not
located in an allowed <TsBlock>.
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC Software_requirement pkg_req.Extract_Trace_Analysis_Extracts_Valid_Traces
The function "extract_lobster_traces_from_trace_analysis" SHALL return one
trace entry for each <DESCRIPTION> node that is a direct child of an
<ANALYSISITEM> node of type "episode", which is itself a direct child of a
<TRACE-ANALYSIS> node, and that contains a "lobster-trace:" substring.
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC Software_requirement pkg_req.Extract_Trace_Analysis_Collects_Misplaced_Warnings
The function "extract_lobster_traces_from_trace_analysis" SHALL return one
misplaced-trace warning message for each <DESCRIPTION> node under a
<TRACE-ANALYSIS> node that contains a "lobster-trace:" substring but does
not satisfy the direct-child conditions of [[Trace_in_Analysis_Node]].
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC Software_requirement pkg_req.Create_Raw_Entry_Builds_Refs_From_First_Activities
The function "create_raw_entry" SHALL update the "data" dictionary
with one Activity for the given file with framework "lobster-pkg" and kind "test",
AND SHALL add a tracing target for each requirement id parsed out of every
trace_list entry marked with activity "first".
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
TRLC Software_requirement pkg_req.Create_Default_Activity_Only_For_Testcase
The function "create_default_activity" SHALL create an Activity with
framework "lobster-pkg" and kind "test" for the given file,
IF the file is identified as a test case,
AND SHALL NOT create any entry otherwise.
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC

Implementation

Verification and Validation

System Tests

tests_system/lobster_pkg/test_invalid_scenario.py
PyUnit Test test_invalid_scenario.InvalidInputFilePkgTest.test_not_existing_pkg_file:31
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
PyUnit Test test_invalid_scenario.InvalidInputFilePkgTest.test_missing_input_parameter:50
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
PyUnit Test test_invalid_scenario.InvalidInputFilePkgTest.test_not_existing_output_path:67
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
PyUnit Test test_invalid_scenario.InvalidInputFilePkgTest.test_misplaced_tags_in_analysis_node:93
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
PyUnit Test test_invalid_scenario.InvalidInputFilePkgTest.test_misplaced_tags_in_value_node:122
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
PyUnit Test test_invalid_scenario.InvalidInputFilePkgTest.test_invalid_xml_file:148
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
tests_system/lobster_pkg/test_valid_scenario.py
PyUnit Test test_valid_scenario.InputFilePkgTest.test_valid_input_pkg_file:32
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
PyUnit Test test_valid_scenario.InputFilePkgTest.test_valid_input_ta_file:52
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
PyUnit Test test_valid_scenario.InputFilePkgTest.test_valid_ta_file_with_misplaced_traces:71
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
PyUnit Test test_valid_scenario.InputFilePkgTest.test_valid_pkg_file_with_misplaced_traces:96
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
PyUnit Test test_valid_scenario.InputFilePkgTest.test_valid_input_pkg_files:121
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
PyUnit Test test_valid_scenario.InputFilePkgTest.test_valid_input_file_and_extra_file:143
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
PyUnit Test test_valid_scenario.InputFilePkgTest.test_valid_input_pkg_folder:164
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
PyUnit Test test_valid_scenario.InputFilePkgTest.test_valid_file_without_lobster_trace:189
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
PyUnit Test test_valid_scenario.InputFilePkgTest.test_valid_file_without_testcase_tag:208
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC

Software Tests

tests_unit/lobster_pkg/test_pkg.py
PyUnit Test test_pkg.LobsterPkgTests.test_lobster_pkg_functions_with_valid_xml_format:52
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
PyUnit Test test_pkg.LobsterPkgTests.test_lobster_pkg_functions_with_misplaced_lobster_lines:88
Derived from:
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC
PyUnit Test test_pkg.LobsterPkgTests.test_lobster_pkg_functions_with_invalid_xml_format:101
Build Reference: main | Timestamp: 2026-10-19 07:48:19+00:00 UTC

LOBSTER Version: 1.1.0-dev