Thema: Non-Functional Testing

12:25 - 13:10 Uhr

Erfahrung und Wissen systematisch nutzen - Fehlermodelle in der modellbasierten Verifikation (Vortragssprache: Deutsch)

Bernd Holzmüller, ITK Engineering AG
Dominik Holling, Technische Universität München

Mit zunehmender Komplexität von Softwaresystemen steigt neben dem Entwicklungs- auch der Absicherungsaufwand kontinuierlich an. Letzteres ist gerade in cyber-physischen Systemen mit einer Vielzahl an Varianten und Produktlinien besonders komplex. Um die Zuverlässigkeit dieser Systeme in allen Konfigurationen zu gewährleisten, werden effiziente Methoden zur automatisierten und effektiven Verifikation benötigt. Gemeinsam mit der TU München (TUM) forscht die ITK Engineering AG (ITK) an innovativen Testmethoden, mit denen die Qualitätssicherung von cyber-physischen Systemen an Effizienz gewinnt. Hierzu gehört u.a. systematisches, fehlerbasiertes Testen, bei dem Fehlermodelle häufige und wiederkehrende Fehlerzustände (faults) sowie bewährte Methoden zur Erzeugung von Fehlerwirkungen (failures) formal erfassen. Durch Operationalisierung lassen sich anschließend aus Fehlermodellen (semi-)automatische Testfallgeneratoren ableiten und in existierende Qualitätssicherungsprozesse integrieren.Die Erstellung von Software für cyber-physische Systeme findet häufig in MATLAB Simulink® statt. MATLAB Simulink® nutzt eine datenflussorientierte, blockbasierte Notation, die den im Ingenieurwesen verwendeten Blockdiagrammen ähnelt. Der Nachteil dieser Notation ist die Abstraktion des unterliegenden Rechenmodells, was dazu führt, dass Laufzeitfehler wie Divisionen durch 0 und Über-/Unterläufe schwer auszumachen sind. Diese beeinträchtigen die Zuverlässigkeit des Systems in Bezug auf Verfügbarkeit essentiell, da es zu Systemabstürzen und damit zur Gefährdung von Personen kommen kann. Meist werden Laufzeitfehler erst spät im Entwicklungsprozess durch den Einsatz von statischer Analyse entdeckt. Die Werkzeuge der statischen Analyse haben nicht nur hohe Lizenzkosten, sondern benötigen auch die langwierige Interpretation der Ergebnisse durch einen Experten. Zumeist werden in einer ersten Analyse Leichtsinnsfehler gefunden. Diese gehen von einem oder wenigen Blöcken aus und führen zu Laufzeitfehlern und maskieren möglicherweise gravierende Fehler. Nach Behebung der Leichtsinnsfehler wird eine weitere Analyse zur Kontrolle durchgeführt, die zugleich auch die gravierenden Fehler identifizieren soll. Diese weitere Analyse ist mit erneut hohem Aufwand und damit Kosten verbunden. Um diese Fehler automatisch und effizient zu entdecken, entwickelte die TUM gemeinsam mit ITK eine Operationalisierung namens 8Cage (Automated Test Case Generator). 8Cage detektiert die beschriebenen Laufzeitfehler direkt in MATLAB Simulink® automatisch. Zusätzlich löst 8Cage die gefundenen Laufzeitfehler explizit aus und kann somit entweder Evidenz der Fehlerwirkung sammeln oder den expliziten Test der Fehlertoleranz- und Wiederherstellungsmechanismen des Systems ermöglichen. Durch die frühzeitige und potentiell tägliche Erkennung (Frontloading) der Laufzeitfehler kann die Anzahl der benötigten Analysen gesenkt werden. Diese Zeit und Aufwandseinsparung wirkt sich dann positiv auf Effizienz und Kosten des Gesamtentwicklungsprozesses aus.Die Fehlerdetektion mit 8Cage beginnt mit einer Analyse des MATLAB Simulink® Modells hinsichtlich der in den definierten Fehlermodellen beschriebenen Blöcke oder Blockkombinationen. Mit Hilfe der detektierten potentiell fehlerverursachenden Blöcke wird nun versucht, Fehlerwirkungen zu erzeugen. Wenn dies gelingt, kann daraus ein Testfall zur automatisierten Ausführung und damit zum Nachweis des tatsächlich vorhandenen Fehlers generiert werden.Zur automatisierten Ausführung und Protokollierung des Testfalls wird das von ITK entwickelte, vollständig in Simulink® integrierte Test Automation Framework (TAF) verwendet. TAF ermöglicht es, Gesamtsysteme modulbasiert zu testen. Hierbei wird das Gesamtsystem zunächst (semi-)automatisch in Module zerlegt, ohne jedoch dabei die Kompositionssemantik sowohl auf Modell- als insbesondere auch auf Ebene des generierten Codes zu verändern. Im Vortrag wird anhand eines praktischen Beispiels aufgezeigt, wie die Verifikation von Softwaresystemen in MATLAB Simulink® mithilfe von fehlermodellbasiertem Testen an Effizienz gewinnt und in bestehende Qualitätssicherungsprozesse integriert werden kann.

Bernd Holzmüller, ITK Engineering AG

Bernd Holzmüller Fachreferent bei ITK Engineering mit dem Schwerpunkt Testmethoden, u.a. mit den Themen  modellbasiertes Testen, Testfallreduzierung und Testprozessverbesserung. Seine Hauptinteressen gelten den formalen Methoden und Notationen, Testen, Requirements Engineering, Prozessmodellierung und Qualitätssicherung.

Nach seinem Informatikstudium an der Universität Stuttgart arbeitete er als wissenschaftlicher Mitarbeiter im Bereich Programmiersprachen und Compilerbau. Er hat mehr als 15 Jahre Erfahrung im Software Engineering und Projektmanagement in unterschiedlichen Branchen wie Bahntechnik, Luft- und Raumfahrt, Automatisierungstechnik und Automotive. In den letzten zwei Jahren war er mit der Definition und Einführung eines Qualitätsmanagementsystems für die Softwareentwicklung in der Automobilindustrie und als Berater für Entwicklungs- und Testprozesse tätig.

Dominik Holling, Technische Universität München

Dominik Holling forscht seit 2012 am Lehrstuhl Software Engineering der Technischen Universität München in den Gebieten Softwaretest und symbolische Ausführung. Seine Forschung bezieht sich dabei primär auf Fehlermodelle in der Qualitätssicherung. Während dieser Zeit arbeitet er mit einer Vielzahl an Firmen, u.a. ITK Engineering AG, zusammen, um Fehlermodelle zu erheben und zu klassifizieren.

Vor dem Eintritt in die Forschung, studierte er von 2006 bis 2011 Informatik an der TU Kaiserslautern mit dem Fokus auf Software Engineering und Informationssicherheit. Während des Studiums entstand die Veröffentlichung eines Ansatzes zum Aufbau von Vertrauensverhältnissen in Cloud-Infrastrukturen.