Skip to content

Commit 28dcde5

Browse files
attifunelpahmann
andauthored
Attifunel process req test description added (#679)
* attifunel added requirement testing description * attifunel improved clarification * attifunel added ref. to interface testing as well * attifunel unified naming * added some notes, typos, corrections, improvements etc. * Update wording for derived test case techniques Signed-off-by: Philipp Ahmann <2428012+pahmann@users.noreply.github.com> --------- Signed-off-by: Philipp Ahmann <2428012+pahmann@users.noreply.github.com> Co-authored-by: Philipp Ahmann <2428012+pahmann@users.noreply.github.com>
1 parent 33e89a9 commit 28dcde5

1 file changed

Lines changed: 38 additions & 9 deletions

File tree

process/process_areas/verification/guidance/verification_methods.rst

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ interfaces (the points where different parts of the system connect and interact)
7777
correctly and reliably. This includes validating data formats, protocols, error handling, and
7878
overall communication integrity incl. the respective consumed and exchanged data.
7979

80-
It can be distinguished between internal and external interfaces. Internal interfaces are best covered
81-
on unit level. External interfaces work best on component integration and feature level.
80+
The method applies to both internal and external interfaces. Internal interfaces are best covered
81+
on unit level. External interfaces are tested best on component integration and feature level.
8282

8383
It is important that the interface tests include the testing of the actual intended functionality
8484
which the interface provides. The related requirements, architectural design, but also the descriptive
@@ -114,14 +114,14 @@ Types of ``interface-test`` are:
114114
Stress the interfaces to see how they behave under heavy load (e.g., sending a large number of
115115
messages simultaneously).
116116

117-
- **Security Tests:** (Relevant for code interacting with security critical parts)
117+
- **Security Tests:** (Relevant for code part of, or interacting with, security critical parts)
118118

119119
Verify that the interfaces are protected against unauthorized access and data breaches.
120120

121121
- **Timing and Performance Tests** (Relevant for realtime constraints)
122122

123-
Measure the latency and throughput of the interfaces. This is mainly on integration level and is
124-
hard to have reasonable testing in the reference implementation
123+
Measure the latency and throughput of the interfaces. This should be tested mainly on integration level.
124+
Conversely, this method could be difficult to apply in the reference implementation
125125

126126
.. _ver_structural:
127127

@@ -131,7 +131,7 @@ Structural Coverage
131131
Structural coverage is a white-box testing technique used to check if the testing is sufficient by
132132
analyzing if code constructs were called during testing.
133133

134-
In S-CORE we do both:
134+
Metrics applied are:
135135

136136
* **Statement Coverage:** Measures whether each executable source code statement has been executed.
137137

@@ -140,8 +140,8 @@ In S-CORE we do both:
140140

141141
S-CORE evaluates this coverage using the compiler selected for the target reference platform.
142142

143-
If a sufficient structural coverage is not reached then additional test cases are added.
144-
What is sufficient and how to determine the coverage is defined in the :need:`wp__verification_plan` of the project.
143+
If a sufficient structural coverage is not reached then additional test cases shall be added.
144+
The coverage targets and how to determine the coverage is defined in the :need:`wp__verification_plan` of the project.
145145

146146
.. _ver_sta:
147147

@@ -174,10 +174,31 @@ Derivation Techniques
174174

175175
Following derivation techniques are explained
176176

177+
* :ref:`Requirements analysis <ver_req_anal>`
177178
* :ref:`Boundary Values <ver_boundary>`
178179
* :ref:`Equivalence Classes <ver_equivalence>`
179180
* :ref:`Fuzzy Testing <ver_fuzzy>`
180181

182+
.. _ver_req_anal:
183+
184+
Requirements analysis
185+
"""""""""""""""""""""
186+
187+
Requirements analysis is a test derivation technique where tests are designed based on the
188+
requirements assigned to the software element under test (unit, component, feature etc.).
189+
If available, the verification method defined for each requirement should be used as
190+
the basis of the test cases design.
191+
192+
Requirements should always be tested against their "nominal" behaviour: i.e. "if input
193+
x = A, the output y of SW component Z shall be equal to B". This leads to a test case
194+
injection value x = A and verifying that output y = B. "Negative" testing technique should
195+
be also considered: i.e. testing what happens when input x = C (if not already specified
196+
in other requirements).
197+
198+
Note that requirement-based derived test case may also include other techniques and derivation methods
199+
mentioned here, such as Boundary Values, Equivalence Classes, Fuzzy Testing, Interface
200+
Testing and Fault Injection.
201+
181202
.. _ver_boundary:
182203

183204
Boundary Values
@@ -270,11 +291,15 @@ How to perform the analysis:
270291
input variables simultaneously. This is especially important if there are dependencies
271292
between the variables.
272293

294+
In case of non-trivial determination of test case inputs, a short explanation of the
295+
process followed can be given in order to facilitate maintenance and test regression,
296+
as well as during audits and assessments.
297+
273298
.. _ver_equivalence:
274299

275300
Equivalence Classes
276301
"""""""""""""""""""
277-
Equivalence Classes or also called Equivalence Partitioning (EP) is a software testing technique
302+
Equivalence Classes, also called Equivalence Partitioning (EP), is a software testing technique
278303
that divides the input domain of a program into equivalence classes or partitions. The principle
279304
is that all values within a single partition are treated equivalently by the software. Therefore,
280305
only one test case from each partition is needed to achieve adequate test coverage. This reduces
@@ -346,6 +371,10 @@ How to perform the analysis:
346371
Create test cases using the representative values from each equivalence class.
347372
Aim to cover all classes in your test suite.
348373

374+
In case of non-trivial determination of test case inputs, a short explanation of the
375+
process followed can be given in order to facilitate maintenance and test regression,
376+
as well as during audits and assessments.
377+
349378
.. _ver_fuzzy:
350379

351380
Fuzzy Testing

0 commit comments

Comments
 (0)