Einsatz automatischer Testvektorgenerierung im modellbasierten Test

Ähnliche Dokumente
Einsatz automatischer Testdatengenerierung im modellbasierten Test

Dr. Klaus Lamberg, Michael Beine

"Spezifikationsbasierter Softwaretest" Test mit Matlab/Simulink/Stateflow

ASIL-relevante SW-Module identifiziert! Was nun?

Einführung von Testautomatisierung reflektiert. Erkenntnisse eines Linienmanagers zu Herausforderungen und Fallgruben

Code Generator Certification: A Test Suite-oriented Approach

Werkzeugunterstützte Verknüpfung von Anforderungen und Tests Voraussetzung für eine systematische Qualitätssicherung

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

Testen Prinzipien und Methoden

Einführung Arten von Softwaretests Prinzipien Continuous Integration Tests in FLOSS-Projekten Quellen. Softwaretests. Christoph Betschart

Erfolgreicher entwickeln durch systematisches Testen

Testmanagement. Full-Service

Teststrategie festlegen und Teststufen aufeinander abstimmen

Wann lohnt sich GUI- Testautomatisierung?

Vector Software. Test Automation mit VectorCAST während der gesamten Softwareentwicklung W H I T E P A P E R

Qualitätsmanagement. Grundlagen

Testdokument (Universität Paderborn, Softwaretechnikpraktikum SS2006)

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

Thomas Freitag achelos GmbH SmartCard-Workshop achelos GmbH

Software Test- und Analyse-Tools für Produktivität und Qualität.

Whitebox-Tests: Allgemeines

Telling TestStories Modellbasiertes Akzeptanz Testen Serviceorientierter Systeme

Abbildung 1: Tool-Qualification-Kits für Testwell CTC++ Test Coverage Analyser

Korrektheitsbegriffe für modellbasierte Codegeneratoren

ER-Modelle zur klaren Begrifflichkeit bei der Testentwicklung

Softwaretest von verteilten Echtzeitsystemen im Automobil anhand von Kundenspezifikationen

Modelltestmanagement Schulung

Universität Paderborn Die Universität der Informationsgesellschaft. Validierung und Verifikation (inkl. Testen, Model-Checking, Theorem Proving)

Testen - Konzepte und Techniken

Testen von SOA-Anwendungen mit dem BPEL Testframework

Senior Consulting. Senior Consulting Strategical, Conceptual and Technical Consulting Seite 1

Formale Verifikation von Software. 10. Juli 2013

Testautomatisierung: Ein akademisches Thema?

Automotive Software Engineering

Modellbasierter Entwurf sicherheitskritischer Anwendungen. Von Moritz Borgmann Für VL Eingebettete Systeme Sommer Semester 2009

Constraintbasierte Testdatenanalyse für eingebettete Steuerungssoftware

T2 Fundamentaler Testprozess

Herausforderungen der Variantenentwicklung im Anforderungsmanagement meistern

Testautomatisierung. Lessons Learned. qme Software. Gustav-Meyer-Allee Berlin. Telefon 030/ Telefax 030/

T1 - Fundamentaler Testprozess

Seamless Model-based Engineering of a Reactive System

Testmethoden und tools in der modellbasierten Funktionsentwicklung

Softwarequalitätssicherung

Test-Strategien. Grundsätzliches Blackbox-Testen Whitebox-Testen Graybox-Testen Ablauf von Tests Zusammenfassung. HS Mannheim

transportation SYMTES Testen mit System

Qualitätssicherung im Lebenszyklus des itcs. Anspruch und Wirklichkeit.

Test. Dipl. Wirtsch. Ing. Alexander Werth 9-1

Formale Verifikation von Software. 8. Juli 2015

Programmiertechnik II

ALM Test Management Cockpit. Tobias Fickinger, SAP Consulting April 2016

Testfallerzeugung aus Use-Case-Beschreibungen

Modellbasierte Softwareentwicklung

