Strategien zur Testfallgenerierung aus UML-Zustandsautomaten

Ähnliche Dokumente
Testfallgenerierung aus Statecharts und Interaktionsdiagrammen

Sequenzgenerierung aus Klassifikationsbäumen

Ein neues Framework zum Testen von Kfz-Steuergeräte-Software

Ereignis-basierter Test grafischer Benutzeroberflächen ein Erfahrungsbericht

modellzentrierter Test

Testen mit Use Cases. Chris Rupp Dr. Stefan Queins

Modellbasiertes manuelles Testen: Techniken und Tücken

Agentenbasiertes Testmanagement beim Systemtest

Erfahrungen mit der Einführung von modellbasierter Testspezifikation, Implementierung und Generierung bei einem deutschen Automotive OEM

Modellbasiertes Testen mit UTP

Re-Engineering: Test-First-Ansatz. Dr. Thorsten Arendt Marburg, 17. Dezember 2015

Gleitender Übergang vom manuellen zum automatisierten Test eingebetteter Software

Steigerung der Testeffizienz Von modellgetriebener Entwicklung zum modellgetriebenen Testen

Durchgängiger Software- und Systemtest einer hochdynamischen Antriebsregelung

7. Konkretisierungen im Feindesign. 7.1 Zustandsdiagramme 7.2 Object Constraint Language

State diagrams (Zustandsautomaten)

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich

Aufbau einer Vitaldatentestumgebung für CEN/ISO/IEEE konforme Dienste im Projekt SmartSenior

3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg. ARIS meets RUP

Erhöhung der Zuverlässigkeit und Sicherheit von Software durch toolunterstütztes Schnittstellenmanagement

Konzeption. und prototypische Implementierung. eines Werkzeuges. für den funktionalen Klassentest

Verifikation und AO Florian Wagner

Transparenz beim Testen - Rollenorientierte Sichten im Web

Potentiale modellgetriebener Softwareentwicklung

Softwarequalitätssicherung

AGEDIS Methode und Werkzeuge. 1. Was ist AGEDIS 2. Die AGEDIS Methode 3. Architektur / Werkzeuge 4. Fazit

HIL basierte Kalibrierung anhand des HAWKS Rennwagens. Referent: Daniel Lorenz

Ereignisgesteuerte Messdatenverarbeitung

Formale Verifikation von Software. 10. Juli 2013

Modellbasiertes Testen auf Basis des fundamentalen Testprozesses

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Entwicklung einer sensorlosen Motorregelung für Dentalbohrer nach IEC Dr. Michael Schwarz

Entwicklungsbegleitende Verifikation von AUTOSAR Steuergerätefunktionen auf Basis einer Test-RTE und SiL-Simulation

Ein modellgetriebener Ansatz zur Implementierung von Zustandsmaschinen in objektorientierten Programmiersprachen

Systematisches Testen der Funktionalität von Softwaresystemen. 17. Juni 2015

Object-Oriented Analysis and Design Klausur Wintersemester 2006/2007

Modellbasierter Test mit der UML. Vortragender: Lars Westmeier Seminar: Spezifikationsbasierter Softwaretest

Welche Testautomatisierungen sind möglich und sinnvoll?

Teststrategien für komplexe Sicherungssysteme Eine Herausforderung für Wissenschaft und Industrie

Visualisierung überdeckter sowie zu überdeckender Modellelemente im modellbasierten Test

Tamagotchi-Spezifikation in UML

Softwaretests Testgetriebene Entwicklung (TDD) vs wissenschaftliche Methode TDD Case Study Zusammenfassung

Abschlussbericht. Erstellung eines automatisierten Build-Prozesses für Eclipse-RCP- Anwendungen am Fallbeispiel Control System Studio.

Bewertender Vergleich und Erweiterung unterschiedlicher UML-Simulatoren zur Bestimmung der Modellüberdeckung

Benchmarking von Bilddatenstrukturen

Entwicklung von Medizinischen Algorithmen für die Kardiologie mit Hilfe Simulink und Modellbasiertes Design

So testen Sie mit einem visuellen Vertrag

An Overview of the Signal Clock Calculus

