Techniken im Software-Test

Ähnliche Dokumente
Testen. SEPR Referat: Testen - Oliver Herbst

Hauptseminar Automotive Software Engineering Testen, Rapid Prototyping und x in the loop

Einsatz automatischer Testdatengenerierung im modellbasierten Test

Softwaretechnik 1 Tutorium

Whitebox-Tests: Allgemeines

Testen - Konzepte und Techniken

6 Systematisches Testen von Programmen

,$ -. "+0 *+*+ ! / -#$%$. #$%'' $ () 1 2$ #$%$! 1 2$3 )!

Softwaretechnikpraktikum SS Qualitätsmanagement I. 1. Überblick. Qualität. Qualitätsmerkmal

Qualität von Software - Prof. Schlingloff, Lackner - SS2013 DYNAMISCHER TEST. Whitebox Testen mit JUnit

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

Programmiertechnik II

Programmieren I. Übersicht. Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

6 Produktqualität Systeme: Integrationstest [sehr stark gekürzt]

Testen Prinzipien und Methoden

Testphase. Das Testen

Basiswissen Softwaretest

3: Systematisches Testen

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

Seminar Simulation und Bildanalyse mit Java SS2004. Themenschwerpunkt: Tests in Informatik und Statistik

Probeklausur Softwareengineering SS 15

Software Engineering in der Praxis

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

Vortrag Diplomarbeit. Testentwurf in komplexen softwareintensiven Systemen mit der Klassifikationsbaummethode. von Rebecca Tiede

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung

Dialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen

ISTQB Certified Tester Foundation Level Exam Übungsprüfung

Basiswissen Softwaretest

T3 Testen im Software- Lebenszyklus

Software-Test: Funktionstest

Softwarequalitätssicherung

Systematisches Testen von Software

Systematische Testfallableitung und Tests durchführen

Abschnitt 16: Objektorientiertes Design

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

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

Man schaut in den Kasten hinein Die innere Struktur (das "Wie") des Programms wird zur Überprüfung hinzugezogen

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

Software - Testung ETIS SS05

Anforderungen an die HIS

Inhalt. 1 Einführungsveranstaltung. 2 Qualität kompakt

Testen von graphischen Benutzeroberflächen. 24. Juni 2015

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004

SE Besprechung. Übung 6 Softwaretests

Theoretische Informatik I

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

Erwin Grüner

Thema: Testen von objektorientierter Software

Qualitätssicherung (Testen) im Application Life Cycle

1 Einleitung...1. Teil I Handwerkszeug Definitionen zur Qualität...13

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie

Technische Universität Berlin SS

Kurs 1613 Einführung in die imperative Programmierung

Testmanagement in IT-Projekten

FOM Hochschule für Ökonomie und Management Essen. IT-Management. Seminararbeit im Modul Software-Engineering, IT-Projekt- und Qualitätsmanagement

Testen von Software. Dr. Stefan Hanenberg Universität Duisburg-Essen. Universität Osnabrück, Motivation und grundlegende Eigenschaften

Modellbasierte Softwareentwicklung

Standard Inhaltsverzeichnis für Testvorschrift

Software-Engineering

Klausur Software-Engineering WS 2006 / 2007 Iwanowski

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

SOMA Reverse Engineering

Organisation. Was kommt zum Test? Buch Informatik Grundlagen bis inkl. Kapitel 7.4 Wissensfragen und Rechenbeispiele

Spock und Geb: Übersichtlich und nachvollziehbar Testen für alle!

Software-Engineering

Software Engineering. Produktqualität - Dynamische Testverfahren

Some Software Engineering Principles

Endlicher Automat (EA)

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6

Softwaretechnik 3. Klausurnachbesprechung , Phillip Ghadir

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Modulare Programmierung

Praktikum Software Engineering: Verfahren und Werkzeuge

BSI Technische Richtlinie

Klausur zu den Teilgebieten Software-Management und Software-Qualitätsmanagement

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Leitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x

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

Was versteht man unter Softwaredokumentation?

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

Projektmanagement. Vorlesung von Thomas Patzelt 10. Vorlesung

Qualitätssicherung von Software (SWQS)