intence automotive electronics Ausführbare Spezifikation Der Weg zu besseren Anforderungen

Testen im Software- Entwicklungsprozess

Kernprozess zur System- und Softwareentwicklung. Logische Systemarchitektur f 1. f 2 f 3. f 4 Funktion. Technische Systemarchitektur SG 1 SG 2 SG 3

Softwaretechnik. Vertretung von Prof. Dr. Blume Fomuso Ekellem WS 2011/12

IT-Arbeitskreis OWL. Testautomatisierung 2.0. Modellbasiertes Testen. Baris Güldali

Die Zertifizierungsstelle der TÜV Informationstechnik GmbH bescheinigt hiermit dem Unternehmen

Lasst die Roboter arbeiten: Oberflächen (Test) Automation im Fokus

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

Testphase. Das Testen

Notwendigkeit der Testautomatisierung? Neue Ideen, Konzepte & Werkzeuge

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

Catch the Bug Testaktivitäten erfolgreich messen

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG

MBEES Research Abstract Ein Framework zur automatisierten Ermittlung der Modellqualität bei eingebetteten Systemen

Benutzungsorientiertes und modellzentriertes Testen im HiL-Testing. Testing

SI-SE Testen in der Softwareentwicklung

In der Entwicklung werden die Phasen Systementwurf, Projekten mit Funktionaler Sicherheit. Testen in TESTMETHODEN

Software Engineering in der Praxis

PFD Erstellung leicht gemacht

Software-Test: Funktionstest

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

Virtuelle Inbetriebnahme von Maschinen und Fabriken

modellzentrierter Test

Software Engineering II (IB) Testen von Software / Modultests

Kapitel 8: Fehlervermeidung

Modellbasiertes Testen - Der ioco Ansatz

Test modellbasiert entwickelter Steuergeräte

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

Eine Anleitung zur Entwicklung von Simulink-Targets für die Lehre. 10. MBEES 2014, Dagstuhl

Motivation und Überblick

Modellbasierte Software- Entwicklung eingebetteter Systeme

Prozess-Modelle für die Softwareentwicklung

SEQIS KeepLiquid Testautomation

Die Softwareentwicklungsphasen!

Testwell CTC++ Test Coverage Analyser Testabdeckung für alle Coverage-Stufen, alle Compiler, alle Embedded Targets

Testmanagement. Q-Day. Frank Böhr Fraunhofer IESE

Basiswissen Softwaretest

- Prüfung - Prüfspezifikation für Anforderungen (Lastenheft)

YOUR EASY SOLUTION FOR COSTING

Systematisches Testen von Software

Qualitätsmanagement im Projekt

Ein generativer Ansatz für den automatisierten Softwaretest,

Comparing Software Factories and Software Product Lines

Testing Today - Seminar Sommersemester Dipl.-Math. Raphael Pham, Prof. Kurt Schneider

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

ARIS for mysap Erfolgreiche Umsetzung von mysap Lösungen

Software Qualitätssicherung durch systematischen Softwaretest

Entwicklungsbegleitender Test mechatronischer Systeme

Transkript:

