Structuring of Test Specifications
Introduction
The QualityGate process aggregates individual test results into an overall evaluation using clearly defined logical rules. The evaluation is based on:
Testing Component | Evaluation Details | Logical Operator |
---|---|---|
Test suites |
One NOK in any suite results in the overall QualityGate check failing. |
AND |
Test groups |
Any NOK within the group causes the parent test suite to be NOK. |
AND |
Tests |
At least one OK within the group marks the test group as OK. Tests can yield:
|
OR |
Additional conditions |
A single NOK result results in the test being marked as NOK. |
AND |
This chapter provides an overview of how individual results are interpreted and integrated into a final evaluation, ensuring that all aspects of the testing components are considered. The subsequent sections illustrate the structure of test specifications and detail the rules and exceptions that govern the overall outcome of a Quality Gate Check.
General structure and result aggregation
The following images illustrate the structure of test specifications, including test suites, test groups, tests, rules, and additional conditions. The charts depict how the results are aggregated to determine the overall outcome of a Quality Gate Check.
Structuring of test suites, test groups, tests, rules and additional conditions
OK overall result due to all results being OK
OK overall result despite one NOK test result
NOK overall result due to one NOK test group
Examples of structuring
Test specifications must include either process numbers or locations, mixing both is prohibited.
A valid test specification is structured as follows:
-
Define at least one process number or facility to validate (e.g.,
3001
). -
Specify one or more test suites (e.g.,
CP4
). -
Include at least one test group within every test suite (e.g.,
mainPart
). -
Provide at least one test per group that references a defined process number or facility (e.g.
Line1
). -
Apply at least one additional condition (see subsequent chapter) to the process number or facility (e.g.,
finalState
requiring the final status to be OK).
Graphical representation of the above given example
Example: OK return value
Consider the following chronological sequence from the quality database:
Process Number | State |
---|---|
1001 |
OK |
2000 |
NOK |
2001 |
OK |
3000 |
OK |
3001 |
NOK |
3001 |
OK |
4000 |
OK |
-
Process 2000 is not referenced by the test specification and is therefore ignored.
-
For process 3001, the final status is OK, fulfilling the
finalState OK
condition. -
Consequently, the associated test group is considered OK.
-
The test suite, inheriting the group result, is evaluated as OK, resulting in an overall Quality yGate Check of OK.
Graphical representation of the above OK scenario
Example: NOK return value
Consider the following chronological sequence from the quality database:
Process Number | State |
---|---|
1001 |
OK |
2000 |
OK |
2001 |
OK |
3000 |
OK |
3001 |
NOK |
-
The additional condition
finalState OK
for process number 3001 is violated because process number 3001 has no OK status. -
Consequently, the parent test group is considered NOK.
-
The parent test suite is also evaluated as NOK.
-
As the test suite is NOK, the overall QualityGate result returns NOK.
Graphical representation of the above NOK scenario
Example: Multi-line scenario
This scenario demonstrates a Test Specification involving multiple production lines, where different processes and conditions are applied.
Initial situation:
* A product can be produced on different production lines.
* Quality Gate Check must validate the following:
- ScrewCover
: Process 84002 must appear with the final processing result OK on all lines.
- LeakTest
: Processes 90001 and 90002 must appear on the lines, each with the final processing result OK and executed no more than 3 times.
Test Specification (Option 1):
-
Specify process numbers 84002, 90001, and 90002.
-
Configure one test suite:
MyTestSuite
. -
Within
MyTestSuite
, create one test groupMyTestGroup
containing two tests:-
Test
Option1
includes-
Process 84002 with additional condition
finalState
-
Process 90001 with additional conditions
finalState
andMaxCycle
= 3.
-
-
Test
Option2
includes-
Process 84002 with additional condition
finalState
-
Process 90002 with additional conditions
finalState
andMaxCycle
= 3.
-
-
Graphical representation of the multi-line scenario
For an overall OK result, the quality data must match either Test Option1
or Test Option2
.
Test Specification (Option 2):
-
Specify process numbers 84002, 90001, and 90002.
-
Configure one test suite:
MyTestsuite
. -
Within
MyTestsuite
, create two test groups:-
Group
ScrewCover
with one test:-
Test
T1
: Includes Process 84002 with the additional conditionFinalState
.
-
-
Group
LeakTest
with two tests:-
Test
T1
: Includes Process 90001 with additional conditionsFinalState
andMaxCycle
= 3. -
Test
T2
: Includes Process 90002 with additional conditionsFinalState
andMaxCycle
= 3.
-
-
Graphical representation of the multi-line scenario
In this alternative approach, the overall Quality Gate Check result is OK if both groups are OK, meaning the ScrewCover
test passes and at least one of the LeakTest
tests passes.
Return values of resultCode
restultCode | Error Code | Description |
---|---|---|
0 |
QG_TestError_TestOk |
The Quality Gate check completed successfully. |
101003201 |
QG_TestError_TestFailed |
The Quality Gate check failed. |
101003202 |
QG_TestError_InvalidSerialNo |
The supplied serial number is invalid or a corresponding part identifier could not be found. |
101003203 |
QG_TestError_InvalidIdentifier |
The part identifier does not identify a part, or no data exists for that part. It can either be provided directly or received during the serial number conversion. |
101003204 |
QG_TestError_InvalidCheckType |
The provided CheckType value is invalid or no corresponding configuration exists. |
101003205 |
QG_TestError_InvalidIdentType |
The provided IdentType value is invalid or unknown. |
101003206 |
QG_TestError_InvalidTypeNo |
The supplied type number is invalid or unknown. |
101003207 |
QG_TestError_InvalidTypeVar |
The supplied type variant is invalid or unknown. |
101003208 |
QG_TestError_InvalidConfig |
The test specification contains errors and cannot be used. |
101003209 |
QG_TestError_TypeMismatch |
Either the supplied type number or type variant does not match the stored database value. |
101003210 |
QG_TestError_MinTimerUnderrun |
The minimum cycle time between the tested station (location) and test execution is less than the defined MinTimer. |
101003211 |
QG_TestError_MaxTimerOverrun |
The maximum cycle time between the tested station (location) and test execution is greater than the defined MaxTimer. |
101003212 |
QG_TestError_InvalidRefParameters |
The supplied reference parameters (refLocation, refTypeNo, refVersion) do not identify any reference data, or no reference data exists for these parameters. |
101003213 |
QG_TestError_InvalidRefTypeNo |
The supplied reference type number is invalid or unknown. |
101003214 |
QG_TestError_InvalidRefVersion |
The supplied reference version number is invalid or unknown. |
101003215 |
QG_TestError_InvalidRefLocationID |
The supplied reference LocationID is invalid or unknown. |
101003216 |
QG_TestError_RefLocationIDMismatch |
The supplied reference facility does not match the configured facility (QualityGateCheckTrace.Config.xml). |
101003218 |
QG_TestError_InvalidWfsListOfIdentifiers |
The supplied list of identifiers is invalid or unknown. |
101003219 |
G_TestError_InvalidWfsTartgetKey |
The supplied TargetKey is invalid or unknown. |
101003220 |
QG_TestError_InvalidLocationID |
The supplied LocationID is invalid or unknown. |
101003221 |
QG_TestError_InvalidBlockListName |
The supplied block list name is invalid or unknown. |
101003222 |
QG_TestError_InvalidOERCheck |
The OER and quality data do not match. |
101003500 |
QG_ProcessError_ExecutionFailed |
The check was aborted due to a critical error; not all tests were performed. |
101003501 |
QG_ProcessError_InvalidCommand |
The sent command is unknown and will be ignored. |
101003502 |
QG_ProcessError_DatabaseConnectionFailed |
The connection to the Oracle DB has failed. |