Automation software is an increasingly important and complex component of industrial systems and machines. Efficient testing of the software has therefore become a major concern, and automated testing is viewed as an effective solution for the issue. A software development method known as continuous integration particularly takes advantage of automated testing by performing tests frequently in order to reveal defects early. However, in the field of automation systems the role of automated testing has been limited by the challenging properties of the software, such as the involvement of physical hardware.
This master's thesis studies the feasibility of automated testing of programmable logic controller software in the context of a continuous integration process. In addition, the suitability of hardware-in-the-loop simulation and OPC Unified Architecture in this type of application is considered. The literary review of the thesis examines the literature related to automated software testing and continuous integration. The practical section presents the design and implementation of an automated testing system for industrial automation software. The system was designed particularly for industrial cranes.
The results of this thesis suggest that automated testing in the context of continuous integration can be applied in industrial automation software development. However, there may be considerable challenges involved. Hardware-in-the-loop simulation proved to be a generally suitable testing environment, but the quality of the simulation can limit the portion of automatable test cases. In addition, OPC Unified Architecture was recognized as an effective interoperability solution between the testing system and the logic controller.
Automaatio-ohjelmiston tärkeys ja monimutkaisuus teollisissa järjestelmissä ja koneissa on noussut huomattavasti. Tämän vuoksi suorituskykyisestä ohjelmistotestauksesta on tullut merkittävä ongelma ja testiautomaatiota pidetään siihen tehokkaana ratkaisuna. Erityisesti jatkuvana integraationa tunnettu ohjelmistokehitysmenetelmä hyödyntää testiautomaatiota suorittamalla testejä usein, jolloin ohjelmointivirheet paljastuvat aikaisin. Automaatioalalla testiautomaation käyttöä on kuitenkin rajoittanut automaatio-ohjelmistoihin liittyvät haasteet, kuten fyysisen laitteiston keskeisyys.
Tämä diplomityö tutkii erityisesti jatkuvan integraation yhteydessä suoritetun automaattisen testauksen soveltuvuutta ohjelmoitavan logiikan ohjelmiston testaukseen. Lisäksi selvitetään hardware-in-the-loop-simulaation ja OPC Unified Architecturen sopivuutta tällaisessa sovelluksessa. Työn kirjallisuuskatsauksessa perehdytään automaattiseen testaukseen ja jatkuvaan integraatioon. Käytännön osuudessa taas esitetään teollisen automaatio-ohjelmiston testaukseen tarkoitetun automaattisen testausjärjestelmän käytännön suunnittelu ja toteutus. Järjestelmä suunniteltiin erityisesti teollisuusnostureita varten.
Työn tulosten mukaan jatkuvaan integraatioon liittyvä automaattinen ohjelmistotestaus on sovellettavissa teollisen automaatio-ohjelmiston kehityksen tarpeisiin. Tähän voi kuitenkin liittyä merkittäviä haasteita. Hardware-in-the-loop-simulaatio osoittautui sopivaksi testausympäristöksi, mutta simulaation laatu voi rajoittaa automatisoitavien testien osuutta. OPC Unified Architecture taas havaittiin tehokkaaksi ratkaisuksi testijärjestelmän ja logiikkaohjaimen yhteistoimintaan.