Automated Testing of Services in the Internet of Things
Internet of Things (IoT) is gaining popularity as it becomes increasingly easier and cheaper to produce devices that are smaller and include higher feature set than before. This proliferation of devices poses a challenge for automated testing. One problem is related to quality which includes security testing, automated integration testing and interoperability. IoT devices consist of heterogeneous structure which operate in different physical environments. Every IoT device consists of sensors and actuators to transmit data and perform some actions. These sensors and actuators are exposed as services to fulfill a business process. These services represent the components of an IoT device e.g., a service for Bluetooth, device status, GSM etc. For every IoT device, there are some preconditions that need to be fulfilled for an IoT device to operate without faults. These preconditions can be described in terms of e.g., connectivity, power source information, location, status of device etc.
Currently, the precondition validation task is performed manually and depends on a domain expert. The domain expert has to invest a lot of time to find the relevant API’s of the components of the IoT device manufacturer e.g., Bluetooth, GSM, etc., and to also validate the preconditions one-by-one through the relevant API’s. This process is obviously time consuming, error-prone and inefficient as the number of IoT devices in a deployment increase. Therefore, there is a need for an automated quality assurance solution that can validate all the preconditions of IoT services in order to ensure that the preconditions are fulfilled and as well as to indicate which preconditions are not met to rectify the problem. The concept should perform testing of the devices under different physical environments whether the data is transmitting and the device is performing the required actions.
One method to solve the above-mentioned problems is through model-based testing (MBT) from software engineering. The core concept and motivation for adopting this method is automation. In MBT, the test cases are created and executed automatically to eliminate the manual effort. The test cases are generated from the abstract model of the system under test (SUT). The test cases derived from the model are the functional aspects of the system which are validated by comparing the results from the model and the system. Therefore, the objective of this master thesis is to use MBT techniques in the context of automated quality assurance to help developers monitor and validate the preconditions of IoT devices. This particularly includes the state of the art regarding automated testing techniques which are suitable for smart devices. The demonstration of feasibility with an implementation prototype of the concept is part of this thesis. Finally, a suitable evaluation of the tool to show the amount of time required to test a new device added in the deployment is part of this thesis.