PROTESTING360 includes all the scripts needed to perform several of the test procedures specified by The DNP Users Group (www.dnp.org)
The DNP Users Group (www.dnp.org) is the association that supports the community and the industry using Distributed Network Protocol (DNP3) also known as IEEE Std 1815TM.
One of the tasks of DNP Users Group is the definition of the testing procedures to validate the devices Outstations and Masters using DNP3.
Right now, there are several profiles in DNP3, called subset level 1 to 4. Each level implies the capability of using more features of the specification.
DNP Users Group has defined the procedures for testing outstation with the profiles (substet level) 1 and 2 only.
The DNP Users Group (www.dnp.org)
ENSOTEST, as a member of DNP3 Users Group, provides the capability of testing DNP3 devices with our testing framework called PROTESTING360.
Up to date, PROTESTING360 includes the script requested by the Subset Level 2 version 2.7. The latest test specification available. It also generates all the logs and captured traffic to keep evidence of the testing process.
Here you can see here the complete test plan with all the test cases supported.
img TestCases Tree
The detailed test script list is the following:
Pre-test review |
5.1 – Device Profile Review |
5.2 – Equipment review |
Link layer |
6.1.2 – Reset Link and Passive Confirm support – Test Procedure |
6.3.2 – Request Link Status – Test Procedure |
6.4.2 – Test Retries – Test Procedure |
6.5.2 – § DIR and FCV Bits – Test Procedure |
6.6.2.1 – Invalid Start Octets |
6.6.2.2 – Invalid Primary Function Code |
6.6.2.3 – Invalid Destination Address |
6.6.2.4 – Invalid CRC |
6.6.2.5 – § Invalid FCV |
6.6.3.1 – Invalid Start Octets |
6.6.3.2 – Invalid Secondary Function Code |
6.6.3.3 – Invalid Destination Address |
6.6.3.4 – Invalid CRC |
6.7.2 – Self-Address Support – Test Procedure |
Tranport layer |
7.2 – Transport layer – Test Procedure |
Application layer |
8.1.2 – Binary Output status |
8.2.1.2.1 – Binary Output, SBO, 0x28 |
8.2.1.2.2 – Binary Output, SBO, 0x17 |
8.2.1.2.3 – Binary Output, SBO, To Uninstalled Point |
8.2.1.2.4 – Binary Output, SBO, Execute Issued After Timeout |
8.2.1.2.5 – Binary Output, SBO, Execute to Different Point Than Select |
8.2.1.2.6 – Binary Output, SBO, Execute On Time does not match Select On Time |
8.2.1.2.7 – Binary Output, SBO, Execute Off Time does not match Select Off Time |
8.2.1.2.8 – Binary Output, SBO, Select with supported Code, Execute with different Code |
8.2.1.2.9 – Binary Output, SBO, Select 0x28, Execute 0x17 |
8.2.1.2.10 – Binary Output, SBO, Configurable Device |
8.2.1.2.11 – Binary Output, SBO, Same Sequence Number Select Retries |
8.2.1.2.12 – Binary Output, SBO, Incrementing Sequence Number Select Retries |
8.2.1.2.13 – Binary Output, SBO, Same Sequence Number Operate Retries |
8.2.1.2.14 – Binary Output, SBO, Incrementing Sequence Number Operate Retries |
8.2.1.2.15 – Binary Output, SBO, Sequence number checking |
8.2.2.2.1 – Binary Output, Direct Operate |
8.2.2.2.2 – Binary Output, Direct Operate to Uninstalled Point |
8.2.2.2.3 – Binary Output, Direct Operate, Configurable Device |
8.2.3.2.1 – Binary Output, Direct Operate, No Acknowledge |
8.2.3.2.2 – Binary Output, Direct Operate, No Acknowledge, to an Uninstalled Point |
8.2.3.2.3 – Binary Output, Direct Operate, No Acknowledge, Configurable Device |
8.2.4.2 – Multiple Object Requests – Test Procedure |
8.2.5.2.1 – Binary Output, Complementary Function Support |
8.2.5.2.2 – Binary Output, Single Function Support |
8.3.2 – Analog outputs status |
8.4.1.2.1 – Analog Output, SBO, 0x28 |
8.4.1.2.2 – Analog Output, SBO, 0x17 |
8.4.1.2.3 – Analog Output, SBO, to Uninstalled Point |
8.4.1.2.4 – Analog Output, SBO, Execute Issued After Time-out |
8.4.1.2.5 – Analog Output, SBO, Execute Value does not match Select Value |
8.4.1.2.6 – Analog Output, SBO, Select 0x28, Execute 0x17 |
8.4.1.2.7 – Analog Output, SBO, Configurable Device |
8.4.1.2.8 – Analog Output, SBO, Same Sequence Number Select Retries |
8.4.1.2.9 – Analog Output, SBO, Incrementing Sequence Number Select Retries |
8.4.1.2.10 – Analog Output, SBO, Same Sequence Number Operate Retries |
8.4.1.2.11 – Analog Output, SBO, Incrementing Sequence Number Operate Retries |
8.4.1.2.12 – Analog Output, SBO, Sequence number checking |
8.4.2.2.1 – Analog Output, Direct Operate |
8.4.2.2.2 – Analog Output, Direct Operate, to Uninstalled Point |
8.4.2.2.3 – Analog Output, Direct Operate, Configurable Device |
8.4.3.2.1 – Analog Output, Direct Operate, No Acknowledge |
8.4.3.2.2 – Analog Output, Direct Operate, No Acknowledge, to an Uninstalled Point |
8.4.3.2.3 – Analog Output, Direct Operate, No Acknowledge, Configurable Device |
8.4.4.2 – Multiple Object Requests – Test Procedure |
8.5.1.2 – Class 0 – Test Procedure |
8.5.2.2.1 – Class 1 Data, 0x06 |
8.5.2.2.2 – Class 1 Data, 0x07 |
8.5.2.2.3 – Class 1 Data, 0x08 |
8.5.2.2.4 – § Class 1 Data Without Confirm |
8.5.3.2.1 – Class 2 Data, 0x06 |
8.5.3.2.2 – Class 2 Data, 0x07 |
8.5.3.2.3 – Class 2 Data, 0x08 |
8.5.3.2.4 – § Class 2 Data Without Confirm |
8.5.4.2.1 – Class 3 Data, 0x06 |
8.5.4.2.2 – Class 3 Data, 0x07 |
8.5.4.2.3 – Class 3 Data, 0x08 |
8.5.4.2.4 – § Class 3 Data Without Confirm |
8.5.5.2.1 – Multiple Object Request, Class 1, 2 and 3 |
8.5.5.2.2 – Multiple Object Request, Class 1, 2, 3 and 0 |
8.5.6.2 – Class Assignment Verification – Test Procedure |
8.6.1.2 – Restart – Test Procedure |
8.6.2.2 – Bad function – Test Procedure |
8.6.3.2 – Object unknown – Test Procedure |
8.6.4.2 – Test Procedure for Devices with Global Remote Supervisory Control |
8.6.4.3 – Test Procedure for Devices with Individual Remote Supervisory Control |
8.6.5.2 – § Test Procedure |
8.6.5.3 – Test Procedure |
8.6.5.4 – § Test Procedure, Confirmed Response Options |
8.6.6.2.1 – Buffer Overflow, Binary Input Change Event Buffers |
8.6.6.2.2 – Buffer Overflow, Analog Input Change Event Buffers |
8.6.6.2.3 – Buffer Overflow, Binary Counter Change Event Buffers |
8.6.6.2.4 – Buffer Overflow, Double-bit Input Change Event Buffers |
8.7.1.2 – Delay Measurement – Test Procedure |
8.7.2.2 – Synchronization – Test Procedure |
8.8.2 – Cold restart – Test Procedure |
8.9.1.2 – Use of FIR, FIN and SEQUENCE in Fragmentation |
8.9.2.2 – § Use of Confirmation in Fragmentation |
8.11.2.6 – Unsolicited Responses Off |
8.13.2.1 – Device does not have Binary Inputs |
8.13.2.2 – Device has Binary Inputs |
8.13.2.3 – Device supports Binary Inputs, Configurable Device |
8.14.2.1 – Device does not have Binary Input Changes |
8.14.2.2 – Binary Input Change, 0x06 |
8.14.2.3 – Binary Input Change, 0x07 |
8.14.2.4 – Binary Input Change, 0x08 |
8.14.2.5 – § Binary Input Change Without Confirm |
8.14.2.6 – Binary Input Change Without Time, 0x06 |
8.14.2.7 – Binary Input Change Without Time, 0x07 |
8.14.2.8 – Binary Input Change Without Time, 0x08 |
8.14.2.9 – Binary Input Change With Time, 0x06 |
8.14.2.10 – Binary Input Change With Time, 0x07 |
8.14.2.11 – Binary Input Change With Time, 0x08 |
8.14.2.12 – Binary Input Change With Relative Time, 0x06 |
8.14.2.13 – Binary Input Change With Relative Time, 0x07 |
8.14.2.14 – Binary Input Change With Relative Time, 0x08 |
8.14.2.15 – Binary Input Change with Relative Time, Long Interval |
8.15.2 – Common time of ocurrence – Test Procedure |
8.16.1.2.1 – Device does not have Binary Counters |
8.16.1.2.2 – Device responds with Binary Counters |
8.16.1.2.3 – Device supports Binary Counters, Configurable Device |
8.16.2.2.1 – Device does not have Frozen Counters. |
8.16.2.2.2 – Binary Counter, Freeze |
8.16.2.2.3 – Binary Counter, Freeze And Clear |
8.16.2.2.4 – Binary Counter, Freeze, No Acknowledge |
8.16.2.2.5 – Binary Counter, Freeze And Clear, No Acknowledge |
8.17.2.1 – Device does not support Binary Counter Events |
8.17.2.2 – Binary Counters, Event, 0x06 |
8.17.2.3 – Binary Counters, Event, 0x07 |
8.17.2.4 – Binary Counters, Event, 0x08 |
8.17.2.5 – § Binary Counters, Event Without Confirm |
8.18.2.1 – Device does not have Analog Inputs |
8.18.2.2 – Device has Analog Inputs |
8.19.2.1 – Analog Input Change |
8.19.2.2 – § Analog Input Change, Without Confirm |
8.20.2 – Multiple read requests – Test Procedure |
8.21.2.1 – Device has Double-bit Inputs |
8.21.2.2 – Device supports Double-bit Inputs, Configurable Device |
8.22.2.1 – Device does not support Double-bit Input Changes |
8.22.2.2 – Double-bit Input Change, 0x06 |
8.22.2.3 – Double-bit Input Change, 0x07 |
8.22.2.4 – Double-bit Input Change, 0x08 |
8.22.2.5 – Double-bit Input Change Without Confirm |
8.22.2.6 – Double-bit Input Change Without Time, 0x06 |
8.22.2.7 – Double-bit Input Change Without Time, 0x07 |
8.22.2.8 – Double-bit Input Change Without Time, 0x08 |
8.22.2.9 – Double-bit Input Change With Time, 0x06 |
8.22.2.10 – Double-bit Input Change With Time, 0x07 |
8.22.2.11 – Double-bit Input Change With Time, 0x08 |
8.22.2.12 – Double-bit Input Change With Relative Time, 0x06 |
8.22.2.13 – Double-bit Input Change With Relative Time, 0x07 |
8.22.2.14 – Double-bit Input Change With Relative Time, 0x08 |
8.22.2.15 – Double-bit Input Change with Relative Time, Long Interval |
8.23.2.1 – Variation 255 – list of attribute variations |
8.23.2.2 – Variation 254 – non-specific all attributes request |
8.23.2.3 – Variation nnn – specific attributes read request |
8.23.2.4 – Variation nnn – specific attributes write request |
Providing a complete automation of the test cases, the pretest and test stage of the conformance testing process are always performed exactly the same way with the minimum human intervention during the process.
Maximum script automation controlling secondary injection devices to generate the stimulus need to change digital and analog values in the IED under test.
Several test cases check the communication lost and recovering when a link is broken. PROTESTING360 script engine controls the ethernet switch enabling and disabling port so no human intervention is required connecting and disconnecting ethernet cables.
PROTESTING360 script engine can exchange configuration files or modify device behavior using web services, ftp, telnet or ssh connections.
PROTESTING360 scripting engine access to the captured frames and it can be programmed to check any flag or field value of the packets exchange. Automated packed review can save hours of testing review in several test cases and can detect errors that are difficult to detect for a human being when the script exchanges hundreds of frames.
PROTESTING360 scripts include information about the execution details and the captured files for each test case in PCAP (Wireshark). All the trace files can be reviewed and we include graphical views to help visualizing the communication exchange.
One the test session is over PROTESTING360 generates the test report and statistics to detect which test cases required higher resources or effort.
Copyright © 2023 | ENSOTEST S.L. - Legal notice & privacy policy