Skip to content

Commit 68ad7c0

Browse files
pahmannPandaeDo
authored andcommitted
Verification: Update test specification details
Enhance verification process to include pending parts of 8-9.4.2.2 and 8-9.4.3.3 Closes #566 Signed-off-by: Philipp Ahmann <philipp.ahmann@de.bosch.com>
1 parent db72304 commit 68ad7c0

5 files changed

Lines changed: 55 additions & 15 deletions

File tree

process/process_areas/verification/guidance/verification_guideline.rst

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,14 @@ In order to check the test results for the impact of a change or addition, it is
9999
execute affected test cases locally upfront using the execution framework of the build tooling
100100
following basically the steps the CI does locally.
101101

102+
Tests have to be identifiable by a unique identifier, as described in :need:`gd_guidl__verification_specification`.
103+
They need need to have a clear passed or failed result and a documented configuration to enable proper evaluation of the result.
104+
102105
Automated tests can also be executed locally, as the sources and binaries are available for re-execution.
103106
Failing test cases during re-execution can be reported following the guide :need:`gd_temp__problem_template`.
104107

108+
During a relase, for any non executed test case, the reason for non-execution has to be documented in the
109+
:need:`wp__platform_sw_release_note` or :need:`wp__module_sw_release_plan` depending on the level (unit to platform) of the test case.
105110

106111
Execution of manual test cases
107112
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -112,20 +117,43 @@ test cases and reports the result in the same logging format as automated tests
112117
This enables parsable execution logs which can be used in automated test result collection.
113118
Failing test cases during manual execution are reported by following the guide :need:`gd_temp__problem_template`.
114119

120+
Also manual test cases are written following the :need:`gd_guidl__verification_specification` and have a unique identifier.
121+
122+
A tag `manual` is suggested to mark the test case as manual, so that it can be filtered out from automated test execution.
123+
124+
In case a manual test case is not executed for a release, the reason for non-execution has to be documented in the
125+
:need:`wp__platform_sw_release_note` or :need:`wp__module_sw_release_plan` depending on the level of the test case.
126+
115127
Reporting of failing test cases
116128
-------------------------------
117129

118130
Any failing test case requires an ISSUE.
131+
119132
The passing rate of safety-critical test cases need to be 100% in order to release the affected component.
120-
In case of a lower pass rate than 100% for QM level tests, the :need:`rl__project_lead` and
121-
:need:`rl__project_lead` can decide, if the platform is in a releasable state. The accepted minimal
122-
path rate is defined in the :need:`wp__verification_plan`. Due to the high degree of automation, a
123-
it is recommended that a path rate lower 95% is not acceptable.
133+
In case of a lower pass rate than 100% for QM level tests, the :need:`rl__project_lead`
134+
can decide, if the platform is in a releasable state. The accepted minimal pass rate is defined
135+
in the :need:`wp__verification_plan`. Due to the high degree of automation, it is recommended
136+
that a pass rate lower 95% is not acceptable. This percentage may increase with the maturity of
137+
the overall platform and the test coverage.
124138

125-
In case an existing test case is failing due to regression in the CI, the respective issuer of the
139+
In case an existing test case is failing due to regression in the CI, the respective issue of the
126140
PR in their role as :need:`rl__contributor` is responsible for fixing the test case as part of
127141
respective PR.
128142

143+
Test case results are also documented in the :need:`wp__verification_platform_ver_report` and
144+
:need:`wp__verification_module_ver_report`.
145+
146+
Reporting of not executed or skipped test cases
147+
-----------------------------------------------
148+
149+
In case a test case is not executed or skipped, a rational has to be provided in the release notes
150+
in case they are link against a requirement. A skipped or not executed test case is not counting into
151+
the value for the requirements coverage, as only executed and passed test cases can be counted for the
152+
coverage of a requirement.
153+
154+
Skipped or not executed test cases are also documented in the :need:`wp__verification_platform_ver_report` and
155+
:need:`wp__verification_module_ver_report`.
156+
129157
Reuse of existing test cases
130158
----------------------------
131159

process/process_areas/verification/guidance/verification_process_reqs.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ Process Requirements
146146
The tool automation shall automatically generate the Verification reports.
147147
These may be independent documents (i.e. not integrated into docs-as-code based repositories).
148148
The content of the reports is specified in :need:`gd_temp__platform_ver_report` and :need:`gd_temp__mod_ver_report`.
149+
The execution results of a test cases are marked with a clear passed of failed result.
149150