Inhaltsverzeichnis Einführung und Überblick

Entwicklung von effizienten UI-basierten Akzeptanztests für Webanwendungen

Studientag 1793 Software Engineering I. 6. Juli 2014

Continuous Integration mit VSTS Dieter Rüetschi

Telling TestStories Modellbasiertes Akzeptanz Testen Serviceorientierter Systeme

Statecharts in UML Grundlagen und Übersetzung in Colored Petri Nets

Regelbasierte Entwicklung betrieblicher Informationssysteme

Einfach generieren. Susanne Klar, Michael Klar. Generative Programmierung verständlich und praxisnah ISBN Inhaltsverzeichnis

Modellbasierter Test mit. Medizintechnik. Kompetenz. Prozess. rund um MBT. Umsetzung. Ihren. Ausblick. Entwicklungsprozess

Model-based Design für medizintechnische Anwendungen

2 Softwarearchitektur in der Organisationsstruktur 25

Testgetriebene Entwicklung

EDD-Zertifizierung Konform zur Norm und kompatibel zum Gerät

Programmiertechnik II

Modellgetriebene Softwareentwicklung

Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften

Software-Test: Funktionstest

Einführung in Computer Microsystems Sommersemester Vorlesung Dr.-Ing. Wolfgang Heenes

Zusicherungen und Laufzeit Überwachungen in der modellbasierten Software Entwicklung

Wiederholung. Testen. Tests nach Methode zum Ableiten der Testfälle White Box Test Black Box Test

Model-View-Controller

Modellierungsansatz für die realitätsnahe Abbildung der technischen Verfügbarkeit

Modellbasierte Softwareentwicklung eines Kamera basierten Scheinwerfer-Adaptions-Algorithmus. Gerd Mauthe

Funktionales Testen. Software-Praktikum Andreas Zeller Universität des Saarlandes

Durchgängige Open-Loop-Testverfahren für Kfz-Elektronik im Labor und Fahrversuch

Automatische Testfallgenerierung aus Modellen. 8. Neu-Ulmer Test-Engineering-Day Martin Miethe

BUSINESS RULE(S) FLEXIBLE ABBILDUNG KOMPLEXER GESCHÄFTSREGELN MIT BRFPLUS. 4PROCESS HAUSMESSE DR. BERNHARD SCHINDLBECK 4process AG 2015

8. Stateflow Grundlagen. Daniel Schrammel - BA Stuttgart -

Funktionales Testen. Software-Praktikum Andreas Zeller Universität des Saarlandes

Testen von SOA-Anwendungen mit dem BPEL Testframework

Automatische Testfallgenerierung für den Systemtest. 1/5

Modulare Testfälle spezifizieren zur Automation und manuellen Testdurchführung. Tanja M. Tremmel

Nachvollziehbarkeit sichern: Testfälle auf Anforderungen beziehen

1.4! Einführung. Systemmodellierung. Methoden und Werkzeuge

Spezifikation von Kommunikationssystemen

Verhaltensbäume für höhere Autonomiegrade. Verhaltensbäume für den praktischen Einsatz

Software Engineering. 5. Architektur

Session: 8A Effiziente Softwareentwicklung für Stanznietsysteme (Böllhoff Automation GmbH) 10/11. Oktober 2017 Lemgo.

Abnahme leicht gemacht

Selbststudium OOP8 & ALG3 Aufgaben

Objektorientierte Systementwicklung

Wann lohnt sich GUI- Testautomatisierung?

Software Engineering in der Praxis

Gleiche Daten, unterschiedliche Erkenntnisziele?

Simulation und Verikation von UML-basierten Stellwerken

Komponenten- HIL und Fahrzeug- HIL sind heute weit verbreitet. i.w. höhere Qualität der Fahrzeuge und Steuergeräte

Übung zur Vorlesung Theoretische Information. Produktautomat

Systemtest im agilen Entwicklungsprozess. Uwe Hehn Sebastian Kern

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Software Engineering in der Praxis

Eingebettete Systeme

Toolgestützte Validierung, Managed Servies, Cloud Testing und andere Trends für die Produktqualität

Transkript:

