Digitale Transformation – Evolution, Innovation, Disruption

16:30 - 17:15 Uhr

Test Automation Strategy for Internet of Things Applications (Vortragssprache: Englisch)

Felix Christy
BEKAST IT Consulting GmbH

Test Automation Strategy for Internet of Things Applications

Problem Description
In the IoT environment, new challenges are to be dealt with in the development of  applications. Many systems are interconnected, sensors provide data, various connectivity technologies are used, data from various systems are received and digital services are running. This requires a special approach to the development and testing of applications in this complex IoT environment.

With the procedure described here for test automation, we want to increase the quality of the applications operating in an IoT environment. The test automation strategy is based on the test driven development approach and extends the TDD with mockup-testing frameworks. Short outline of the BEKAST test automation strategy.
The picture below illustrates the procedure for the test automation strategy:

  • Defining the system - analyze and describe the existing system (existing and new interfaces, system architecture, data bases, …)
  • Collecting test data and creation of mock data - analyze the existing reference data sets and the source of this data; create mock data, if data are missing but necessary for testing
  • Collecting and creating data sets for specific use cases - the defined use cases have to be implemented
  • Developing test suit - the testing environment for all the use cases, scripts for the use case execution; access to databases, scripts for reporting the results of the test cases
  • Executing the tests
  • Extending and improving use cases and test suite - with progress of the system development new use cases must be defined and implemented and if necessary improving the existing use cases

In the following section the procedure is illustrated by an example.
Example for the usage of the BEKAST test automation strategy - "delivery containers with temperature sensor":

Use-case definition
Testing the alert mechanism when container temperature is going out of boundary. The temperature of the container depends on following

  • Altitude of delivery container
  • Outside temperature
  • Container heat (heat from vehicle)

Collecting test data based on key factors
The first key factor is the altitude, so, the data can be gathered from Google maps. The other key factor is outside temperature, this can be found from open weather map data source. And the last key factor is container heat, which can be extrapolate by vehicle heat.

Creating data sets
Once the data are collected, they can be arranged and feed to various data calculation algorithms provided by sensor. For e.g., change in temperature based on altitude, change in temperature based on outside temperature and change on temperature based on vehicle heat. The calculated values give us the change of container temperature based on the algorithms. This would be the data set for the automation testing.

Creating test suit
Since the data sets are now ready, it is time to arrange the data set in various test cases. Just for example, a test case could be “measure the temperature change of the container for a truck travelling from Berlin to Moscow in the month of January with an average speed of 80 kmph”.

Extending test suit
Since we have the existing test cases, a test suit then can be extended to test the simulation country wise, cross country deliveries, high altitude location, vehicle dependent (vehicle heat generation).

Felix Christy, Speaker Software-QS-Tag 2017

Felix Christy, BEKAST IT Consulting GmbH

Felix Christy is a passionate Java Developer. He has rich experience of enterprise application development. He has worked on large scale projects in finance, health care and auto industries. He is a tech enthusiastic and likes to align himself with cutting edge technologies.

His key skills are Java, JEE; Spring; Java based portals (JSR 168, JSR 286); Liferay.

He is familiar with Git, Gerrit, Maven, Jenkins, Nexus, SonarQube;Eclipse; Tomcat, MySQL.