System Test Plan - GoranErdeljan/TINF19C-Team-4-Service-Registry GitHub Wiki
Created by Serdar Ilhan
Table of Contents
- 1. Scope
- 2. Product names and attributes
- 3. Features
- 4. Test preparation strategy
- 5. Test execution strategy
- 6. Test schedule
- 7. Test planning
- 8. References
- 9. Appendix
- 9.1 Adding services found using DNS-SD to the OI4-Registry
- 9.2 Ignoring services found using DNS-SD without 'oi4=true'-TXTRecords
- 9.3 Announce services found on the OI4-Message-Bus using DNS-SD
- 9.4 Configure interface application using environment variables
- 9.5 Configure test application using environment variables
1. Scope
The STP (System Test Plan) specifies the test strategy and test planning. It references tests to be performed to verify the accordance of the demanded features given by the SRS (System Requirements Specification) to the implemented features. The document derived from the STP (System Test Plan) is the STR (System Test Report) where additionally the results are given.
2. Product names and attributes
The following requirements must be verified. This table shows the test coverage between functionality and test suites or test cases
Ref.ID | Product number | Product name | Product description |
---|---|---|---|
1 | Build v1.0 | DNS-SD (Domain Name service - Service Discovery) to OI4-Service-Registry (Open Industry 4.0) Interface | Listens to DNS SD records on the network and registers them with the OI4 service registry using an MQTT-Broker. |
2 | Build v1.0 | Test Application | The test application registers all open entries in the network via the DNS SD server |
3. Features
The following requirements must be checked. This table shows the test coverage between functions and test suites or test cases.
Req.ID | Functionality | Testsuit |
---|---|---|
LF10 / Running in Docker | The Application has to be able to run in the context of a Docker Container for all functions to work properly. The instructions to build and configure such a container shall be included in the User documentation | Testsuit-1 |
LF20 / Listening to DNS-SD Entries | The Main Docker application should listen to any upcoming DNS-SD Services. It should then decide, whether the entries are from services, which need to be published to the OI4-Service Registry | Testsuit-2 |
LF30 / Registering Services at the OI4-Registry | The data that is collected from the DNS-SD entries should be taken and published on the OI4-MessageBus. Published messages have to fulfill the specifications put up by the OI4-Alliance | Testsuit-3 |
LF40 / Listening to Services registered at the OI4-Service-Registry | The main Docker application shall listen to any changes in the services registered at the OI4-Service-Registry. When there are new services registered it shall announce them to the network via DNS-SD. In this case, the service is entered in the OI4 service registry | Testsuit-4 |
4. Test preparation strategy
The creation of tests is application-based. Two main use cases can be identified, service can be made discoverable via dns-sd or via the MQTT-Broker. The interface allows this via both ways. If a device is looking for a service this can be done via dns-sd or via MQTT. It must be tested to find the service via both ways and to search for the services via both ways as well. This testing can be done via the test application, which also works on both principles.There, the search and finding of services can be manually checked and tested in both ways. These are output in TXT records or in the specifications of the OI4 measurement bus.
5. Test execution strategy
Since this is a further development of an already existing software, a complete test is not required, but still useful. The test should be divided into the following phases:
- locating or registering a service via DNS-SD.
- locating/registering a service via OI4 message bus (MQTT-Broker).
- The TXT records and the specifications of the OI4 message bus must be tested for correctness.
6. Test schedule and budget
Testsuit | Start | End |
---|---|---|
Running in Docker | 05.05.2021 | 05.05.2021 |
Listening to DNS-SD Entries | 05.05.2021 | 05.05.2021 |
Registering Services at the OI4-Registry | 10.05.2021 | 10.05.2021 |
Listening to Services registered at the OI4-Service-Registry | 10.05.2021 | 10.05.2021 |
No budget is required for testing.
7. Test planning
Testsuit | Testplan creator | Testplan Reviewer | Tester |
---|---|---|---|
Testsuit-1 | Serdar Ilhan | Serdar Ilhan | Serdar Ilhan |
Testsuit-2 | Serdar Ilhan | Serdar Ilhan | Serdar Ilhan |
Testsuit-3 | Serdar Ilhan | Serdar Ilhan | Serdar Ilhan |
Testsuit-4 | Serdar Ilhan | Serdar Ilhan | Serdar Ilhan |
8. References
9. Appendix
9.1 Adding services found using DNS-SD to the OI4-Registry
Testcase ID: | TC-001-001 |
---|---|
Testcase Name: | Adding services found using DNS-SD to the OI4-Registry with 'oi4=true'-TXTRecords |
Req.-ID | LF20, LF30 |
Description | The test case verifies that the application successfully adds devices needed to be added to the OI4-Message-Bus. |
Test Steps:
Step | Action | Expected result |
---|---|---|
1 | Build and run the docker containers as specified in the User Manual | When using sudo docker ps all 4 containers are listed as running |
2 | Use avahi-publish to announce a service using DNS-SD |
Output established under name 'Test' |
3 | Go to the web interface of the OI4-Registry and check the list of applications | The test application shows up in the list |
Test data:
Dataset | Command |
---|---|
1 | avahi-publish -s Test _http._tcp 2201 "oi4=true" "ProductInstanceUri="urn:undefined.com/Test/bla/undefined"" "Manufacturer={"Locale":"de-de","Text":"TINF19C-Team4"}" "ManufacturerUri="urn:undefined.com"" "Model={"Locale":"de-de","Text":"DNS_SD_Test_Application"}" "ProductCode="DNS_SD_TEST"" "HardwareRevision=""" "SoftwareRevision="0.0"" "DeviceRevision=""" "DeviceManual="Not available"" "DeviceClass="Registry"" "RevisionCounter=1" "SerialNumber="undefined"" "Description={"Locale":"de-de","Text":"DNS_SD_Test_Application"}" |
9.2 Ignoring services found using DNS-SD without 'oi4=true'-TXTRecords
Testcase ID: | TC-001-002 |
---|---|
Testcase Name: | Ignoring services found using DNS-SD without 'oi4=true'-TXTRecords |
Req.-ID | LF20, LF30 |
Description | The test case verifies that devices not meant for the OI4 are ignored |
Test Steps:
Step | Action | Expected result |
---|---|---|
1 | Build and run the docker containers as specified in the User Manual | When using sudo docker ps all 4 containers are listed as running |
2 | Use avahi-publish to announce a service using DNS-SD |
Output established under name 'Test' |
3 | Go to the web interface of the OI4-Registry and check the list of applications | The test application does NOT show up in the list |
Test data:
Dataset | Command |
---|---|
1 | avahi-publish -s Test _http._tcp 2201 "ProductInstanceUri="urn:undefined.com/Test/bla/undefined"" "Manufacturer={"Locale":"de-de","Text":"TINF19C-Team4"}" "ManufacturerUri="urn:undefined.com"" "Model={"Locale":"de-de","Text":"DNS_SD_Test_Application"}" "ProductCode="DNS_SD_TEST"" "HardwareRevision=""" "SoftwareRevision="0.0"" "DeviceRevision=""" "DeviceManual="Not available"" "DeviceClass="Registry"" "RevisionCounter=1" "SerialNumber="undefined"" "Description={"Locale":"de-de","Text":"DNS_SD_Test_Application"}" |
9.3 Announce services found on the OI4-Message-Bus using DNS-SD
Testcase ID: | TC-003-001 |
---|---|
Testcase Name: | Announce services found on the OI4-Message-Bus using DNS-SD |
Req.-ID | LF40 |
Description | The test case verifies that a device on the OI4-Message-Bus is announced using DNS-SD |
Test Steps:
Step | Action | Expected result |
---|---|---|
1 | Build and run the docker containers as specified in the User Manual | When using sudo docker ps all 4 containers are listed as running |
2 | Go to the web interface of the test application | The web interface is viewable |
3 | Check whether the OI4-Registry is shown in the list of DNS-SD entries | List contains OI4-Registry |
Test data: No Test data
9.4 Configure interface application using environment variables
Testcase ID: | TC-004-001 |
---|---|
Testcase Name: | Configure interface application using environment variables |
Req.-ID | - |
Description | This test case verifies that the environment variables can be used to configure the application as specified in the User Manual |
Test Steps:
Step | Action | Expected result |
---|---|---|
1 | Build the docker containers as specified in the User Manual | When using sudo docker images both images show up |
2 | Run the OI4-Registry container and the eclipse-mosquitto container as specified in the User Manual | When using 'sudo docker ps' both containers show up as "running" |
3 | Run the test application container as specified in the User Manual | When using 'sudo docker ps' the container shows up as running |
4 | Run the interface application container with the environment variable MDNS_HOSTIP set to "192.168.0.100" | When using 'sudo docker ps' the container shows up as running |
5 | Go to the web interface of the test application | The DNS-SD entry of the OI4-Registry shows the IP-adress "192.168.0.100" |
Test data: No Test data
9.5 Configure test application using environment variables
Testcase ID: | TC-004-002 |
---|---|
Testcase Name: | Configure test application using environment variables |
Req.-ID | - |
Description | This test case verifies that the environment variables can be used to configure the application as specified in the User Manual |
Test Steps:
Step | Action | Expected result |
---|---|---|
1 | Build the docker containers as specified in the User Manual | When using sudo docker images both images show up |
2 | Run the OI4-Registry container and the eclipse-mosquitto container as specified in the User Manual | When using 'sudo docker ps' both containers show up as "running" |
3 | Run the interface application container as specified in the User Manual | When using 'sudo docker ps' the container shows up as running |
4 | Run the test application container with the environment variable MDNS_HOSTIP set to "192.168.0.100" | When using 'sudo docker ps' the container shows up as running |
5 | Go to the web interface of the test application | The DNS-SD entry of the DNS-SD test application shows the IP-adress "192.168.0.100" |
Test data: No Test data