150151
.. gd_req:: Verification Report Archiving
151152
:id: gd_req__verification_report_archiving
@@ -174,9 +175,9 @@ Process Requirements
174175
- TestType and DerivationTechnique shall be set
175176
- Description shall not be empty
176177
- In a Platform Integration Test Partially/FullyVerifies shall be set to a Platform Requirement
177-
- If Partially/FullyVerifies are set in Feature Integration Test these shall link to Feature Requirements
178-
- If Partially/FullyVerifies are set in Component Integration Test these shall link to Component Requirements
179-
- If Partially/FullyVerifies are set in Unit Test these shall link to Component Requirements
178+
- If Partially/FullyVerifies are set in Feature Integration Test these shall link to at least one Feature Requirement
179+
- If Partially/FullyVerifies are set in Component Integration Test these shall link to at least one Component Requirement
180+
- If Partially/FullyVerifies are set in Unit Test these shall link to at least one Component Requirement
180181

181182
.. gd_req:: Verification Documentation Checks Extended
182183
:id: gd_req__verification_checks_extended

process/process_areas/verification/guidance/verification_specification.rst

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ A test specification contains the following attributes.
5555

5656
- The objective of the test.
5757
- Inputs
58-
- Expected outcome (e.g. "A success message is displayed.")
58+
- Expected outcome/output/result (e.g. "A success message is displayed." or "Result should be 42.")
5959
- Test environment (e.g. network configuration, clean system state)
60+
- Expected time sequence of events and behavior (where applicable and an expectation)
6061
-
6162
* - TestType
6263
- Examples are:
@@ -82,6 +83,14 @@ A test specification contains the following attributes.
8283

8384
The implementation of :need:`wp__verification_plan` defines the full list of allowed types and methods.
8485

86+
It is assumed that tests will be written as code (also for manual tests, which are script based)
87+
and each test case will have a unique identifier, by its script, execution call, or function name.
88+
The call used to execute the test marks the uniqueness of the test case and its identification,
89+
e.g. guaranteeing proper traceability and reproducibility.
90+
91+
As the tests are stored in a repository close to the implementation code, versioning is done by the versioning of the repository.
92+
93+
Any specification and resulting implementation ends with a clear passed or failed result.
8594

8695
Test description
8796
----------------

process/process_areas/verification/verification_concept.rst

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@ Usually the defined methods are not applied on each verification level between u
124124
Also their execution may differ whether it is a QM or ASIL rated test case.
125125
The rigor is described in the implementation of :need:`wp__verification_plan`.
126126

127-
128127
Automated test cases (as well as manual, where applicable) shall contain further information about which methods have been applied.
129128
The corresponding guidance is given here: :need:`gd_guidl__verification_guide`.
130129
The identifier of the respective method is to be used as meta data (*TestType* and *DerivationTechnique*).
@@ -161,17 +160,20 @@ tests or component tests. This linking is done using metatags. This is also true
161160
integration tests linking to the component requirements and architecture.
162161

163162
Traceability of feature integration tests shall be established through linking those test cases to
164-
feature requirements and architecture as features describe the integrated behaviour of all components.
163+
feature requirements and architecture as features describe the integrated behavior of all components.
165164

166165
Traceability of platform integration tests shall be established through linking those test cases to
167-
stakeholder requirements as stakeholder requirements describe the platform behaviour.
166+
stakeholder requirements as stakeholder requirements describe the platform behavior.
168167

169168
Note that all the above tests shall only link to requirements of type "Functional" and "Interface".
170169
The verification of requirements of types "Process" and "Non-Functional" will be done via Analysis,
171170
which is part of the requirement inspection :need:`doc__feature_name_req_inspection` and `Component Requirements Inspection Checklist <https://eclipse-score.github.io/module_template/main/score/component_example/docs/requirements/chklst_req_inspection.html>`__.
172171
Requirements always include Assumptions Of Use.
173172

174-
A more detailed description of how to link code to requirements is available here: :need:`gd_req__verification_link_tests`
173+
A more detailed description of how to link code to requirements is available by :need:`gd_req__verification_link_tests`.
174+
175+
Another element of traceability for a proper backlink is the unique identification of test cases as described in the
176+
:need:`gd_guidl__verification_specification`.
175177

176178
Workflow for Verification Guidance
177179
----------------------------------

process/process_areas/verification/verification_getstrt.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ General Workflow
4141

4242
The workflows can be split into 4 major parts:
4343

44-
* Test planning filling the template :need:`gd_temp__verification_plan`.
45-
* Test specification and implementation for the respective testing level
44+
* Test planning by filling the template :need:`gd_temp__verification_plan`.
45+
* Test specification and implementation for the respective testing level (unit to platform).
4646
* Test execution by the CI.
4747
(Manual test cases are treated as automated test with user interaction and timeouts.)
4848
* Test reports are created when all verification artifacts on a module and platform level are

0 commit comments

Comments
 (0)