Strategien zur Testfallgenerierung aus UML-Zustandsautomaten Dipl.-Ing. Carsten Paulus (FKFS), Dipl.-Ing. Michael Wolff (ZF Friedrichshafen AG), Prof. Dr.-Ing. Hans-Christian Reuss (FKFS)

Gliederung Motivation und Ziele Testprinzip Modellierung und Testsequenzerstellung Anwendung und Erfahrung Zusammenfassung und Ausblick ZFF TE-NLFKFS 2

Motivation Regler Modell des SUT Aus Einschalten Ausschalten Ein Qualitäts- und Effizienzsteigerung durch Testsequenzgenerierung ZFF TE-NLFKFS 3

Ziele Automatische Testsequenzgenerierung aus Zustandsautomaten Qualitätssteigerung durch systematisches Vorgehen Effizienzsteigerung durch Automatisierung Randbedingungen Hohe Nutzerakzeptanz Wiederverwendung von Informationen aus dem Entwicklungsprozess Fragestellungen Welche Fehlerarten können gefunden werden? Analyse des Testsequenzerstellungsvorgangs Wie kann die Anzahl der Testsequenzen beeinflusst werden? Wie können nachvollziehbare Testsequenzen erstellt werden? ZFF TE-NLFKFS 4

Softwaredesign Formale Basis für die Testspezifikation System- Architekturdesign Software- Anforderungsanalyse Softwaretest Software-Design UML MATLAB SIMULINK Zustandsdiagramme... CC++ Softwareintegration und Integrationstest ZFF TE-NLFKFS 5 Software- Erstellung Unit-Test

Testprinzip Regler Modell des SUT Aus Einschalten Ausschalten Ein Modelliert Regler - System under Test Manuell aus dem Software-Design abgeleitet ZFF TE-NLFKFS 6

Testprinzip Testsequenzen Regler Modell des SUT Strategie Aus Einschalten Ausschalten Ein Regler - System Under Test ZFF TE-NLFKFS 7

Testprinzip Testsequenzen Regler Modell des SUT Strategie Aus Einschalten Ausschalten Ein Stimulation ZFF TE-NLFKFS 8 Regler - System Under Test Testimplementierung Prüfung Testschritt 1: System im erwarteten Ausgangszustand? Testschritt 2: Stimulation eines Übergangs. Testschritt 3: System im erwarteten Zielzustand?

Modellierung Übergang: Event [Guard] Action Hierarchie Parallelität ZFF TE-NLFKFS 9

Testsequenzerstellung Strukturelle Überdeckung All-States: Jeder Zustand wird mindestens einmal besucht Anzahl der Testschritte = 2 n All-Transitions: Jeder Übergang wird mindestens einmal durchlaufen Anzahl der Testschritte* = k n N+: Ausgehend von jedem Zustand werden alle Übergangs- Bedingungen aktiviert Anzahl der Testschritte* = k 2 n2 ZFF TE-NLFKFS 10 E nter_m odus 1 Regeln_Modus1 Regeln_Modus2 E nter_m odus 2 [p_ist < p_zul] k: Anzahl der Übergänge n: Anzahl der Zustände [p_is t > p_zul] Begrenzen *: Faustformel für die Anzahl der Testschritte nach [Bin99]

Auffindbare Fehler Deak tivieren [t > t_max]ausschalten() Aktiv Inaktiv Ausgeschaltet A k tivieren Falscher Übergang: Die Implementierung durchläuft einen nicht aus der Spezifikation stimulierten Übergang Falsche Aktion: Die an einen Übergang geknüpfte Aktion ist fehlerhaft Nicht spezifizierter Übergang: Bei dem Aufruf eines Events wird in der Implementierung ein Übergang stimuliert, welcher in dem Modell nicht vorgesehen war Nicht spezifizierter Zustand: Bei dem Aufruf eines Events wird in der Implementierung ein Zustand erreicht, welcher in dem Modell nicht vorgesehen war ZFF TE-NLFKFS 11

