Testfallgenerierung aus modellbasierten Systemspezifikationen auf der Basis von Petrinetzentfaltungen

Bok av Jan Krause
Testen ist ein essentieller Part bei der Entwicklung von industriellen, qualitativ hochwertigen informationsverarbeitenden Systemen und Geräten. In dieser Arbeit wird eine Methode zur modellbasierten Testgenerierung auf der Basis von Petrinetzentfaltungen entwickelt und beschrieben. Auf der Grundlage eines Spezifikationsmodells für das geforderte Verhalten des Testobjekts werden Testfälle automatisch abgeleitet, die vorher spezifizierten Testzielen genügen. Der Fokus bei der Entwicklung dieser Testgenerierungsmethode liegt dabei auf der Erreichung hoher bis potentiell höchster Abdeckungskriterien, wodurch eine Kombination mit etablierten Methoden der modellbasierten Testgenerierung sinnvoll ist.Für die Modellierung des geforderten Verhaltens eines Testobjekts wird der Petrinetzdialekt "Sicheres Petrinetz mit Attributen" - SPENAT auf der Basis der etablierten Stellen/Transitionen-Netze (ST-Netze) entwickelt. Ein SPENAT ist ein sicheres ST-Netz, das allerdings Attribute mit beliebigem Datentyp besitzen kann. Im Vergleich zu vorhandenen Petrinetzmodellen ist es bei einem SPENAT möglich, externe und v. a. parametrisierte, also datentransportierende Ereignisse als Transitionstrigger zu verwenden. Dadurch wird eine intuitive und gut verständliche Modellierung des Verhaltens des Testobjekts als reaktives, diskretes System ohne explizite Umgebungsmodellierung möglich. Das Design eines SPENAT geschieht aber in erster Linie vor dem Hintergrund der guten Abbildbarkeit etablierter Modellierungsnotationen. Insbesondere wird auf die möglichst vollständige Abbildbarkeit von UML-Zustandsmaschinen, als weit etablierte und häufig genutzte Modellierungsnotation auf entsprechende SPENAT geachtet.Für die Analyse des als SPENAT vorliegenden Spezifikationsmodells können etablierte Methoden der Petrinetzanalyse verwendet werden. Für die Testgenerierung wird sich in dieser Arbeit auf die Berechnung eines (vollständigen) Präfixes der Entfaltung des SPENAT-Spezifikationsmodells fokussiert. Allerdings können etablierte Markierungsmodelle für Petrinetze nicht für die Analyse eines SPENAT verwendet werden. Das liegt in erster Linie daran, dass Abhängigkeiten der SPENAT-Attribute von Parametern externer Ereignisse in der Markierungsrepräsentierung des SPENAT ausgedrückt werden müssen. Mit etablierten Markierungsmodellen für Petrinetze ist das nicht effizient möglich. Zur Markierungsrepräsentierung der Attribute eines SPENAT wurde deshalb eine angepasste Form eines Bedingungserfüllungsproblems (Constraint Satisfaction Problem mit Zuweisungen - ACSP) entwickelt und verwendet. Die für die Analyse eines (zyklischen) Petrinetzes notwendige Aussage der Markierungsäquivalenz von Transitions- bzw. Schaltsequenzen eines SPENAT kann mit Hilfe des Vergleichs auf Strukturgleichheit der entsprechenden ACSP in Abhängigkeit von den Eingangsparametern realisiert werden. Eine explizite Aufzählung aller möglichen Werte der externen Ereignisparameter ist somit nicht notwendig. Für die Umsetzung dieses Strukturvergleichs wird in dieser Arbeit ein einfacher Algorithmus vorgestellt.Die Testgenerierung erfolgt auf Basis der als Entfaltungsnetz vorliegenden Verhaltensdarstellung des SPENAT-Spezifikationsmodells. Für verschiedene etablierte, strukturelle Abdeckungskriterien des Spezifikationsmodells wird das entsprechende Vorgehen zur Testgenerierung dargestellt. Da im Zweifelsfall das vollständige Präfix der Entfaltung des SPENAT-Spezifikationsmodells berechnet und somit als Grundlage der Testgenerierung verwendet werden kann, können somit höchste strukturelle Abdeckungskriterien erreicht werden. Nicht ausführbare Pfade des Spezifikationsmodells können dabei leicht identifiziert werden, was eine Bewertung der erreichbaren Abdeckung des Spezifikationsmodells erleichtert.