Einsatz automatischer Testvektorgenerierung im modellbasierten Test Sadegh Sadeghipour, Meike Lim IT Power Consultants Gustav-Meyer-Allee 25 13355 Berlin sadegh.sadeghipour@itpower.de meike.lim@itpower.de Abstract: In der Welt der modellbasierten Softwareentwicklung hat die automatische Testvektorgenerierung die Forschungsphase bereits durchschritten. Dementsprechend sind einige Tools für die auf dem Markt der modellbasierten CASE Tools verfügbar. Dieser Beitrag beschreibt verschiedene Anwendungsszenarien für die automatische auf Modellebene. 1 Einleitung Die Methoden und Tools für die automatische zur Überdeckung des Programmcodes sind derzeit noch Gegenstand der Forschung. Folglich werden sie noch nicht in der industriellen Praxis der Softwareentwicklung eingesetzt. In der Welt der modellbasierten Softwareentwicklung hat jedoch die automatische Testvektorgenerierung die Forschungsphase bereits durchschritten. Einige Tools für die Generierung von, die auf einer Auswahl von effizienten Technologien basieren, sind auf dem Markt der modellbasierten CASE Tools verfügbar. ATG [OS04], Conformiq Test Generator [Ve04], beide basierend auf Statecharts, und Reactis Tester [Re04], basierend auf Simulink/Stateflow sind drei Beispiele. Reactis hat sich bereits seinen Weg in die industrielle Praxis gebahnt und wird von Entwicklern und Testern der automobilen Steuergeräte-Software verwendet. Nach einer Analyse der Modellstruktur werden zunächst zufällig generiert. Anschließend wird die Methode Guided Simulation angewandt, bei der generiert werden, die zu noch nicht überdeckten Zielen führen. Zu diesem Zweck werden verschiedene allgemeine Überdeckungskriterien, wie Decision und Condition Coverage, sowie Simulink- oder Stateflow-spezifische Kriterien, wie Überdeckung von bedingten Subsystemen oder Zustands und Transitionsüberdeckung, definiert. Das Hauptproblem bezüglich des Einsatzes der automatischen Testvektorgenerierung ist die Frage der Testauswertung, d.h. die Frage, ob die mit den erzeugten

durchgeführten Tests erfolgreich sind (Problem des Testorakels). Um die Tests auswerten zu können, müssen die automatisch generierten funktional interpretiert werden. Im Allgemeinen ist dies jedoch eine komplexe Aufgabe. Deshalb ist die Hauptfrage nach Ansicht des Testingenieurs und des Verantwortlichen für die Qualitätssicherung bezüglich der automatischen auf folgende Weise zu stellen: Reduziert der Einsatz von automatischen Testvektorgeneratoren den Aufwand des modellbasierten Testprozesses? Oder präziser formuliert: Wie sollte ein Generator von automatischen innerhalb des modellbasierten Testprozesses eingesetzt werden, um einen maximalen Nutzen zu erreichen? Dieser Beitrag beschreibt verschiedene Anwendungsszenarien für den Einsatz einer automatischen Testvektorgenerierung auf Modellebene zur Steigerung der Effizienz und zur Verbesserung der Qualität des Testprozesses. 2 Einsatzszenarien für automatische Testvektorgenerierung In diesem Abschnitt werden die folgenden Einsatzszenarien für die automatische Testvektorerzeugung vorgestellt. 1. Back-to-Back-Test und Regressionstest 2. Effektive Teststrategie 3. Entwicklungsbegleitende Tests 4. Funktionale Tests Die funktionale Interpretation der automatisch generierten und folglich das Orakelproblem wird in den ersten zwei Szenarien vermieden. Im dritten Fall muss eine leichte Version des Orakelproblems gelöst werden. Im letzten Szenario wird das Testverhalten vor der Testdatenerzeugung spezifiziert. Die automatisch generierten sind somit in der Spezifikation des Testverhaltens eingebettet. Die Testverhaltensspezifikation stellt deshalb gleichzeitig die funktionale Interpretation der generierten dar. 2.1 Back-to-Back- und Regressionstests Back-to-Back-Tests prüfen die Äquivalenz zwischen den verschiedenen Repräsentationsformen des Testobjekts, z.b. zwischen dem Modell und dem daraus generierten Programmcode. Regressionstests stellen sicher, dass die am Testobjekt vorgenommenen Modifikationen die schon korrekt umgesetzten Funktionalitäten älterer Versionen ebenfalls erfüllen. In beiden Fällen dienen die bestätigten Ergebnisse früherer Tests als Referenzdaten. Ein Back-to-Back- oder Regressionstest wird als erfolgreich bewertet, wenn der Nachweis der (partiellen) Äquivalenz zwischen dem Testobjekt und einer früheren schon geprüften Version desselben (Referenzobjekt) erbracht wird. Ein solcher Nachweis erfolgt durch den Vergleich der Outputs des Testobjekts mit dem Referenzobjekt, wobei sowohl Test- als auch Referenzobjekt mit den gleichen Inputs ausgeführt werden. Diese