Auswahl einer Methode All-States All-Transitions N+ Falsche Transition Nein Ja Ja Falsche Aktion Nein Ja Ja Nicht spezifizierter Übergang Nicht spezifizierter Zustand Nein Nein Ja Nein Nein Ja Faustformel Testschrittanzahl 2 n k n k 2 n2 Strategien, welche eine Bedingungsüberdeckung des Modells berücksichtigen, erhöhen die Testschrittanzahl weiter Die angegebenen Formeln gehen von einem flachen Zustandsautomaten aus. Hierarchie und Parallelität erhöhen die Testschrittanzahl ebenfalls ZFF TE-NLFKFS 12

A us sc halten Regeln Aus Autodeaktivieren «SMUT» Regeln_Modus1 Regeln_Modus2 Aktiv E ins c halten E nt er_modus 2 Ein E nt er_modus 1 Ak t ivieren [p_ist > p_zul] Deaktivieren [p_ist < p_zul] Inaktiv Begrenzen Wert_Absenken after( t = = 5 ) Regeln_Modus3 [t>t _max] Auss chalten() Ausgeschaltet Metastrategie zum Strukturerhalt Modellbildung Regler Modell des SUT Beibehalten der Struktur, Identifikation von: Hierarchie Parallelität Unabhängige Testsequenzerstellung All States All Transitions N+ Geeignete Kombination der Testsequenzen Beibehalten der Struktur, um die Testsequenzen übersichtlich zu halten Beeinflussung der Testsequenzanzahl Gezieltes Testen von Modellteilen ZFF TE-NLFKFS 13

Metastrategie zum Umgang mit Hierarchie State_1 SubState1 Substate SubState2 Übergangsbaum nach Kombination State_2 SubState4 SubState3 State_1 Substate State_2 1. 2. 3. Beibehalten der Hierarchie Substate Initial Initial1 SubState_1 State_2 SubState_3 SubState_4 Substate SubState_1 SubState_2 SubState_3 SubState_1 Die Hierarchie wird beibehalten Die vollständige Testsequenz wird inkrementell zusammengesetzt Äußerer Übergangsbaum Innerer Übergangsbaum ZFF TE-NLFKFS 14

Testen des inneren Übergangsbaumes Um die Testsequenzen für den inneren Übergangsbaum auszuführen, muss der Rest des Zustandsautomaten durchlaufen werden (State_1 oder State_2) Initialisierung Mit dem Dijkstra Algorithmus wird der kürzeste Initialisierungspfad gewählt. Parameter: Anzahl der Zustände Anzahl der Transitionen Anzahl der zu bedatenden Argumente ZFF TE-NLFKFS 15

Metastrategie zum Umgang mit Parallelität Aus A uss c halten E ins c halten Ein Regeln Regeln_Modus1 E nter_m odus 2 E nter_m odus 1 [p_ist > p_zul] Autodeaktivieren Regeln_Modus2 [p_ist < p_zul] Begrenzen Wert_Absenken after( t = = 5 ) Regeln_Modus3 Unabhängige Testsequenzableitung Automat 1 Automat 2 «SMUT» Regeln_Modus1 Enter_Modus1 Enter_Modus2 [p_ist > p_zul] Regeln_Modus2 Begrenzen [p_ist < p_zul] «SMUT» Aktiv A k tivieren Inaktiv [t>t_max]a usschalten() Ausgeschaltet «SMUT» Deaktivieren [t > t_max]ausschalten() Aktiv Inaktiv Ausgeschaltet Deak tivieren Aktivieren Für alle Regionen werden unabhängig Testsequenzen erstellt Es kann anwendungsbasiert entschieden werden, wie die Testsequenzen miteinander kombiniert werden Die Art der Kombinatorik entscheidet über die Anzahl der Testfälle ZFF TE-NLFKFS 16