Qualitätssicherung von Software

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

Qualitätssicherung von Software

Konzept Themenkarte zur Verbesserung von Reviews

Qualitätsmanagement im Projekt

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

8.1 Qualität und Qualitätssicherung 8.2 Softwaretest 8.3 Black-Box Testen 8.4 Zusammenfassung. H. Lichter, RWTH Aachen - 1 -

Vorlesung Embedded Software-Engineering im Bereich Automotive

Messanlagen für die kontinuierliche und dynamische Messung von Mengen von Flüssigkeiten außer Wasser

16 Architekturentwurf Einführung und Überblick

Semantik von Formeln und Sequenzen

Dokumentation zum Spielserver der Software Challenge

SEP 114. Design by Contract

T2 Fundamentaler Testprozess

3.2,,Eichung von Function Points (Berichtigte Angabe)

Übungsklausur vom 7. Dez. 2007

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

Software Engineering Testen von Software (1)

Transkript:

Techniken im Software-Test München, 4. Juli 2000 Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Technische Universität München

Inhalt Ziele des Software Tests Überblick Teststufen Unit-Test Integrationstest Systemtest Testverfahren manuelle Testverfahren Whitebox Blackbox Testfallermittlung Spezifikationsbasierte Testfallermittlung Schluß 4. Juli 2000 H. Lötzbeyer 2

Ziele Was ist Testen? G.J.Myers, 79: Testen ist der Prozeß, ein Programm mit der Absicht auszuführen, Fehler zu finden. Hetzel 83: Messung der Softwarequalität DieÜberprüfung, daß ein System die spezifizierten Anforderungen erfüllt. Ziele: Fehler finden auch: Fehler vermeiden (B. Beizer) nicht: Korrektheitsnachweis 4. Juli 2000 H. Lötzbeyer 3

Überblick Entstehung und Entdeckung von Fehlern (aus Balzert, IEEE Software, Jan. 1985, S.83) Eingebrachte Fehler Gefundene Fehler 60% 50% 40% 30% 20% 10% 0% Anforderungs- und Entwurfsphase Technische Entwurfsphase Konstruktions- und Systemphase Abnahmetest und Betriebsphase 4. Juli 2000 H. Lötzbeyer 4

Fehlerbeseitigung Relative Kosten zur Fehlerbeseitigung (H. Balzert, 1998; Boehm, 1976) 1000 100 40 150 10 3 5 10 15 1 Definition Entwurf Implementierung Entwicklungstest Abnahmetest Betrieb 4. Juli 2000 H. Lötzbeyer 5

Fehlerverteilung Fehlerverteilung (Dick Bender, 1993) Code 7% Other 10% Design 27% Requirements 56% 4. Juli 2000 H. Lötzbeyer 6

Fehlerverteilung Fehlerverteilung: (Beispiel von Hewlett-Packard, Grady 1997) Data handling 6% Other code 11% Computation 18% Documentation 19% Requirements 5% Hardware 4% Process/Interprocess 5% Logic 32% 4. Juli 2000 H. Lötzbeyer 7

Testdurchführung Testfälle Testfallermittlung Regressionstest Testtreiber Testobjekt Regressionstest Stubs Ablaufprotokolle Neues Testobjekt 4. Juli 2000 H. Lötzbeyer 8

Teststufen Unit-, Komponenten-, Modul- oder Klassentest Test einer einzelnen Einheit Integrationstest Überprüfung des fehlerfreien Zusammenwirkens von Systemkomponenten Systemtest abschließender Test des Gesamtsystems Funktion, Leistung (Massen-, Zeit-, Streßtest), Benutzbarkeit, Sicherheit, Interoperabilität Abnahmetest Test unter Mitwirkung des Auftraggebers Alpha-Test, Beta-Test 4. Juli 2000 H. Lötzbeyer 9

Integrationstest Integrationsstrategien: nicht-inkrementell: bigbang geschäftsprozeßorientiert inkrementell: top-down-integration bottom-up-integration funktionsorientiert nach Verfügbarkeit 4. Juli 2000 H. Lötzbeyer 10

