2023 & 2024
Dissertation, RWTH Aachen University, 2023
Veröffentlicht auf dem Publikationsserver der RWTH Aachen University 2024. - Weitere Reihe: Technical report / Department of Computer Science
Genehmigende Fakultät
Fak01
Hauptberichter/Gutachter
;
Tag der mündlichen Prüfung/Habilitation
2023-05-04
Online
DOI: 10.18154/RWTH-2023-08196
URL: https://publications.rwth-aachen.de/record/964231/files/964231.pdf
Einrichtungen
Thematische Einordnung (Klassifikation)
DDC: 004
Kurzfassung
Automatische Testfallgenerierung mit dem Ziel, Überdeckungskriterien zu erfüllen oder Softwarefehler zu finden wurde in den letzten Jahren zu einer skalierbaren Technik weiterentwickelt, welche heutzutage unter Anderem von Microsoft dazu verwendet wird, kritische Sicherheitslücken aufzudecken. In der Domäne der Speicherprogrammierbaren Steuerungen (SPSen) ist die Anwendung solcher Techniken jedoch selten und basiert häufig auf Mechanismen, die nicht direkt für diese Domäne entwickelt wurden. Im Besonderen mangelt es an einer Diskussion, wie solche Techniken im Rahmen von SPS Software und den damit verbundenen Besonderheiten überhaupt gestaltet werden sollen. Auf der anderen Seite werden gerade SPSen in sicherheitskritischen Umgebungen eingesetzt, in denen Softwarefehler gravierende Risiken für Umwelt und Menschen darstellen und darüber hinaus großen finanziellen Schaden anrichten können. Ausgereifte Verfahren zur automatischen Testfallgenerierung könnten die Sicherstellung von Softwarequalität in dieser Domäne weiter unterstützen. SPS Software hat typischerweise ein Zyklus-basiertes Ausführungsschema. Dies beinhaltet das einlesen von Eingangswerten, die Verarbeitung dieser durch Ausführen des Steuerungsprogramms, welches seinen Zustand über lokale Variablen speichern kann, sowie das Schreiben von berechneten Ausgangswerten. Obwohl die Ausführungssemantik sich durch die zyklische Ausführung nur wenig von der Semantik normaler Software unterscheidet, sind die Auswirkungen für die Applikation automatischer Testfallgenerierung signifikant. Diese Dissertation stellt Mechanismen und Erkenntnisse bereit, welche zum Transfer von Techniken der automatischen Testfallgenerierung in die SPS-Domäne dienen. Um ein Basiswissen für zukünftige Arbeiten zu schaffen, befasst sich diese Arbeit im Detail mit verwandten Techniken und legt deren Stärken und Schwächen bei der Verwendung für SPS Software offen. Des Weiteren werden neue Konzepte und Algorithmen vorgestellt und die Effizient dieser anhand von Beispielprogrammen gezeigt. Es konnte in dieser Arbeit gezeigt werden, dass die Generierung von Zweigüberdeckungstests mit den eingeführten Methoden signifikant schneller erreicht werden kann, als mit verwandten Techniken, was die Skalierbarkeit der präsentierten Methoden unterstreicht. Im Fokus dieser Arbeit steht das Ausnutzen von Zustands-basierten Ausführungsmodellen, sowie die Erhaltung von strukturellen Programminformationen für die domänenspezifische Ablaufsprache (engl. SFC). Im Falle von SFC ist die Entwicklung eines Verfahrens gelungen, welches binnen weniger Sekunden vollständige Zweigüberdeckung erreicht. Für die verwendeten Beispielprogramme ist binnen einem Zeitlimit von einer Stunde mit verwandten Techniken nur eine teilweise Überdeckung möglich.Automatic test case generation for the purpose of bug finding or achieving coverage goals has recently evolved to a scalable technique that is nowadays used to find highly critical security bugs, e.g. by Microsoft. However, in the domain of Programmable Logic Controllers (PLCs), applications of this technique are rare and usually rely on tools and mechanisms that were not initially designed for this domain. In fact, a discussion on how to design such techniques with the peculiarities of PLC software in mind, is missing. At the same time, PLC software is typically used in safety critical environments where software errors pose significant threats to the environment or humans and may additionally result in significant financial losses. Mature automatic testing techniques for the PLC domain would, thus, be highly beneficial to further support software quality in this area. PLC software typically follows a cyclic execution scheme that involves a repeated process of reading input values, executing a (often state machine based) control program that relies on local variables and writing computed values to outputs. Although the cyclic execution resembles only a small change in the execution semantics, the impact on automatic testing techniques is significant. This dissertation provides insights and mechanisms to transfer automatic test case generation into the domain of PLC software. We conduct an in-depth discussion on related approaches and point out strengths and weaknesses in order to provide baseline knowledge that can be utilised in future developments in this field of research. Further, we introduce our own automatic test case generation approaches and exemplify their effectiveness on PLC software. We are able to show that the generation of branch coverage tests can be achieved significantly faster than with existing techniques, rendering our approaches more applicable for larger software. The focus of our techniques lies in the exploitation of state-machine based execution behaviour and the preservation of structural information in Sequential Function Chart. For the latter, our presented algorithm can achieve full coverage in a few seconds for programs that could only partly be covered within an hour by related approaches.
OpenAccess:
PDF
(additional files)
Dokumenttyp
Dissertation / PhD Thesis/Book
Format
online
Sprache
English
Externe Identnummern
HBZ: HT030620486
Interne Identnummern
RWTH-2023-08196
Datensatz-ID: 964231
Beteiligte Länder
Germany
|
The record appears in these collections: |