Dr. Oscar Slotosch: Testmodellierung und Testautomatisierung für Embedded Realtime Systeme 1. Validas AG 2. Modelle im Entwicklungsprozess 3. Testautomatisierung 4. Realtime Erweiterungen
Validas Model Validation AG DGLR 11.10.2001 Gegründet 4/2000 Arbeitsgebiete: Entwicklung & Consulting bei Modellierung Validierung (Testgenerierung) Softwareentwicklung Tools Embedded Systeme Stärken der Validas ausgezeichnete Produkte hochqualifiziertes und motiviertes Team ehrlich & technisch Kontakte zu namhaften europäischen Unternehmen Sitz: Software Campus, München Validas Beteiligungsmodell
Kunden und Projekte Giesecke & Devrient Testsequenzen für Smartcards DGLR 11.10.2001 Giesecke & Devrient Testsequenzen für Smartcards EADS ADA-Codegenerierung und Testfälle aus Modellen Daimler Chrysler Research DOORS-Kopplungen BSI Vermarktung von Quest Knorr-Bremse Testsequenzerzeugung BMW, ESG UML/RT-Schulungen Validas Beteiligungsmodell
Ausgezeichnete Produkte OMER2-Award 2nd Prize Ausgezeichnete Produkte DGLR 11.10.2001 Modellierung Validation Framework Validas Beteiligungsmodell
Durchgängiger Entwicklungsprozess DGLR 11.10.2001 Klassische Phasenmodelle: Analyse Design Implementierung Test Aufgabe: Permanente Integration von QS-Maßnahmen Lösung: Modelle integrieren Modellierung Validierung Code-Generierung Modelle Beteiligungsmodell
Inkrementeller Prozess DGLR 11.10.2001 Requirements Modelle Modell 1 Modell 2 Modell 3 Modell n Modelle für Code-Erzeugung Qualitätssicherung Implementierung Beteiligungsmodell
Modellierungswerkzeug AutoFocus DGLR 11.10.2001 Modelle Entwicklung an der TU München (seit ‘96) Graphische Beschreibungstechniken “UML-RT light” Graphische Simulation und Animation Multi-User Frei verfügbar: http://autofocus.in.tum.de Semantische Fundierung zur Verifikation und Validierung Beteiligungsmodell
Modellieren mit AUTOFOCUS (TUM) DGLR 11.10.2001 Beschreibungstechniken (Sichten) Struktur: System Structure Diagrams (SSDs) Verhalten: State Transition Diagrams (STDs) Interaktion: Extended Event Traces (EETs) Daten: Data Type Definitions (DTDs) Allen Sichten gemeinsam: Hierarchie Konzeptuelles und semantisches Modell Integrierbar Modelle Beteiligungsmodell
Modellarten der UML / AutoFocus DGLR 11.10.2001 Verhalten Struktur Klassendiagramme Modelle Aktivitätsdiagramme Objektdiagramme Modell Deploymentdiagramme Zustandsdiagramme Komponentendiagramme Use Case-Diagramme OCL Sequenzdiagramme Kollaborationsdiagramme Beteiligungsmodell
Simulation Beteiligungsmodell AutoFocus Process Modelling DGLR 11.10.2001 AutoFocus Process Modelling Beteiligungsmodell
Testautomatisierung Testdurchführung Testdokumentation DGLR 11.10.2001 Testdurchführung Modell <-> System Abdeckung messen Testdokumentation Testfallermittlung Sequenzen ableiten Such-Verfahren Testautom. Beteiligungsmodell
Validation Framework Beruht auf dem AutoFocus-Komponentenmodell DGLR 11.10.2001 Beruht auf dem AutoFocus-Komponentenmodell Angestoßen durch das BSI (Quest) Zahlreiche Techniken und Anwendungen Integration bestehender bewährter Werkzeuge Innovative Eigenentwicklungen Testautom. Beteiligungsmodell
Werkzeugarchitektur SMV SATO, CHAFF OCL VSE DOORS CTE ADA Java Matlab DGLR 11.10.2001 SMV SATO, CHAFF OCL VSE Testautom. DOORS CTE ADA Java Matlab C Prolog Modellierung, Validierung, Codegenerierung korrekte Systeme, effiziente Prozesse Präzise & konzise synchrone Semantik Grundlage für fortgeschrittene Validierung Beteiligungsmodell
Vollständige Methoden DGLR 11.10.2001 Model-Checking: SMV, Mucke Bounded Model-Checking: SATO, CHAFF Abstraktionstechniken: Validator Theorem-Beweiser: VSE II Typprüfung: Validator Determinismus-Check: Validator Konsistenz-Checks: OCL Code-Erzeugung: C, Java, Prolog, Ada Testautom. Beteiligungsmodell
Unvollständige Methoden DGLR 11.10.2001 Simulation: AutoFocus Testen Transitions-Touren: Quest Transitions-Checker: SATO, CHAFF Testfallermittlung: Bounded Model-Checking Constraint-Solving Testdurchführung / Regressionstests Prototyping: MSC2STD Testautom. Beteiligungsmodell
Testsequenz-Erzeugung DGLR 11.10.2001 Modellbasiert Strukturell Besuch aller STD-Zustände Ausführung aller STD-Transitionen Funktional Ausgabe einer bestimmten Nachricht z.B. “bestimmten Geldbetrag abheben” in einem ATM-Modell Testautom. Beteiligungsmodell
Beispiel: Transitionstour DGLR 11.10.2001 Testautom. Beteiligungsmodell
Constraint-basiertes Testen DGLR 11.10.2001 Contraint-Logic Programming (Prolog mit Constraint-Solver) Symbolische Modellausführung Suche von Ausführungen mit bestimmten Eigenschaften Vorteile: Flexible Testfallspezifikation (Prolog) Geeignet für große und sogar zustandsunendliche Systeme Erzeugung mehrerer Testsequenzen durch Backtracking Testautom. Beteiligungsmodell
Testdurchführung Abgleich EET Code Interaktive Testdurchführung DGLR 11.10.2001 Abgleich EET Code Interaktive Testdurchführung Java-Code laden (Java Beans-Interface) Ausführung mit Java Reflection Automatische Testdurchführung und Regressionstests: Testdaten und –treiber erzeugen Code-Erzeugung aus Modell Programme mit Testdaten ausführen Anwendbar für C und Java-Code Graphisch: AutoFocus-Simulation mit Testdaten steuern Testautom. Beteiligungsmodell
Test Data Format Test Data Format (.tdf) Semantik: DGLR 11.10.2001 Test Data Format (.tdf) Textuell; eine Zeile pro Zeitintervall Format: {inp?Val;}*{out!Val;}* Ports der zu testenden Komponente zugeordnet Keine Variablen, Wiederholung, Verzweigung Aufgabe von Testmanagement-Werkzeugen Semantik: Eingaben an zu testende Komponente anlegen Ausgabewerte prüfen Flexible Anbindungen, z.B. SmartCards Testautom. Beteiligungsmodell
Beispiel Testdurchführung DGLR 11.10.2001 Testautom. Beteiligungsmodell
Projekt MOBASIS DGLR 11.10.2001 MOdellBASIerte Entwicklung Sicherheitskritischer Systeme Partner: EADS, TUM, Validas Laufzeit: 9/00 - 4/02 Ergebnisse: Ada Codegenerator für AutoFocus (EF konform) Verbesserung Testgenerierung Anbindung Testtools (Rational) Abdeckung (MCDC) der generierten Testfälle messen Testautom. Beteiligungsmodell
Ada Codegenerator Embedded Code (statisch: RAM/ROM) Parametrisierbar DGLR 11.10.2001 Embedded Code (statisch: RAM/ROM) Parametrisierbar max. McCabe Wert Inline Pragmas Wertebereiche Separate, ... Abschätzungen für Statische Bits McCabe-Werte Files, Packages worst-case Zyklen strukturierter, lesbarer Code Zertifizierungsmöglichkeit wird geprüft Testautom. Beteiligungsmodell
Realtime Erweiterungen DGLR 11.10.2001 Prozess Erweiterungen Funktionale Schritte (Modelle, Simulation, Tests,..) Zeitliche Erweiterungen Methoden Erweiterungen Modelle (Struktur, Verhalten, Tests) Testgenerierung Testdurchführung Codegenerierung Werkzeuge Erweiterungen Echtzeit Beteiligungsmodell
„Modelle“ für Echtzeit DGLR 11.10.2001 Struktur Zeitleitungen Verhalten Zeitkomponenten Echtzeituhr Timer Wiederholungsrate Realisierung Modellierungsmethode Stereotypes Echtzeit Beteiligungsmodell
Testmodelle für Echtzeit DGLR 11.10.2001 System Sequenzen erweitern zu Achsen, Nachrichten Zeit-Ticks (Gleichzeitigkeit) Wiederholungen Bedingungen für Meßwerte Zeitdauern Echtzeitannotationen Start?True <=1ms Echtzeit Status!Busy 1-* Value!X {X<=2} Status!Ready Beteiligungsmodell
Erweitertes Test Data Format DGLR 11.10.2001 Zeilenorientiert (wie tdf) Wiederholungen (Schleifen) Format: begin {Wdh} Zeile* end Variablen & Bedingungen Nur für Ausgaben Format: { Cond(Var);} Timer Definition/Start [TName] Abfrage: { TCond(TName);} TCond: <,>,<=,>=, us, ms, s, min, h, d Echtzeit Beteiligungsmodell
Realtime Prozess Modelle zeitabhängig machen Testsequenzen generieren DGLR 11.10.2001 Modelle zeitabhängig machen Testsequenzen generieren Realtime-Annotationen an Testsequenzen Manuell Entsprechend den Timing Requirements Code & Testtreiber generieren Tests durchführen Abdeckung messen Echtzeit Beteiligungsmodell
Zusammenfassung Einfache Modelle Echtzeit Erweiterungen DGLR 11.10.2001 Einfache Modelle klare Semantik effizienter Code viele Validierungsmöglichkeiten Echtzeit Erweiterungen Prozess Methoden Modelle Werkzeuge Validas Werkzeuge & Methoden Offene Werkzeugarchitektur Anbindung Ada Anbindung Testtools Summary Beteiligungsmodell
Andere Anwendungen BSI: “Storm Surge Barrier” (Model Checking) DGLR 11.10.2001 BSI: “Storm Surge Barrier” (Model Checking) G&D: Smartcards (Constraint-Solving, MC) EADS: Vorflügel-Steuerung (Test, Ada) TUM: Mars Polar Lander (Simulation, Validierung hybrider Systeme) MOBASIS: Mabuchi-Motor (hybrid, Matlab) OMER2: Autositz (Code-Erzeugung; Validierung) Summary Beteiligungsmodell