623 lines
53 KiB
Gherkin
623 lines
53 KiB
Gherkin
# ================================================================================================================================
|
|
Feature: CheckProductionState
|
|
Test the functionality of the executed production steps and preconditions needed for finalizing of the Cordonel and to prepare it
|
|
for shipping.
|
|
# ================================================================================================================================
|
|
|
|
@CheckEolProgress
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_001]_Check_EOL_Progress
|
|
FUNCTION: Check if an EOL-Progress has all information needed to start the check of all production states.
|
|
PRESETS: none
|
|
INPUTS: The values needed to be predefined automatically by the "Sentinel" on EOL-Progress creation:
|
|
"EOL Id" can be set to any number unequal to 0, 0 will cause an error,
|
|
"EOL StartDate" set to "UTC Now" to take the actual date, else set to "unknown" will leave the date empty
|
|
"Cordonel PcbId" needed for comparison to
|
|
"EOL PcbId".
|
|
"Partial Compare" "X" will be used to check if the string contains a substring defined in the "StringReturn".
|
|
"Partial Compare" "-" will force the string being exact as defined!
|
|
OUTPUT: "StringReturn" as test result containing the expected string or "null" as error result from the method.
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the property to be checked for 'EOLSoftwareNameAndVersion'
|
|
And Name the object type holding the property 'StringReturn'
|
|
And Name the private function to be checked for functionality 'CheckEolProgress'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
| TestNo | EOL Id | EOL StartDate | Cordonel PcbId | EOL PcbId | Partial Compare | StringReturn | Comment |
|
|
| 1 | 123 | UTC Now | 182100041 | 182100041 | X | Cordonel | EOL Progress successfully created |
|
|
| 2 | 123 | UTC Now | 0 | 182100041 | - | null | Unmatching Cordonel PcbId |
|
|
| 3 | 123 | UTC Now | 182100041 | 0 | - | null | Unmatching EOL PcbId |
|
|
| 4 | 123 | unknown | 182100041 | 182100041 | - | null | Start date not set |
|
|
| 5 | 0 | UTC Now | 182100041 | 182100041 | X | null | EOL Id not set |
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
|
|
@CheckProductionProperties
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_002]_Check_Requirements
|
|
FUNCTION: Check if any requirement is defined being active for this Cordonel.
|
|
PRESETS: none
|
|
INPUTS: Requirements "Standard Id" just a number or "null",
|
|
"Standard Version" just a number or "null",
|
|
"Standard IsActive" if "X" else "-",
|
|
"Special Id just a number or "null"",
|
|
"Special Version" just a number or "null" and
|
|
"Special IsActive" if "X" else "-".
|
|
OUTPUT: "EOL Status" with results "Okay" or "Failed"
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the property to be checked for 'RequirementRequestChecked'
|
|
And Name the object type holding the property 'EOLStatus'
|
|
And Name the private function to be checked for functionality 'CheckRequirements'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
| TestNo | Standard Id | Standard Version | Standard IsActive | Standard IsApproved | Special Id | Special Version | Special IsActive | Special IsApproved | EOL Status | Comment |
|
|
| 1 | 10 | 5 | X | X | null | null | - | - | Okay | Standard Requirement is active and approved |
|
|
| 2 | 10 | 5 | X | X | 5 | 3 | X | - | Okay | Standard Requirement is active and approved, special is active but not approved |
|
|
| 3 | 10 | 5 | - | - | 5 | 3 | X | X | Okay | Special Requirement is active and approved |
|
|
| 4 | 10 | 5 | X | X | 5 | 3 | X | X | Okay | Both Requirements are active and approved |
|
|
| 5 | 10 | 5 | - | - | 5 | 3 | - | - | Failed | No Requirement is active and no requirement approved |
|
|
| 6 | 10 | 5 | X | - | 5 | 3 | - | - | Failed | Standard Requirement is active but not approved |
|
|
| 7 | 10 | 5 | - | - | 5 | 3 | X | - | Failed | Special Requirement is active but not approved |
|
|
| 8 | null | null | - | - | null | null | - | - | Failed | No Requirement is defined |
|
|
| 9 | null | null | - | - | 5 | 3 | X | X | Failed | Missing Standard Requirement |
|
|
| 10 | null | null | X | X | null | null | - | - | Failed | Standard Requirement is active but undefined |
|
|
| 11 | null | 5 | X | X | null | null | - | - | Failed | Standard Requirement is active but Id missing |
|
|
| 12 | 10 | null | X | X | null | null | - | - | Failed | Standard Requirement is active but version missing |
|
|
| 13 | 10 | 5 | X | X | null | 2 | X | X | Failed | Special Requirement is active but Id missing |
|
|
| 14 | 10 | 5 | X | X | 5 | null | X | X | Failed | Special Requirement is active but version missing |
|
|
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
|
|
@CheckProductionProperties
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_003]_Check_CSD_Status
|
|
FUNCTION: Check the Customer Specific Document (CSD) for its status.
|
|
PRESETS: none
|
|
INPUTS: "CSD ID" the identification number of the CSD,
|
|
"CSD Name" a string for verbose identification,
|
|
"CSD Code" the code in SAP,
|
|
"CSD Status" giving the status "Null", "New", "Blocked", "Known" or "Released".
|
|
OUTPUT: "StatusReturn" with results "Okay", "Failed" or "Warning"
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the object type holding the property 'StatusReturn'
|
|
And Name the private function to be checked for functionality 'ValidateCsd'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
| TestNo | CSD ID | CSD Name | CSD Code | CSD Status | StatusReturn | Comment |
|
|
| 1 | 3100782 | CSD 767978 Canal de Isabel | O1 | Released | Okay | Released CSD approved for production |
|
|
| 2 | 3100782 | CSD 767978 Canal de Isabel | O1 | Known | Warning | Known CSD temporary for production |
|
|
| 3 | 3100782 | CSD 767978 Canal de Isabel | O1 | New | Failed | New CSD invalid for production |
|
|
| 4 | 3100782 | CSD 767978 Canal de Isabel | O1 | Blocked | Failed | Blocked CSD invalid for production |
|
|
| 5 | null | CSD 767978 Canal de Isabel | O1 | Released | Failed | Invalid CSD ID invalid for production |
|
|
| 6 | 3100782 | null | O1 | Released | Failed | Invalid CSD Name invalid for production |
|
|
| 7 | 3100782 | CSD 767978 Canal de Isabel | null | Released | Failed | Invalid CSD Code invalid for production |
|
|
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
|
|
@CheckProductionProperties
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_004]_Check_ProductionOrderNo
|
|
FUNCTION: Compare the Cordonel production-order with the production-order from the requirement to validate that the correct requirements
|
|
going to be used for the check of the actual production state.
|
|
PRESETS: none
|
|
INPUTS: "Cordonel ProdOrderNo" and "Requirement ProdOrderNo"
|
|
OUTPUT: "EOL Status" with results "Okay" or "Failed"
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the private function to be checked for functionality 'CheckProductionOrderNumber'
|
|
And Name the object type holding the property 'EOLStatus'
|
|
And Name the property to be checked for 'RequirementOrderChecked'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
| TestNo | Cordonel ProdOrderNo | Requirement ProdOrderNo | EOL Status | Comment |
|
|
| 1 | 3118323 | 3118323 | Okay | Order number is identical |
|
|
| 2 | 3118323 | 0 | Failed | Unmatching Requirement Order number |
|
|
| 3 | 0 | 3118323 | Failed | Unmatching Cordonel Order number |
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
|
|
@CheckCordonelProperties
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_005]_Check_PcbId
|
|
FUNCTION: Compare the PcbId from Cordonel, EOL-progress and requirement.
|
|
PRESETS: none
|
|
INPUTS: "Cordonel PcbId", EOL PcbId and "Requirement PcbId". If the requirement-PcbId id is "null" then the requirement is order based
|
|
and not just for a single Cordonel!
|
|
OUTPUT: "EOL Status" with results "Okay", "Failed" or "Skipped"
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the private function to be checked for functionality 'CheckPcbId'
|
|
And Name the object type holding the property 'EOLStatus'
|
|
And Name the property to be checked for 'RequirementPcbIdChecked'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
# An order based requirement needs a "null" for "Requirement PcbId"
|
|
| TestNo | Cordonel PcbId | EOL PcbId | Requirement PcbId | EOL Status | Comment |
|
|
| 1 | 182100041 | 182100041 | null | Skipped | Order based requirement |
|
|
| 2 | 182100041 | 182100041 | 182100041 | Okay | PcbId is identical |
|
|
| 3 | 182100041 | 0 | 182100041 | Failed | Unmatching EOL Progress PcbId |
|
|
| 4 | 182100041 | 182100041 | 0 | Failed | Unmatching Requirement PcbId |
|
|
| 5 | 0 | 182100041 | 182100041 | Failed | Unmatching Cordonel PcbId |
|
|
| 6 | 1821000 | 182100041 | 182100041 | Failed | Cordonel PcbId to short |
|
|
| 7 | null | 182100041 | 182100041 | Failed | Cordonel PcbId is null |
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
|
|
@CheckCordonelProperties
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_006]_Check_Region
|
|
FUNCTION: Compare the Region from Cordonel and requirement.
|
|
PRESETS: none
|
|
INPUTS: "Cordonel Region" and "Requirement Region".
|
|
OUTPUT: "EOL Status" with results "Okay" or "Failed"
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the private function to be checked for functionality 'CheckRegion'
|
|
And Name the object type holding the property 'EOLStatus'
|
|
And Name the property to be checked for 'RequirementRegionChecked'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
| TestNo | Cordonel Region | Requirement Region | EOL Status | Comment |
|
|
| 1 | EMEA | EMEA | Okay | Region is identical |
|
|
| 2 | NA | NA | Okay | Region is identical |
|
|
| 3 | EMEA | NA | Failed | Unmatched Region |
|
|
| 4 | null | EMEA | Failed | Unknown Cordonel Region |
|
|
| 5 | EMEA | null | Failed | Unknown Requirement Region |
|
|
| 6 | null | null | Failed | Unspecified Region |
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
|
|
@CheckCordonelProperties
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_007]_Check_LUT_CRC
|
|
FUNCTION: Check for the checksum (cyclic redundancy check - CRC) of the metrology lookup-table.
|
|
PRESETS: none
|
|
INPUTS: "Cordonel LUT CRC" and "Requirement LUT CRC" just a string representing a number in hex e.g. "0xEB7C.
|
|
OUTPUT: "StringReturn" as test result containing the expected string or "null" as error result from the method.
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the private function to be checked for functionality 'CheckLutCrc'
|
|
And Name the object type holding the property 'StringReturn'
|
|
And Name the property to be checked for 'ProductionStatusLutCrc'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
# "StringReturn" "null" is the error return from the functions based on strings as return value!
|
|
| TestNo | Cordonel LUT CRC | Requirement LUT CRC | StringReturn | Comment |
|
|
| 1 | 0xEB7C | 0xEB7C | 0xEB7C | LUT CRC is identical |
|
|
| 2 | 0x0000 | 0xEB7C | null | Wrong Cordonel LUT CRC |
|
|
| 3 | 0xEB7C | 0x0000 | null | Wrong Requirement LUT CRC |
|
|
| 4 | null | 0xEB7C | null | Cordonel LUT CRC undefined |
|
|
| 5 | 0xEB7C | null | null | Requirement LUT CRC undefined |
|
|
| 6 | null | null | null | LUT CRC's undefined |
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
|
|
@CheckCordonelProperties
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_008]_Check_Meter_Size
|
|
FUNCTION: Compare the Meter Size from Cordonel and requirement.
|
|
PRESETS: none
|
|
INPUTS: "Cordonel Meter Size" and "Requirement Meter Size" as strings naming the size as e.g. "DN50", "US1_5" or "1 1/2 INC".
|
|
OUTPUT: "StringReturn" as test result containing the expected string or "null" as error result from the method.
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the private function to be checked for functionality 'CheckMeterSize'
|
|
And Name the object type holding the property 'StringReturn'
|
|
And Name the property to be checked for 'ProductionStatusMeterSize'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
# "StringReturn" "null" is the error return from the functions based on strings as return value!
|
|
| TestNo | Cordonel Meter Size | Requirement Meter Size | StringReturn | Comment |
|
|
| 1 | DN50 | DN50 | DN50 | Meter size is identical |
|
|
| 2 | US1_5 | 1 1/2 INC | 1 1/2 INC | Meter size is identical but uses different naming |
|
|
| 3 | DN80 | 1 1/2 INC | null | Wrong Requirement Meter size |
|
|
| 4 | null | DN50 | null | Cordonel Meter size undefined |
|
|
| 5 | DN50 | null | null | Requirement Meter size undefined |
|
|
| 6 | null | null | null | Meter sizes undefined |
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
|
|
@CheckCordonelProperties
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_009]_Check_FW_and_Apps
|
|
FUNCTION: Compare Cordonel installed Firmware and Apps with required Firmware.
|
|
All Apps will be verified for their versions and CRC.
|
|
The Core-Revision will be validated.
|
|
PRESETS: none
|
|
INPUTS: "Cordonel Core Revision" as float specifying the Breeze operating system version, it will be checked if it is compatible to
|
|
the installed FW version.
|
|
"Cordonel FW Version" this will be installed to the MockGenesis:
|
|
Check if a valid FW package is in "C:\User\[UserName]\AppData\Roaming\Genesis\MockFwExamples" like "EMEA_R130" or "NA_R2006"
|
|
Those FW package directories need to contain the "Cordonel FW Version" without the "." between major, minor and build version.
|
|
The default FW installed in the MockGenesis is hard coded to R1.3.0B.
|
|
"Requirement FW Version" this version should be installed. It will be loaded from the location "C:\User\[UserName]\AppData\
|
|
Roaming\Genesis\MockFwExamples".
|
|
"Modify AppID" any application with its decimal version which should be modified to pass the negative tests:
|
|
"Erase App" "X" for simulated erasure else "-",
|
|
"Change App Version" "X" to set this to an unspecified version else "-",
|
|
"Change App CRC" "X" to set it to an invalid CRC else "-".
|
|
OUTPUT: "StringReturn" as test result containing the expected string or "null" as error result from the method, else it returns the
|
|
valid installed FW version string.
|
|
COMMENT: NCrunch needs programming parameters in a specific folder
|
|
"[SolutionPath]\Hardware\WaterMeter\Genesis\MockGenesis\MockFwExamples" as it copies all assemblies to a
|
|
special NCrunch working folder which is total separated from the project specific "\bin\Debug" folder!
|
|
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the private function to be checked for functionality 'CheckFwAndApps'
|
|
And Name the object type holding the property 'StringReturn'
|
|
And Name the property to be checked for 'ProductionStatusFwVersion'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
# "StringReturn" "null" is the error return from the functions based on strings as return value!
|
|
| TestNo | Cordonel Core Revision | Cordonel FW Version | Requirement FW Version | Modify AppId | Erase App | Change App Version | Change App CRC | StringReturn | Comment |
|
|
| 1 | 1.71 | R1.3.0B | R1.3.0B | null | - | - | - | R1.3.0B | FW Version is identical |
|
|
| 2 | 1.71 | R2.0.06 | R2.0.06 | null | - | - | - | R2.0.06 | FW Version is identical |
|
|
| 3 | 1.60 | R1.3.0B | R1.3.0B | null | - | - | - | null | Core revision is incompatible |
|
|
| 4 | 1.71 | R1.3.0B | R1.2.47 | null | - | - | - | null | Wrong FW version installed |
|
|
| 5 | 1.71 | R1.3.0B | R1.3.0B | 15 | X | - | - | null | Genesis flow is invalid |
|
|
| 6 | 1.71 | R1.3.0B | R1.3.0B | 15 | - | X | - | null | Genesis flow version modified |
|
|
| 7 | 1.71 | R1.3.0B | R1.3.0B | 15 | - | - | X | null | Genesis flow CRC modified |
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
|
|
@CheckKitronRadioSignalLevels
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_010]_Check_Kitron_Radio_Signal_Levels
|
|
FUNCTION: Check if radio signal levels have been defined (contained in parameter list) FOR THIS cORDONEL SIZE AND LENGHT.
|
|
PRESETS: none
|
|
INPUTS: .
|
|
OUTPUT: "StatusReturn" with results "Okay" or "Failed"
|
|
COMMENT: NCrunch needs programming parameters in a specific folder
|
|
"[SolutionPath]\Hardware\WaterMeter\Genesis\MockGenesis\MockRawParameterExamples" as it copies all assemblies to a
|
|
special NCrunch working folder which is total separated from the project specific "\bin\Debug" folder!
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the private function to be checked for functionality 'CheckKitronRadioSignalLevels'
|
|
And Name the object type holding the property 'StatusReturn'
|
|
|
|
# Name one production process to be checked in advance to the real test. This can be done more than once to fill a list with
|
|
# all required preceding production processes to check an entire sequence of processes.
|
|
And Define production process for sequencing before test 'ExecFinalParametrization'
|
|
And Define production process for sequencing before test 'CheckFinalParametrization'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
| TestNo | Cordonel Meter Size | StatusReturn | Comment |
|
|
| 1 | DN50 | Okay | Valid Kitron radio calibration values |
|
|
| 2 | DN02 | Failed | Missing Kitron radio calibration values |
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
@CheckLifetimes
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_011]_Check_Remaining_Battery_Load
|
|
FUNCTION: Compare the remaining battery load from Cordonel and the requirement.
|
|
PRESETS: none
|
|
INPUTS: "Normal Current [uA]" multiplied with exceeded lifetime together with "Production Drained [%] for an alternative threshold,
|
|
set to "null" if the standard check based on "Max Drained [%]" shall be used.
|
|
"Production Supplement [%]" additional allowed drainage of batteries during production, set to "null" if the standard check
|
|
based on "Max Drained [%]" shall be used.
|
|
"Actual Lifetime [days]" is the time in days the Cordonel after Kitron production, set to 0 to create an error.
|
|
"Actual Drained [%]" Standard threshold for actual drained battery load based on prediction from firmware and exceeded
|
|
lifetime, set to 0 to create an error.
|
|
"Max Drained [%]" Threshold for allowed drainage at EOL in standard check. If alternative threshold is active then this is
|
|
the ABSOLUTE LIMIT.
|
|
OUTPUT: "EOL Status" with results "Okay" or "Failed"
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the private function to be checked for functionality 'CheckRemainingBatteryLoad'
|
|
And Name the object type holding the property 'EOLStatus'
|
|
And Name the property to be checked for 'ProductionStatusBatteryLoadChecked'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
| TestNo | Normal Current [uA] | Production Supplement [%] | Actual Lifetime [days] | Actual Drained [%] | Max Drained [%] | EOL Status | Comment |
|
|
| 1 | 119.8 | 1.5 | 90 | 2.0 | 5.0 | Okay | Alternative threshold okay |
|
|
| 2 | 119.8 | 1.5 | 90 | 2.5 | 5.0 | Failed | Alternative threshold exceeded |
|
|
| 3 | 119.8 | 1.5 | 180 | 2.5 | 2.0 | Failed | Absolute max drained limit exceeded |
|
|
| 4 | null | null | 90 | 2.0 | 2.0 | Okay | Normal threshold okay |
|
|
| 5 | null | null | 90 | 2.5 | 2.0 | Failed | Normal threshold exceeded |
|
|
| 6 | null | null | 0 | 2.0 | 5.0 | Failed | Lifetime of 0 days error |
|
|
| 7 | null | null | 90 | 0.0 | 5.0 | Failed | Drained load of 0 % error |
|
|
| 8 | null | null | 90 | 2.0 | null | Failed | Max remaining battery load is null |
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
|
|
@CheckLifetimes
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_012]_Check_Remaining_Lifetime
|
|
FUNCTION: Compare the remaining life time reported by the Cordonel and the requirement.
|
|
PRESETS: none
|
|
INPUTS: "Actual Lifetime [days]" is the time in days the Cordonel after Kitron production,
|
|
"Actual Drained [%]" is used to calculate the drained load to forecast the remaining lifetime,
|
|
"Required Lifetime [years]" Threshold for remaining lifetime.
|
|
OUTPUT: "EOL Status" with results "Okay" or "Failed"
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the private function to be checked for functionality 'CheckRemainingLifetime'
|
|
And Name the object type holding the property 'EOLStatus'
|
|
And Name the property to be checked for 'ProductionStatusRemainingLifeTimeChecked'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
| TestNo | Actual Lifetime [days] | Required Lifetime [years] | Actual Drained [%] | EOL Status | Comment |
|
|
| 1 | 90 | 20.0 | 1.0 | Okay | Remaining lifetime as required |
|
|
| 2 | 365 | 5.0 | 10.0 | Okay | Remaining lifetime as required |
|
|
| 3 | 90 | 20.0 | 2.0 | Failed | Remaining lifetime to short |
|
|
| 4 | 0 | 20.0 | 1.0 | Failed | Actual lifetime of 0 days error |
|
|
| 5 | 90 | 20.0 | 0.0 | Failed | Actual drained load of 0 % error |
|
|
| 6 | 90 | null | 1.0 | Failed | Required lifetime is null |
|
|
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
# ================================================================================================================================
|
|
|
|
@CheckLifetimeS
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_013]_Check_Storage_Months
|
|
FUNCTION: Compare the production date reported by the Cordonel with the actual date and check the requirement.
|
|
PRESETS: none
|
|
INPUTS: "Assembly Months before Now" as zero or negative floating point number or invalid if set to "null".
|
|
"Max Storage Months" floating point number of months allowed until production has to be finalized.
|
|
OUTPUT: "EOL Status" with results "Okay" or "Failed"
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the private function to be checked for functionality 'CheckStorageMonths'
|
|
And Name the object type holding the property 'EOLStatus'
|
|
And Name the property to be checked for 'MaxStorageMonthsChecked'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
| TestNo | Assembly Months before Now | Max Storage Months | EOL Status | Comment |
|
|
| 1 | -3.0 | 3.0 | Okay | Storage months in range |
|
|
| 2 | -3.0 | 2.0 | Failed | Exceeded maximal allowed storage time |
|
|
| 3 | null | 2.0 | Failed | Error assembly months are null |
|
|
| 4 | -3.0 | null | Failed | Error max storage months are null |
|
|
| 5 | 3.0 | 3.0 | Failed | Error assembly time lies in the future |
|
|
| 6 | -3.0 | -3.0 | Failed | Error storage months is negative |
|
|
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
|
|
@CheckCalibrations
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_014]_Check_Preadjustment
|
|
FUNCTION: Check the database content reporting a flow-test preadjustment.
|
|
PRESETS: none
|
|
INPUTS: "Test Bench Fields" the array of test bench fields
|
|
"Test Bench State[4]" the field containing a number if preadjustment successfully executed, null if not.
|
|
"Skip Calib" to skip all calibration related checks
|
|
OUTPUT: "EOL Status" with results "Okay" or "Failed"
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the private function to be checked for functionality 'CheckPreadjustment'
|
|
And Name the object type holding the property 'EOLStatus'
|
|
And Name the property to be checked for 'ProductionStatusZeroFlowChecked'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
| TestNo | Test Bench Fields | Test Bench State[4] | Skip Calib | EOL Status | Comment |
|
|
| 1 | 5 | 21 | X | Skipped | Skipped calibration checks by requirement |
|
|
| 2 | 5 | 21 | - | Okay | Test bench preadjustment succeeded |
|
|
| 3 | 5 | 0 | - | Okay | Test bench preadjustment succeeded |
|
|
| 4 | 5 | 500 | - | Okay | Test bench preadjustment succeeded |
|
|
| 5 | 4 | 21 | - | Failed | Error test bench fields too little |
|
|
| 6 | 5 | null | - | Failed | Error test bench status[4] is null |
|
|
| 7 | null | 21 | - | Failed | Error test bench fields null |
|
|
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
|
|
@CheckCalibrations
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_015]_Check_Flow_Test_State
|
|
FUNCTION: Check the database content reporting the flow-test state.
|
|
PRESETS: none
|
|
INPUTS: "Test Bench Fields" the array of test bench fields
|
|
"Test Bench State[5]" the field containing a number of 30 if calibration succeeded
|
|
"Skip Calib" to skip all calibration related checks if set to "X" else "-".
|
|
OUTPUT: "EOL Status" with results "Skipped", "Okay" or "Failed"
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the private function to be checked for functionality 'CheckFlowTestState'
|
|
And Name the object type holding the property 'EOLStatus'
|
|
And Name the property to be checked for 'ProductionStatusCalibrationChecked'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
| TestNo | Test Bench Fields | Test Bench State[5] | Skip Calib | EOL Status | Comment |
|
|
| 1 | 6 | 30 | X | Skipped | Skipped calibration checks by requirement |
|
|
| 2 | 6 | 30 | - | Okay | Test bench calibration succeeded |
|
|
| 3 | 6 | 30 | - | Okay | Test bench calibration succeeded |
|
|
| 4 | 5 | 30 | - | Failed | Error test bench fields too little |
|
|
| 5 | 6 | 29 | - | Failed | Error test bench status[5] number to small |
|
|
| 6 | 6 | 31 | - | Failed | Error test bench status[5] number to large |
|
|
| 7 | 6 | null | - | Failed | Error test bench status[5] is null |
|
|
| 8 | null | 30 | - | Failed | Error test bench fields null |
|
|
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
|
|
@CheckCalibrations
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_016]_Check_Calib_Factors
|
|
FUNCTION: Compare the calibration values reported by the Cordonel with the flow-test calibration values reported by the database.
|
|
PRESETS: All calibration values not covered by this test in valid range.
|
|
INPUTS: "Meter Calib Fact 1/2/3" Meter calibration factors 1, 2 and 3 stored in and read out from the Cordonel,
|
|
"DB Calib Fact 1/2/3" Required calibration factors 1, 2 and 3 reported by the database.
|
|
"Skip Calib" to skip all calibration related checks if set to "X" else "-".
|
|
OUTPUT: "StatusReturn" with results "Skipped", "Okay" or "Failed"
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the private function to be checked for functionality 'CheckCalibrationValues'
|
|
And Name the object type holding the property 'StatusReturn'
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
# REMIND: The highest priority has the equality of the calibration factors between Meter and database. If those
|
|
# don't match, the check of valid range and set to default values doesn't come in focus!
|
|
| TestNo | Meter Calib Fact 1 | Meter Calib Fact 2 | Meter Calib Fact 3 | DB Calib Fact 1 | DB Calib Fact 2 | DB Calib Fact 3 | Skip Calib | StatusReturn | Comment |
|
|
| 1 | 10000 | 20000 | 30000 | 10000 | 20000 | 30000 | X | Skipped | Skipped calib checks per requirement |
|
|
| 2 | 10000 | 20000 | 30000 | 10000 | 20000 | 30000 | - | Okay | Valid calib factors |
|
|
| 3 | 15625 | 20000 | 30000 | 15625 | 20000 | 30000 | - | Okay | Valid calib factors (1 default) |
|
|
| 4 | 15625 | 15625 | 30000 | 15625 | 15625 | 30000 | - | Okay | Valid calib factors (2 defaults) |
|
|
| 5 | 15625 | 15625 | 15625 | 15625 | 15625 | 15625 | - | Warning | Invalid Meter calib factors (3 defaults) |
|
|
| 6 | 10000 | 20000 | 30000 | 10000 | 44444 | 30000 | - | Failed | Inconsistent calib factors DB to Meter |
|
|
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
|
|
@CheckProductionStateProcess
|
|
Scenario: [SRS_TBF_EOL_PP_CHECK_PROD_STATE_017]_Check_Complete_Flow_Production_State
|
|
FUNCTION: Check the entire production process sequence except the database calls with all underlaying sub-processes.
|
|
PRESETS: Preset all values with valid parameters to pass the test as "Okay" needed to successfully pass all underlaying tests:
|
|
- EOL Id | EOL StartDate | Cordonel PcbId | EOL PcbId
|
|
- Standard Id | Standard Version | Standard IsActive | Special Id | Special Version
|
|
- CSD ID | CSD Name | CSD Code | CSD Status
|
|
- Cordonel ProdOrderNo | Requirement ProdOrderNo
|
|
- Cordonel PcbId | EOL PcbId | Requirement PcbId |
|
|
- Cordonel Region | Requirement Region
|
|
- Cordonel LUT CRC | Requirement LUT CRC
|
|
- Cordonel Meter Size | Requirement Meter Size
|
|
- Cordonel Core Revision | Cordonel FW Version | Requirement FW Version
|
|
- Actual Lifetime [days] | Actual Drained [%] | Max Drained [%]
|
|
- Actual Lifetime [days] | Required Lifetime [years] | Actual Drained [%]
|
|
- Assembly Months before Now | Max Storage Months
|
|
- Test Bench Fields | Test Bench State[4]
|
|
- Test Bench Fields | Test Bench State[5]
|
|
- Meter Calib Fact 1 | Meter Calib Fact 2 | Meter Calib Fact 3 | DB Calib Fact 1 | DB Calib Fact 2 | DB Calib Fact 3
|
|
INPUTS: "Kill x" forces the test to fail to check if all tests are executed. REMIND: Only ONE should be set to "X"!
|
|
Leave all others as "-" to observe better the unique setup!
|
|
OUTPUT: "StatusReturn" with results "Okay" or "Failed",
|
|
additional check of complete EOL progress status. The expected EOL result will be set with the preset values and
|
|
modified with the "Kill x" from "Okay" to "Failed"
|
|
#--------------------------------- Prepare Tests ----------------------------------------------------------------------------
|
|
Given Initialize new test scenario for production process 'CheckProductionState'
|
|
And Name the public function to be checked for functionality 'ExecuteProcess'
|
|
And Name the object type holding the property 'StatusReturn'
|
|
|
|
# Activate the entire equality EOL progress check between requirement and result
|
|
And Activate EOL progress check
|
|
|
|
# Name one production process to be checked in advance to the real test. This can be done more than once to fill a list with
|
|
# all required preceding production processes to check an entire sequence of processes.
|
|
And Define production process for sequencing before test 'ExecFinalParametrization'
|
|
And Define production process for sequencing before test 'CheckFinalParametrization'
|
|
|
|
# The input initializations don't have a "TestNo" nor a result (EOLStatus, StringReturn or StatusReturn) as those are commonly used for
|
|
# all tests specified in "Input matrix defining the test cases and results". All these inputs have a setup to pass the overall test with
|
|
# positive feedback (all are good).
|
|
And Input initializations for the test matrix and presets to pass the preceding tests
|
|
| EOL Id | EOL StartDate | Cordonel PcbId | EOL PcbId | Comment |
|
|
| 123 | UTC Now | 182100041 | 182100041 | EOL Progress successfully created |
|
|
|
|
And Input initializations for the test matrix and presets to pass the preceding tests
|
|
| Standard Id | Standard Version | Standard IsActive | Standard IsApproved | Special Id | Special Version | Comment |
|
|
| 10 | 5 | X | X | null | null | Standard Requirement is active and approved |
|
|
|
|
And Input initializations for the test matrix and presets to pass the preceding tests
|
|
| CSD ID | CSD Name | CSD Code | CSD Status | Comment |
|
|
| 3100782 | CSD 767978 Canal de Isabel | O1 | Released | Released CSD approved for production |
|
|
|
|
And Input initializations for the test matrix and presets to pass the preceding tests
|
|
| Cordonel ProdOrderNo | Requirement ProdOrderNo | Comment |
|
|
| 3118323 | 3118323 | Order number is identical |
|
|
|
|
And Input initializations for the test matrix and presets to pass the preceding tests
|
|
| Cordonel PcbId | EOL PcbId | Requirement PcbId | Comment |
|
|
| 182100041 | 182100041 | 182100041 | PcbId is identical |
|
|
|
|
And Input initializations for the test matrix and presets to pass the preceding tests
|
|
| Cordonel Region | Requirement Region | Comment |
|
|
| EMEA | EMEA | Region is identical |
|
|
|
|
And Input initializations for the test matrix and presets to pass the preceding tests
|
|
| Cordonel LUT CRC | Requirement LUT CRC | Comment |
|
|
| 0xEB7C | 0xEB7C | LUT CRC is identical |
|
|
|
|
And Input initializations for the test matrix and presets to pass the preceding tests
|
|
| Cordonel Meter Size | Requirement Meter Size | Comment |
|
|
| DN50 | DN50 | Meter size is identical |
|
|
|
|
And Input initializations for the test matrix and presets to pass the preceding tests
|
|
| Cordonel Core Revision | Cordonel FW Version | Requirement FW Version | Comment |
|
|
| 1.71 | R1.3.0B | R1.3.0B | FW Version is identical |
|
|
|
|
And Input initializations for the test matrix and presets to pass the preceding tests
|
|
| Max Drained [%] | Comment |
|
|
| 2.0 | Normal threshold okay |
|
|
|
|
And Input initializations for the test matrix and presets to pass the preceding tests
|
|
| Actual Lifetime [days] | Required Lifetime [years] | Actual Drained [%] | Comment |
|
|
| 90 | 20.0 | 1.0 | Remaining lifetime as required |
|
|
|
|
And Input initializations for the test matrix and presets to pass the preceding tests
|
|
| Assembly Months before Now | Max Storage Months | Comment |
|
|
| -3.0 | 3.0 | Storage months in range |
|
|
|
|
And Input initializations for the test matrix and presets to pass the preceding tests
|
|
| Test Bench Fields | Test Bench State[4] | Comment |
|
|
| 5 | 21 | Test bench preadjustment succeeded |
|
|
|
|
And Input initializations for the test matrix and presets to pass the preceding tests
|
|
| Test Bench Fields | Test Bench State[5] | Comment |
|
|
| 6 | 30 | Test bench calibration succeeded |
|
|
|
|
And Input initializations for the test matrix and presets to pass the preceding tests
|
|
| Meter Calib Fact 1 | Meter Calib Fact 2 | Meter Calib Fact 3 | DB Calib Fact 1 | DB Calib Fact 2 | DB Calib Fact 3 | Comment |
|
|
| 10000 | 20000 | 30000 | 10000 | 20000 | 30000 | Valid calib factors |
|
|
|
|
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
|
|
And Input matrix defining the test cases and results
|
|
# "Kill x" forces the test to fail to check if all tests are executed. REMIND: Set only ONE to "X" and leave all others as "-"! Otherwise the test will FAIL!
|
|
| TestNo | Kill EOL | Kill Requ | Kill Order | Kill PcbId | Kill Region | Kill LUT | Kill Size | Kill FW | Kill Load | Kill LifeTime | Kill StoreTime | Kill PreAdj | Kill FlowTest | Kill Calib | Kill RadioParam | StatusReturn | Comment |
|
|
| 1 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | Okay | Test sequence complete |
|
|
| 2 | X | - | - | - | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill EOL generation |
|
|
| 3 | - | X | - | - | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill requirement |
|
|
| 4 | - | - | X | - | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill production order check |
|
|
| 5 | - | - | - | X | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill PcbId check |
|
|
| 6 | - | - | - | - | X | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill region check |
|
|
| 7 | - | - | - | - | - | X | - | - | - | - | - | - | - | - | - | Failed | Detected kill LUT check |
|
|
| 8 | - | - | - | - | - | - | X | - | - | - | - | - | - | - | - | Failed | Detected kill meter size check |
|
|
| 9 | - | - | - | - | - | - | - | X | - | - | - | - | - | - | - | Failed | Detected kill FW check |
|
|
| 10 | - | - | - | - | - | - | - | - | X | - | - | - | - | - | - | Failed | Detected kill battery load check |
|
|
| 11 | - | - | - | - | - | - | - | - | - | X | - | - | - | - | - | Failed | Detected kill life time check |
|
|
| 12 | - | - | - | - | - | - | - | - | - | - | X | - | - | - | - | Failed | Detected kill storage time check |
|
|
| 13 | - | - | - | - | - | - | - | - | - | - | - | X | - | - | - | Failed | Detected kill preadjustment check |
|
|
| 14 | - | - | - | - | - | - | - | - | - | - | - | - | X | - | - | Failed | Detected kill flow test check |
|
|
| 15 | - | - | - | - | - | - | - | - | - | - | - | - | - | X | - | Failed | Detected kill calibrations check |
|
|
| 16 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | X | Failed | Detected kill radio parameter |
|
|
When Execute the generic tests
|
|
Then Check the generic test results
|
|
|
|
# ================================================================================================================================
|
|
|