@@ -77,8 +77,8 @@ interfaces (the points where different parts of the system connect and interact)
7777correctly and reliably. This includes validating data formats, protocols, error handling, and
7878overall 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
8383It is important that the interface tests include the testing of the actual intended functionality
8484which 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
131131Structural coverage is a white-box testing technique used to check if the testing is sufficient by
132132analyzing 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
141141S-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
183204Boundary 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
275300Equivalence 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
278303that divides the input domain of a program into equivalence classes or partitions. The principle
279304is that all values within a single partition are treated equivalently by the software. Therefore,
280305only 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
351380Fuzzy Testing
0 commit comments