System Test Plan - GoranErdeljan/TINF19C-Team-4-Service-Registry GitHub Wiki

Created by Serdar Ilhan

Table of Contents

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:

  1. locating or registering a service via DNS-SD.
  2. locating/registering a service via OI4 message bus (MQTT-Broker).
  3. 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

SRS TINF19C Service Registry

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