«SMUT» «SMUT» Enter_Modus1 Komplexität des Produktautomaten Regeln_Modus1 Regeln_Modus2 Enter_Modus2 [p_ist < p_zul] Deaktivieren [p_ist > p_zul] Begrenzen Aktiv Inaktiv Ausgeschaltet Aktivieren [t > t_max]ausschalten() Getrennte Betrachtung Zustände: n 1 = 3 Transitionen: k 1 = 5 Zustände: n 2 = 3 Transitionen: k 3 = 4 Summe Testschritte All Transition Methode Anzahl Testschritte (k n) 15 12 27 Konfigurationen des Produktautomaten Produktautomat Zustände: n p Transitionen: k p All Transition Methode Anzahl Testschritte (k n) n 1 n 2 k 1 n 2 + k 2 n 1 + k 1 k 2 ZFF TE-NLFKFS 17 Summe Testschritte n 1 n 2 (k 1 n 2 +k 2 n 1 +k 1 k 2 ) 9 (15+12+ 20) = 513 19 Mal so viele Testschritte!

Ausführungsmöglichkeiten der unabhängig erstellten Pfade Initial Implementierungsabhängige Entscheidung: Automat 1 Regeln_Modus1 Pfad A12 Initial Pfad A21 Regeln_Modus2 Initial Regeln_Modus1 Begrenzen Verzahnte Regeln_Modus1 Aktiv Regeln_Modus2 Ausführung Regeln_Modus2 Inaktiv Begrenzen Pfad A11 Pfad A12 Regeln_Modus2 Aktiv Pfad A11 Pfad A21 Automat 2 Sequenzielle Initial Initial Ausführung Regeln_Modus1 Aktiv ZFF TE-NLFKFS 18 Pfad A21 Pfad A22 Regeln_Modus2 Regeln_Modus1 Inaktiv Aktiv

Kombinationsmöglichkeiten der Tetsequenzen Automat 1 Automat 2 Pfad A11 Pfad A12 Pfad A21 Pfad A22 Jeder Pfad mindestens einmal Jeder Pfad mit jedem Pfad 1. 2. 1. 2. 3. 4. ZFF TE-NLFKFS 19

Anwendung Testsequenzen Testfallbeschreibungssprache Ausführbarer Testcode Unit-Test (C++) Die Kontrollflussüberdeckung des zu testenden Codes kann gemessen werden und stellt ein Maß für die Güte der Testsequenzen dar Auswahl der All-Transitions Methode Nicht spezifizierte Zustände und Übergänge werden durch die Kontrollflussmessung identifiziert Die Anzahl der Testfälle bleibt überschaubar Abhängigkeit zwischen Modell und Testsequenzen ist transparent ZFF TE-NLFKFS 20

Erfahrung Die Automatisierung wurde gegen eine manuelle Referenzimplementierung getestet. Der manuell erstellte Testcode besteht aus ca. 4000 Zeilen. Die Werkzeugkette generiert ca. 2000 Zeilen Testcode In dem Projekt konnte mit einem Modell bereits eine Bedingungsüberdeckung des zu testenden Codes von 50 % nachgewiesen werden Fehlende Überdeckung geht nicht zu Lasten der Modellierung oder der Methode. Das zustandsbasierte Verhalten des zu testenden Codes macht in dieser Anwendung nur ca. 70 % aus Die transparenten strukturellen Testsequenzen können manuell ergänzt werden Funktioniert ein Pfad bei mehrmaligem Durchlauf? Überprüfen, einer nicht im Modell spezifizierten Bedingung Unterschiedliches Zeitverhalten: Ereignisse mit verschiedenen Zeitabständen ZFF TE-NLFKFS 21

Zusammenfassung und Ausblick Zusammenfassung Qualitätssteigerung durch transparent nachvollziehbare strukturelle Testsequenzen Effizienzsteigerung durch automatische Testcodegenerierung Analyse des Testsequenzerstellungsprozesses Identifikation von Faktoren zur Steuerung der Testsequenzanzahl und ihrer Transparenz Auswahlkriterien für eine Testsequenzerstellungsmethode Metastrategien zum Umgang mit Parallelität und Hierarchie Ausblick Einsatz der Methoden in anderen Testphasen Verbreitung der Methoden in den Projekten ZFF TE-NLFKFS 22

Vielen Dank für Ihre Aufmerksamkeit! Gerne stehe ich für Fragen zur Verfügung ZFF TE-NLFKFS 23

Literatur [Bin99] Robert V. Binder: Testing Object-Oriented Systems, Models, Patterns and Tools. Addison Wesley, 1999. ZFF TE-NLFKFS 24