Softwarequalitätssicherung

Ähnliche Dokumente
Whitebox-Tests: Allgemeines

Programmiertechnik II

Client-Server-Beziehungen

Tagesprogramm

SEP 114. Design by Contract

Telling TestStories Modellbasiertes Akzeptanz Testen Serviceorientierter Systeme

Java: Vererbung. Teil 3: super()

VBA-Programmierung: Zusammenfassung

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

Testen von graphischen Benutzeroberflächen. 24. Juni 2015

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Design by Contract with JML

Programmierkurs Java

Objektorientierte Programmierung

Die Spezifikationssprachen Z und VDM. Michael Hildebrandt

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

Übungen Programmieren 1 Felix Rohrer. Übungen

Client-Server Beziehungen

Testen und Testautomatisierung in agilen Projekten

Einrichtung eines -Kontos bei Mac OS X Mail Stand: 03/2011

Einführung in die Programmierung für Wirtschaftsinformatik

Assertions (Zusicherungen)

Verknüpfung von kombinatorischem Plattformund individuellem Produkttest für Software-Produktlinien

Kapitel 12 Dokumentation und Zugriffsrechte

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Nachweis der Verhaltensäquivalenz von Feldbus-Komponenten auf unterschiedlichen Abstraktionsebenen

Laufzeitverifikation

Typumwandlungen bei Referenztypen

Management Selbst-Service: Szenarien

QISPOS. Benutzerhandbuch Prüfungsanmeldung. für. Die Rolle: Student

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Mensa-Bestellsystem der Grundschule Bienenbüttel

Software Engineering Klassendiagramme Assoziationen

Testen Prinzipien und Methoden

Grenzwertanalyse. Domain-Testing. Ronny Schwierzinski, Bernd Rabe, Anna Bartwicki

Sie sollen nach Abschluss dieser Übung: das Zusammenwirken von Berechtigungen auf Freigabe- und Dateisystemebene

Integrierte und automatisierte GUI-Tests in Java

Installationshinweise und Systemvoraussetzungen

Software-Qualität Ausgewählte Kapitel

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

Anleitung zur Benutzung des jobup.ch Stellensuchendekontos

out-bound die smarte Call-Center Software für Telemarketing Version 1.8 Kontaktsuche / Dublettensuche Anzeige der Bearbeitungszeit

Zeit lässt sich nicht wie Geld für schlechte Zeiten zur Seite legen. Die Zeit vergeht egal, ob genutzt oder ungenutzt.

PC-Kaufmann 2014 Neues Buchungsjahr anlegen

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Ein Testprozess für Modellbasiertes Testen

Schumacher, Chris Druckdatum :11:00

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Es gibt zwei Wege die elektronischen Daten aus Navision zu exportieren.

Softwaretechnik (Allgemeine Informatik) Überblick

PRÜFUNG FÜR ELEKTROINGENIEURE. Softwaretechnik I. Musterlösung SS Ohne Gewähr -

Herzlich willkommen zu unserem Webinar! am 10. Februar 2014

Softwaretechnik 1 Tutorium

Keine Disketteneinreichung ab 1. Februar 2014

Anleitung für das Content Management System

Technische Dokumentation IPCalculator

Erfahrungen mit Hartz IV- Empfängern

Tutorials für ACDSee 12: Hochladen von Fotos auf Ihren Account bei ACDSeeOnline.com

Prinzipien Objektorientierter Programmierung

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Erstellen einer digitalen Signatur für Adobe-Formulare

Das Handbuch zu KAppTemplate. Anne-Marie Mahfouf Übersetzung: Burkhard Lück

Markovketten. Bsp. Page Ranking für Suchmaschinen. Wahlfach Entscheidung unter Risiko und stat. Datenanalyse

Einführung in die Programmierung

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Bitte beachten Sie die Installations-/Systemvoraussetzungen und freigegebenen Betriebssysteme.

IMS - Learning Design

MO1 <logo otra empresa> MO1Sync Installationshandbuch MO1. MO1Sync Installationshandbuch -1-

Schritt-für-Schritt-Anleitung So verschlüsseln Sie Ihr -Konto in der Software 6.0

Testen - Konzepte und Techniken

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

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

Kurze Anleitung zum Guthaben-Aufladen bei.

NAS 159 Time Machine Best Practice

Einführung in die Informatik Tools

Vorkurs C++ Programmierung

Ausfüllhilfe für die ESTA Beantragung zur Einreise in die Vereinigten Staaten

Mobile Banking App Bedienungsanleitung

Automatische Boundary Scan Testgenerierung für scanunfähige Schaltungspartitionen durch modellbasierte Werkzeuge

6 Systematisches Testen von Programmen

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Human-Computer-Interaction und Psychologie Aufgaben- und Kontextanalyse

Du hast hier die Möglichkeit Adressen zu erfassen, Lieferscheine & Rechnungen zu drucken und Deine Artikel zu verwalten.

Reguläre Sprachen Endliche Automaten

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Die Windows 7 Sicherung im Detail

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

Unit Tests und Fehlersuche

Im Online-Katalog der Staats- und Universitätsbibliothek Bremen können Sie

Klassendefinitionen verstehen

Softwaretechnik (WS 11/12)

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9

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

Transkript:

Softwarequalitätssicherung Seminarvortrag Peter Winkelhane 1

Agenda Motivation Taxonomie zur Einordnung von Verfahren im Bereich kontraktbasiertem Testen Drei kontraktbasierte Verfahren Vergleich der drei Verfahren Zusammenfassung 2

Motivation (1/2) Was ist modellbasiertes Testen? Tests Testfall Spezifikation generiert Implementierung Struktur Verhalten wird getestet gegen 3

