The increasing complexity of computer software carries serious risks: in general, more complex software may contain a wider variety of bugs which are more difficult to fix. Carefully testing software is an efficient way of uncovering bugs and verifying required behaviour.
In the rail industry, minimizing the number of defects in software is key. In this paper I describe the development of a test suite for a software of this industry. The software communicates with devices and carries out maintenance of such devices connected over network. Using real devices during the development of the software would be quite cumbersome and expensive, especially with devices of greater quantity. The developed test suite provides a straightforward and efficient way of performing automated and manual integration testing of the software by simulating those devices.
During the development of the software the developed test suite was already used successfully to fix bugs and optimize the software. Simulation of a few hundred devices in parallel was made possible by the test suite, which resulted in a significantly improved response time of the software. Regression tests were also created using the test suite which ensure that existing functionality behaves as expected.