Testverfahren Manuelle Prüfverfahren: Programminspektion, Review, Walkthrough effektiv: 30-70% (Myers, Balzert) Zeit- und Personalaufwendig Whitebox-Test (struktureller Test) Ausgangspunkt: Struktur des Prüflings Messung der Testüberdeckung mittels Metrik Blackbox-Test (funktionaler Test) Ausgangspunkt: Spezifikation des Prüflings Sicherstellung der gewünschten Funktionalität 4. Juli 2000 H. Lötzbeyer 11

Whitebox-Test Instrumentierung des Codes (Zähler einfügen) Tests durchführen Messung der verarbeiteten Anweisungen ausgewerteten Bedingungen Schleifendurchläufe Auswertung der erreichten Überdeckung anhand von Metriken kontrollflußorientiert datenflußorientiert 4. Juli 2000 H. Lötzbeyer 12

Kontrollflußorientiert 1 Function count(int x) { int z; if x < 0 then z = -x; else z = x; while z > 0 { z--; } } Programm YES X < 0 z = -x z = x 2 z > 0 NO 3 YES Flußdiagramm NO Z-- 4. Juli 2000 H. Lötzbeyer 13

Metriken: Anweisungsüberdeckung Kontrollflußorientiert jede Anweisung mind. 1 mal durchlaufen hier: 3 Anweisungen können mit 2 Testdurchläufen überdeckt werden Zweigüberdeckung jeder Zweig (jede Bedingung: true, false) hier: 2 Bedingungen mit jeweils 2 Möglichkeiten können mit 2 Testdurchläufen überdeckt werden Pfadüberdeckung jeder Pfad muß durchlaufen werden hier: unendlich viele Pfade Bedingungsüberdeckung, MC/DC 4. Juli 2000 H. Lötzbeyer 14 FT F T,F

Kontrollflußorientiert Es gilt: Anweisungsüberdeckung Zweigüberdeckung Modified Condition/Decision Coverage Bedingungsüberdeckung Pfadüberdeckung Probleme: Infeasible Paths (nicht erreichbare Pfade) z.b. if A do x; [...] if A doy; aus Redundanzen (z.b. Range-Checking-Code vom Compiler) bei Exceptions geeignete Testdaten zu finden 4. Juli 2000 H. Lötzbeyer 15

Datenflußorientiert Betrachtet werden Definition, lesende Zugriffe, schreibende Zugriffe von Variablen Defs/Uses-Verfahren: def: Wertzuweisung, auch Definitionen, Initialisierung c-use: berechnende Benutzung (computational use) p-use: prädikative Benutzung (predicate use) 4. Juli 2000 H. Lötzbeyer 16

Datenflußgraph Kontrollflußgraph mit Datenflußdarstellung: def x Function count(int x) { int z; if x < 0 then z = -x; else z = x; while z > 0 { z--; } } c-use x def z p-use z p-use x p-use z def z p-use x c-use z def z c-use x def z 4. Juli 2000 H. Lötzbeyer 17