Motivation (2/2) Was ist kontraktbasiertes Testen? Anforderung Gewährleistung Kontrakt 4

Taxonomie (1/2) 5

Taxonomie (2/2) Was müssen modellbasierte Testansätze leisten? Testfälle aus Modell erzeugen Testorakel liefern für Untersuchung der Ausgabe Testausführung in Testumgebung 6

Model Driven Unit Testing (1/6) Wie sieht der Kontrakt aus? Visuelle Kontrakte Spezifiziert einen Kontrakt durch ein Paar von UML- Kompositionsstrukturdiagrammen für Pre-/ Postcondition Abb. Visueller Kontrakt der Methode cartadd() Quelle: Paper Model Driven Unit Testing Seite 7 7

Model Driven Unit Testing (2/6) Überblick Testansatz Abb. Überblick über den Testansatz Quelle: Paper Model Driven Unit Testing Seite 4 8

Model Driven Unit Testing (3/6) Testfallerzeugung am Bsp. cartadd() product: Book ASIN: String = ASIN12345678 titel: String = Shannara pages: Integer = 642 product: Book ASIN: String = ASIN12345678 titel: String = Shannara pages: Integer = 642 product: Book ASIN: String = ASIN12345678 titel: String = Shannara pages: Integer = 642 self: OnlineShop self: OnlineShop self: OnlineShop c: Cart cartid: String c: Cart cartid: cid001 c: Cart cartid: cid001 9

Model Driven Unit Testing (4/6) Testfallerzeugung product: Book ASIN: String = ASIN12345678 titel: String = Shannara pages: Integer = 642 self: OnlineShop person: Person personid: String = pid541 name: String = Brooks public void testcartadd_0(){ int quantity = 1; String cid = "cid001"; Book product = new Book(); Cart c = new Cart(); Person person = new Person(); product.setasin("asin12345678"); product.settitle("shannara"); product.setpages("642"); c.setcardid("cid001"); person.setpersoid("pid541"); person.setname("brooks"); c: Cart cartid: cid001 } OnlineShop self = new OnlineShop(); self.addcart(c); self.addproduct(product); product.addauthor(person); self.cartadd(product, quantity, cid); checkforumlclassdiagrammfailures(self); 10

Model Driven Unit Testing (5/6) Testfallerzeugung product: Book ASIN: String = ASIN12345678 titel: String = Shannara pages: Integer = 642 S0 self: OnlineShop cartadd S1 S2 c: Cart cartid: cid001 Sl Su Sy 11

Model Driven Unit Testing (6/6) Testausführung 1.Schritt: Ausführen der gefundenen Sequenz 2.Schritt: Aufrufen der zu testenden Methode mit Eingabeparametern Zuerst Überprüfung der Vorbedingung Überprüfung der Nachbedingung, wenn Vorbedingung fehlerfrei ausgeführt 12

Automated Boundary Test Generation (1/4) Wie sieht der Kontrakt aus? Verhalten der Methode aus der Precondition 13

Automated Boundary Test Generation (2/4) Symbolische Darstellung der Systemzustände Formale Definition C s V, M N V K T Bsp für Klasse LimitedPurse Genutzt von Präambel der Testausführung 14

Automated Boundary Test Generation (3/4) Testgenerierung Strukturelle Überdeckung Entscheidungsüberdeckung P1 v P2 Beispiel a >= 0 && balance + a <= max && balance ==\old(balance) + a DC = Decision Coverage, SC = Statement Coverage, CC = ConditionCoverage FPC = Full Predicate Coverage, MCC = Multiple Condition Coverage 15

Automated Boundary Test Generation (4/4) Testausführung Bestandteil von JML-Testing-Tools Benutzer wählt Zu testende Methoden Spezifikationüberdeckungskriterium Datenüberdeckungskriterium Präambel Präambel Soll zu beachtende Verhalten aktivieren Generierung und Instanziierung von Objekten und deren Methoden 16

Korat (1/5) Wie sieht der Kontrakt aus? Spezifiziert in Java-Prädikaten (Precondition) 17

Korat (2/5) Finitisation Input kann aus Objekten mehrerer Klassen bestehen Limitiert Anzahl der Eingabeparameter Spezifizierung der Anzahl von Objekten dieser Klassen Objekte einer Klasse bilden Klassendomäne Spezifizierung von Feldern, auf die Objekte von Klassen referenzieren Entstehung einer Felddomäne 18

Korat (3/5) Testfallerzeugung Finitisation 19

Korat (4/5) Generierung des Zustandsraums Suchalgorithmus durchläuft Zustandsraum Beschränkt Eingabeparameter nur nonisomorphe Eingaben (Kandidaten) Bei nichtdeterministischen Methoden folgende Garantie Generierung der Kandidaten wenn repok() immer true Keine Generierung, wenn repok() immer false Generierung nicht vorhersagbar, wenn kein klares Ergebnis vorliegt 20

Korat (5/5) Testausführung Generierung aller gültigen Eingaben Aufruf der testenden Methode mit jeder Eingabe Nutzung von Klasse, die Eingabe repräsentiert Überprüfung der Ausgabe mit Testorakel Testorakel: Methode erfüllt ihre Invariante Automatische Generierung der Testorakel aus Postcondition durch JML Automatische Testausführung durch Nutzung von JMLUnit 21

Vergleich 22

Zusammenfassung Vorstellung einer Taxonomie für kontraktbasierte Testverfahren Vorstellung von drei Ansätzen Einordnung der Ansätze in die Taxonomie Im Modellierungsbereich ähnlich Unterschiede bei der Testfallerzeugung 23

Vielen Dank für eure Aufmerksamkeit. Fragen und Diskussion 24