diff --git a/docs/internals/requirements/requirements.rst b/docs/internals/requirements/requirements.rst index a49df7bf4..f3dbd685c 100644 --- a/docs/internals/requirements/requirements.rst +++ b/docs/internals/requirements/requirements.rst @@ -46,6 +46,7 @@ This section provides an overview of current process requirements and their clar Req, 'tool_req__docs' in id and implemented == "YES" and "Requirements" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Requirements" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Requirements" in tags and status == "valid", 'tool_req__docs' in id and "Requirements" in tags and status != "valid" Arch, 'tool_req__docs' in id and implemented == "YES" and "Architecture" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Architecture" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Architecture" in tags and status == "valid", 'tool_req__docs' in id and "Architecture" in tags and status != "valid" DDesign, 'tool_req__docs' in id and implemented == "YES" and "Detailed Design & Code" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Detailed Design & Code" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Detailed Design & Code" in tags and status == "valid", 'tool_req__docs' in id and "Detailed Design & Code" in tags and status != "valid" + Verif, 'tool_req__docs' in id and implemented == "YES" and "Verification Evidence" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Verification Evidence" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Verification Evidence" in tags and status == "valid", 'tool_req__docs' in id and "Verification Evidence" in tags and status != "valid" TVR, 'tool_req__docs' in id and implemented == "YES" and "Tool Verification Reports" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Tool Verification Reports" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Tool Verification Reports" in tags and status == "valid", 'tool_req__docs' in id and "Tool Verification Reports" in tags and status != "valid" Other, 'tool_req__docs' in id and implemented == "YES" and "Process / Other" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Process / Other" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Process / Other" in tags and status == "valid", 'tool_req__docs' in id and "Process / Other" in tags and status != "valid" SftyAn, 'tool_req__docs' in id and implemented == "YES" and "Safety Analysis" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Safety Analysis" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Safety Analysis" in tags and status == "valid", 'tool_req__docs' in id and "Safety Analysis" in tags and status != "valid" @@ -820,6 +821,28 @@ Testing Docs-AS-Code shall provide a way to gather statistics on linkages to implementation(source_code_links) & tests(testlink) for all needs. It shall also be possible to filter these by type and use the provided statistics in the documentation (via diagrams drawn from it etc.) +๐Ÿ”Ž Verification Evidence +######################## + +.. tool_req:: Support machine-readable module verification reports + :id: tool_req__docs_verification_report_need + :tags: Verification Evidence + :implemented: YES + :version: 1 + :satisfies: gd_req__verification_reporting[version==1] + :parent_covered: NO: process wording is broader than the currently modeled report artifact. + + Docs-as-Code shall support a machine-readable module verification report need type. + + The need type shall: + + * use ``mod_ver_report`` as directive type + * classify the report by ``safety``, ``security``, ``status`` and ``verification_method`` + * link the report to the verified module via ``belongs_to`` + * allow links to contained verification evidence via ``contains`` + * allow links to covered artifacts via ``covers`` + * allow links to backing documents or work products via ``evidence`` and ``realizes`` + ๐Ÿงช Tool Verification Reports ############################ diff --git a/src/extensions/score_metamodel/metamodel.yaml b/src/extensions/score_metamodel/metamodel.yaml index 9a6deb4ad..a87f93a25 100644 --- a/src/extensions/score_metamodel/metamodel.yaml +++ b/src/extensions/score_metamodel/metamodel.yaml @@ -933,6 +933,37 @@ needs_types: fully_verifies: ANY partially_verifies: ANY + # req-Id: tool_req__docs_verification_report_need + mod_ver_report: + title: Module Verification Report + prefix: mod_vrep__ + mandatory_options: + # req-Id: tool_req__docs_common_attr_safety + safety: ^(QM|ASIL_B)$ + # req-Id: tool_req__docs_common_attr_security + security: ^(YES|NO)$ + # req-Id: tool_req__docs_common_attr_status + status: ^(valid|invalid)$ + # req-Id: tool_req__docs_verification_report_need + verification_method: ^.*$ + optional_options: + requirements_tests_completely_passed_percent: ^(100|[1-9]?[0-9])$ + line_coverage_percent: ^(100|[1-9]?[0-9])$ + branch_coverage_percent: ^(100|[1-9]?[0-9])$ + applies_to_module_version: ^.*$ + mandatory_links: + # req-Id: tool_req__docs_verification_report_need + belongs_to: mod + optional_links: + # req-Id: tool_req__docs_verification_report_need + contains: ANY + evidence: ANY + covers: ANY + realizes: workproduct + tags: + - verification_report + parts: 3 + # https://eclipse-score.github.io/process_description/main/permalink.html?id=gd_temp__change_decision_record dec_rec: @@ -1068,6 +1099,10 @@ needs_extra_links: incoming: partially_verified_by outgoing: partially_verifies + evidence: + incoming: evidence_for + outgoing: evidence + ############################################################## # Graph Checks diff --git a/src/extensions/score_metamodel/tests/rst/options/test_options_verification_report.rst b/src/extensions/score_metamodel/tests/rst/options/test_options_verification_report.rst new file mode 100644 index 000000000..c6f84faed --- /dev/null +++ b/src/extensions/score_metamodel/tests/rst/options/test_options_verification_report.rst @@ -0,0 +1,76 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* +#CHECK: check_options + + +.. Base architecture and requirement objects used by verification report tests + +.. feat:: Verification Feature + :id: feat__verification_feature + :security: YES + :safety: ASIL_B + :status: valid + +.. comp:: Verification Component + :id: comp__verification_component + :security: YES + :safety: ASIL_B + :status: valid + :belongs_to: feat__verification_feature + +.. mod:: Verification Module + :id: mod__verification_module + :security: YES + :safety: ASIL_B + :status: valid + :includes: comp__verification_component + +.. comp_req:: Verification Requirement + :id: comp_req__verification__sample + :reqtype: Functional + :security: YES + :safety: ASIL_B + :status: valid + + Requirement text for verification report tests. + + +.. Valid machine-readable verification report need +#EXPECT-NOT[+2]: does not follow pattern + +.. mod_ver_report:: Verification Report Valid + :id: mod_vrep__verification__valid + :safety: ASIL_B + :security: YES + :status: valid + :verification_method: test_and_inspection + :requirements_tests_completely_passed_percent: 95 + :line_coverage_percent: 90 + :branch_coverage_percent: 85 + :applies_to_module_version: 1.0.0 + :belongs_to: mod__verification_module + :covers: comp_req__verification__sample + + +.. Invalid coverage percentage value in module verification report +#EXPECT[+2]: mod_vrep__verification__bad_coverage.line_coverage_percent (150): does not follow pattern + +.. mod_ver_report:: Verification Report Invalid Coverage + :id: mod_vrep__verification__bad_coverage + :safety: ASIL_B + :security: YES + :status: invalid + :verification_method: inspection + :line_coverage_percent: 150 + :belongs_to: mod__verification_module