Summary: | Testing is an integral part of any software development. It is important for improving the quality of any product. There are several ways of software testing and one of the most common approaches being random testing. One way of realising random testing is to write generators which can produce suitable input data with the help of inbuilt and/or user defined data types. In this thesis, we have explored this method with the help of QuickCheck. QuickCheck is one of the first frameworks to support random testing written in Haskell. It has been subsequently ported to many other languages, including Erlang, Scala, and C. In this thesis, we have provided a similar framework for reactive embedded software (i.e., system testing) using Erlang version of QuickCheck called PropEr, where the test generator has to create complex program input streams in an online manner. The goal of this thesis is to create a framework by combining an existing QuickCheck implementation for Erlang called PropEr with WindRiver Simics which is an execution platform for embedded software. It involved design and implementation of an interface between the QuickCheck framework and the execution platform. This approach has been verified with the help of a case study. We have chosen an elevator case study for testing our implementation. We have evaluated the framework using the simulation of an elevator system, verifying a number of safety properties by systematic testing. It can be concluded that testing an embedded system using this embedded interface for QuickCheck is possible. There are many improvements that can be made to the interface with respect to providing more generic functions to evaluate the properties of embedded systems.
|