Trace-based Testing of Multi-threaded Reactive Systems

Roland Schatz


Abstract

Programmable logic controller (PLC) programs are programs for controlling physical devices. PLC programs are usually composed of a feedback control layer and a reactive decision-making layer. While the analysis of closed-loop feedback controllers is a well-established field, the analysis of the reactive behavior of PLC applications has received little attention. At the same time, it is widely recognized that the analysis of reactive systems is complex and challenging.

This thesis presents an approach for analyzing the reactive behavior of PLC programs, assisting in program comprehension and defect detection. The basis of the approach is a solution for recording and deterministic replay ofPLC programs. On top of that, a unit-testing and trace analysis framework has been developed. The methods were developed specifically for PLC programs,solving specific challenges in this domain, including hard real-time constraints and tight resource constraints on the controller hardware.

A particular problem in the analysis of the reactive behavior of an automation system is that PLC programs exhibit complex behavior over time that depends not only on the program code, but also on the interaction with the physical device. To analyze this interaction, a specification synthesis approach is presented that uses recordings from program runs to reconstruct the input/output behavior between the software and the physical device.

This work was done in cooperation with KEBA AG. It has been funded by KEBA AG and the Christian Doppler Forschungsgesellschaft.

Kurzfassung

Speicherprogrammierbare Steuerungsprogramme (SPS-Programme) sind Programme, die zur Steuerung von Maschinen eingesetzt werden. SPS-Programme bestehen aus einem Regelungs- und einem reaktiven Steuerungsteil. Während die Analyse von Regelungen ein etabliertes Forschungsgebiet ist, wurde der Analyse des reaktiven Verhaltens von SPS-Programmen bisher wenig Beachtung geschenkt. Gleichzeitig ist aber die Analyse von reaktiven Systemen eine komplexe und anspruchsvolle Aufgabe.

Diese Arbeit präsentiert einen Ansatz zur Analyse des reaktiven Verhaltens von SPS-Programmen, erleichtert das Programmverständnis und bietet Unterstützung bei der Fehlersuche. Ein Verfahren zur Aufzeichnung und deterministischen Wiedergabe von SPS-Programmen wird vorgestellt. Darauf aufbauend wird ein Framework für Unit-Tests und zur Aufzeichnungsanalyse vorgestellt. Die Methoden sind spezifisch an die speziellen Anforderungen von SPS-Programmen angepasst, wie harte Echtzeitbedingungen und knappe Ressourcen auf der Steuerungshardware.

Ein besonderes Problem bei der Analyse des reaktiven Verhaltens eines Automatisierungssystems ist, dass das komplexe zeitliche Verhalten von SPSProgrammen nicht nur vom Programmcode, sondern auch von dessen Interaktion mit dem physikalischen Gerät abhängt. Um diese Interaktion analysieren zu können, wird ein Ansatz zur Synthese von Spezifikationen vorgestellt, der Aufzeichnungen von Programmläufen verwendet, um das Ein- und Ausgabeverhalten zwischen der Software und der Maschine zu rekonstruieren. Diese Arbeit wurde in Kooperation mit der KEBA AG durchgeführt. Sie wurde finanziert durch die KEBA AG und die Christian Doppler Forschungsgesellschaft.


PhD thesis, Johannes Kepler University Linz, Juli 2013, gesperrt bis 24.7.2018