durch die Testfälle bestimmten Inputs brauchen deshalb nicht individuell interpretiert zu werden. Jedoch müssen sie so umfassend sein, dass die beanspruchte (partielle) Äquivalenz zwischen dem Testobjekt und dem Referenzobjekt im Falle von erfolgreichen Tests gerechtfertigt ist. Eine automatisch generierte Testsuite zur Überdeckung struktureller Elemente des Modells wäre also durchaus für Back-to-Back- und Regressions-Tests geeignet (Abbildung 1). Das Erreichen der strukturorientierten Überdeckungskriterien garantiert die Breite und die Tiefe des Tests und reduziert gleichzeitig den Aufwand für die Ermittlung von Testfällen. Version n+1 t Modell Version n Systemreaktion Testszenario... Code Signalvergleich??... System Abbildung 1: Einsatz der automatischen bei Back-To-Back- und Regressionstests Die Auswertung von Back-to-Back- und Regressionstests, d.h. der Vergleich der Outputs des Testobjekts mit den Referenzdaten, kann auch automatisiert werden. Beispielsweise ist dies mit dem Tool MEval möglich, das Zeitverschiebungen und Amplitudenabweichungen erkennt und getrennt voneinander analysiert [CSW05]. 2.2 Effektive Teststrategie Eine Teststrategie ist effektiv, wenn die auf dieser Strategie basierenden Tests Fehler im Testobjekt identifizieren [Be95]. Um die Wahrscheinlichkeit der Fehlerentdeckung zu erhöhen, wird im Allgemeinen eine geeignete Kombination von einzelnen Testmethoden als eine effektive Teststrategie erachtet. Eine bekannte effektive Teststrategie innerhalb der konventionellen Softwareentwicklung ist die Kombination des funktionalen und des strukturorientierten Tests [Gr95]. Diese Strategie wurde dem modellbasierten Test angepasst [Co04]. Demnach wird nach der Spezifikation funktionaler Testfälle ein Modellüberdeckungskriterium bestimmt und die Modellüberdeckung während der funktionalen Testdurchführung gemessen. Im nächsten Schritt werden neue Testfälle spezifiziert, welche die noch nicht überdeckten Modellelemente überdecken. Genau für diese Aufgabe kann ein automatischer Testvektorgenerator eingesetzt werden, um die noch nicht überdeckten Modellelemente zu überdecken (Abbildung 2). Im Vergleich zu einer manuellen Ermittlung von wird der Testaufwand dadurch erheblich reduziert. Der funktionale Erfolg der Tests und deren funktionale Bedeutung kann nun vernachlässigt werden, da die funktionalen Tests bereits in der ersten Stufe definiert und durchgeführt wurden. Die