Datenflußmetriken Metriken: (Statistiken aus Girgis, Woodware `86) all defs: (24%, keine Kontrollflußfehler) jede Definition muß in einer Berechnung oder Bedingung benutzt werden all p-uses: (34%, identifiziert sicher Kontrollflußfehler) Jede Kombination aus Variablendefinition und deren prädikative Nutzung muß getestet werden Beinhaltet Zweigüberdeckung all c-uses: (48%, identifiziert Berechnungsfehler) Jede Kombination aus Variablendefinition und deren berechnende Benutzung muß getestet werden all uses: (insgesamt ca. 70% der Programmierfehler) c-uses und p-uses zusammen 4. Juli 2000 H. Lötzbeyer 18

Testfallermittlung Whitebox-Test: Abstraktion Modell Überdeckung: Anweisungsüberdeckung, MC/DC Code Automatische Verfahren: Model-Checker, KI Konkretisierung Test Testfälle und Testdaten 4. Juli 2000 H. Lötzbeyer 19

Blackbox-Test Blackbox-Test: Ermittlung der Testfälle ausschließlich aus der Spezifikation Ziel ist eine möglichst umfassende und redundanzarme Prüfung der Funktionalität Techniken: Äquivalenzklassenbildung Grenzwertanalyse Testsequenzermittlung aus Use-Cases Beispielabläufen Zustandsdiagrammen 4. Juli 2000 H. Lötzbeyer 20

Äquivalenzklassen Äquivalenzklassenbildung: Definitions- und Wertebereich in Äquivalenzklassen zerlegen gültige Äquivalenzklassen => Funkionstests ungültige Äquivalenzklassen => Stabilitätstests Bsp: Monat : [1..12] zerlegen in eine gültige Äquivalenzklasse : 1 <= Monat <= 12 2 ungültige Äquivalenzklassen: Monat < 1, Monat > 12 Testfallauswahl: Auswahl eines Repräsentanten aus jeder Äquivalenzklasse max. 1 ungültige Äquivalenzklasse Grenzwertanalyse: Werte an Rändern der Äquivalenzklassen spezielle Werte: z.b. 0 bei int, Sonderzeichen usw. 4. Juli 2000 H. Lötzbeyer 21

CTE Classifaction Tree Editor: Klassifikationsbaum Kombination von Äquivalenzklassen Kombinationstabelle 4. Juli 2000 H. Lötzbeyer 22

Zustandsautomaten Ableitung von Testfällen aus Zustandsautomaten: über Graphen: Transitionsüberdeckung (Transitionstour) Zustandsüberdeckung Pfadüberdeckung durch Simulation manuell mit Aufzeichnung symbolische Ausführung logikbasiert Transformation in Aussagenlogik/Prädikatenlogik, deklarative Beschreibung der Testfälle 4. Juli 2000 H. Lötzbeyer 23

Testfallermittlung Blackbox-Test: Spezifikation Testziel Testobjekt Automatische Verfahren: Model-Checker, KI Test Testfälle und Testdaten 4. Juli 2000 H. Lötzbeyer 24

Mealy-Automaten Methoden: Transitionstour, W-Methode, UIO-Methode Vorteile: vollautomatisch auch Korrektheitsbeweis Nachteile: 1/0 0/0 0 1 1/1 0/1 nur endliche Systeme Korrektheitsbeweise erfordern starke Annahmen über Testobjekt 4. Juli 2000 H. Lötzbeyer 25

Transitionstour Findet den kürzesten Pfad durch den Automaten, der alle Transitionen überdeckt Vorteile: vollautomatisch Nachteile: Automat muß bestimmte Eigenschaften haben: stark zusammenhängend errechnete Transitionssequenz muß wirklich durchführbar sein 4. Juli 2000 H. Lötzbeyer 26

Model-Checking Methode: Verwendung von Gegenbeispielen vom Model-Checker Ermittlung der Systemläufe durch die Lösung aussagenlogischer Formeln Vorteile: vollautomatisch Einschränkungen nur zustandsendliche Systeme sonst Abstraktion notwendig 4. Juli 2000 H. Lötzbeyer 27

Aussagenlogik Testziel AF-Spezifikation SATO (Aussagenlogik) Testfall (EET) Übersetzung Rückübersetzung 4. Juli 2000 H. Lötzbeyer 28

CLP Methode: Codierung in regelbasierte Systeme mit Constraint-Mechanismen (CLP = Constraint Logic Programming) symbolische Simulation Vorteile: vollautomatisch auch unendliche Systeme Einschränkungen Datentypen / Arithmetik Schwierigkeiten mit nichtlinearen Prädikaten 4. Juli 2000 H. Lötzbeyer 29

Constraintlogik Testziel AF-Spezifikation Prolog/CLP (Regeln, Constraintlogik) Testfall (EET) Übersetzung Rückübersetzung 4. Juli 2000 H. Lötzbeyer 30

Schluß Weitgehend gelöst: Metriken für Whitebox-Tests Problematisch: Testziele definieren Aktuell: automatische Testfallermittlung aus Use-Cases, graphischen Beschreibungstechniken Generierung von Testtreibern, Stubs 4. Juli 2000 H. Lötzbeyer 31

ENDE Next Events: Steinheil Alex B. Schmidt: Anwendungen der Relationenalgebra Dienstag 18.7.2000, 17.00 Uhr, Raum1546