bereits in der ersten Stufe definiert und durchgeführt wurden. Die automatisch generierten strukturellen Testfälle werden als erfolgreich beurteilt, wenn keine offensichtlichen Fehler, wie z.b. Overflows oder Deadlocks, während des Modelltests auftreten. Spezifikation der Anforderungen Black-Box- Test Modelltest Monitoring % Messung der Modellüberdeckung White-Box-Test Modelltest Abbildung 2: Einsatz der automatischen Testvektorgenerierung innerhalb einer effektiven modellbasierten Teststrategie 2.3 Entwicklungsbegleitende Tests Im Rahmen einer Bottom-Up Entwicklungsstrategie sollten die Entwickler unmittelbar die kleinen, von ihnen entwickelten prüfbaren Module testen. Diese Module entsprechen einzelnen Algorithmen oder Funktionen der gesamten Software, die zu entwickeln ist. Aufgrund beschränkter Zeit und kurzfristiger Liefertermine verzichten Entwickler oft auf solche Entwicklungsbegleitenden Tests und akzeptieren damit zwangsläufig eine geringe Qualität des entwickelten Teils der Software. Die an dieser Stelle eventuell verursachten Fehler werden dann gegebenenfalls später während des Modul- oder Systemtests entdeckt, was jedoch höhere Kosten für ihre Behebung verursacht. Testvektorgeneratoren unterstützen Entwickler bei der für kleine prüfbare Einheiten. Da die Entwickler am besten mit der Struktur der von ihnen entwickelten Module vertraut sind, können sie die automatisch generierten leicht interpretieren und die entsprechenden Tests zuverlässig beurteilen. 2.4 Funktionale Tests Die automatische Testvektorgenerierung kann auch für funktionale Tests, die auf der Anforderungsspezifikation der zu entwickelnden Software basieren, verwendet werden. Dies ist jedoch nur möglich, wenn der Testvektorgenerator dem Benutzer die Möglichkeit bietet, das Testverhalten zu modellieren und parallel zum Testobjekt zu simulieren (Abbildung 3). Reactis beispielsweise bietet dem Anwender mit dem validator objective eine solche Möglichkeit [Re04]. Natürlich ist in diesem Fall eine intellektuelle Arbeit des Testingenieurs erforderlich, um das Testverhalten aus der Anforderungsspezifikation abzuleiten. Jedoch ist dieser Aufwand inhärent zum funktionalen Testen. Der nächste Schritt, nämlich die Definition von zur Überdeckung des Testverhaltens, die im Falle der manuellen Durchführung sehr aufwändig ist, wird vom automatischen Testvektorgenerator übernommen.

Testverhalten Testobjekt Abbildung 3: Einsatz der automatischen Testvektorgenerierung für funktionale Tests 3 Zusammenfassung In diesem Beitrag wurden vier Szenarien für den Einsatz modellbasierter Testvektorgenerierung beschrieben. Vor allem ermöglicht die automatische Testvektorgenerierung eine erhebliche Zeit- und Aufwandsersparnis bei Regressions-, Back-to-Back-Tests. Im Falle der Existenz einer Qualitätsanforderung bezüglich des Erreichens eines vorgegebenen Modellüberdeckungsgrades ist das Einsetzen des Testvektorgenerators gemäß dem zweiten Einsatzszenario (effektive Teststrategie) sinnvoll. Die Spezifikation des Testverhaltens gemäß dem vierten Einsatzszenario eignet sich insbesondere für die sicherheitsrelevanten Funktionen, bei denen eine hohe Testtiefe zu erreicht ist. Die in diesem Artikel präsentierten Ergebnisse wurden teilweise im Rahmen des Projekts IMMOS erarbeitet, das vom Bundesministerium für Bildung und Forschung gefördert wird (Projektnummer 01ISC31). Literaturverzeichnis [Be95] Beizer, B.: Black-Box Testing Techniques for Functional Testing of Software and Systems. John Wiley & Sons, New York, 1995. [Co04] Conrad, M.: Modell-basierter Test eingebetteter Software im Automobil Auswahl und Beschreibung von Testszenarien. Dissertation, Deutscher Universitäts-Verlag, Wiesbaden, [CSW05] Conrad, M.; Sadeghipour, S.; Wiesbrock, H.-W.: Automatic Evaluation of ECU Software Tests. In Proc. SAE 2005 World Congress, Detroit, USA, 2005. [Gr95] Grimm, K.: Systematisches Testen von Software - Eine neue Methode und eine effektive Teststrategie, Dissertation, GMD-Bericht Nr. 251, R. Oldenburg Verlag, München 1995. [OS04] OSC Embedded Systems AG: ATG (Produktinformation). http://www.osces.de/products/en/atg.php, [Re04] Reactive Systems, Inc.: Reactis User s Guide V 2. www.reactive-systems.com, [Ve04] Verifysoft Technology GmbH: Conformiq Test Generator (Produktinformation). http://www.verifysoft.com/de_conformiq_testgenerator.html,