Qualitätssicherung und Testen



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

Ziele. Qualitätsmanagement. Wiederholung: Qualitätsmerkmale von Software. Qualitätszyklus. QS-Maßnahmen. Vorlesung Methoden des Software Engineering

Methoden des Software Engineering

Qualitätssicherung. Was ist Qualität?

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

Vorlesung Methoden des Software Engineering. Martin Wirsing. Einheit D.1,

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

Qualitätsmanagement im Projekt

Qualitätsmanagement. Grundlagen

T1 - Fundamentaler Testprozess

Qualitätsmanagement. Andreas Bäuml SWT-Projekt WS 07/08

Testphase. Das Testen

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

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

Software- Qualitätsmanagement

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

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

SEP 114. Design by Contract

Testen Prinzipien und Methoden

Testmanagement in IT-Projekten

Whitebox-Tests: Allgemeines

T2 Fundamentaler Testprozess

Abschnitt 16: Objektorientiertes Design

Einsatz automatischer Testdatengenerierung im modellbasierten Test

Testen im Software- Entwicklungsprozess

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung

Software - Testung ETIS SS05

Projektmanagement. Vorlesung von Thomas Patzelt 10. Vorlesung

Prozess-Modelle für die Softwareentwicklung

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

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

T3 Testen im Software- Lebenszyklus

Softwaretechnik. Fomuso Ekellem WS 2011/12

Validierung und Verifikation!

Die Softwareentwicklungsphasen!

Probeklausur. Lenz Belzner. January 26, Lenz Belzner Probeklausur January 26, / 16

Softwaretechnik (Allgemeine Informatik) Überblick

Kapitel 2: Der Software-Entwicklungsprozess

Softwarequalität: Zusammenfassung und Ausblick. 17. Juli 2013

Systematisches Testen von Software

Software Engineering II (IB) Testen von Software / Modultests

Software Engineering

Was versteht man unter Softwaredokumentation?

Grundlagen des Software Engineering

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

Software Engineering. Dokumentation! Kapitel 21

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Programmiertechnik II

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Testen - Konzepte und Techniken

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

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

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

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

Messmittelfähigkeit. Andreas Masmünster, Quality Control Event, 30. Juni 2011

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

Einführung und Motivation

Der Projektmanager (nach GPM / IPMA) Fragen zur Selbsteinschätzung und für die Prüfungsvorbereitung. Kapitel B Vorgehensmodelle

Software Engineering. Dokumentation. Wintersemester 2005/06. Kapitel 21. Universität Zürich Institut für Informatik

Das chronische Problem der Anforderungsanalyse und die Frage: Fehler vermeiden oder früh entdecken? Oral Avcı ZU KÖLN

6. Programmentwicklung

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert

Wirtschaftsinformatik I Teil 2. Sommersemester Übung

Übungen Programmieren 1 Felix Rohrer. Übungen

Zusammenfassung der Testarten

Checkliste zur qualitativen Nutzenbewertung

Dokumentation zur Versendung der Statistik Daten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Das Wasserfallmodell - Überblick

Software-Entwicklung

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich. Softwaretechnik I

Grundlagen des Software Engineering

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Jens Borchers. Kritische Erfolgsfaktoren beim Abnahmetest in Redevelopment- Projekten Erfahrungen aus einem Großprojekt

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

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

How to do? Projekte - Zeiterfassung

SWE12 Übungen Software-Engineering

Informationssicherheit als Outsourcing Kandidat

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

ISTQB Certified Tester Foundation Level Exam Übungsprüfung

Praktikum Grundlagen der Programmierung. Diverse Grundlagen. Dr. Karsten Tolle

Tipps und Tricks zu Netop Vision und Vision Pro

Angepasste Software Standards für DLR- Eigenentwicklungen - Die DLR Software Basisstandards -

Software-Test: Funktionstest

3.2,,Eichung von Function Points (Berichtigte Angabe)

Übungen zur Softwaretechnik

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Vorgehensmodelle zur Softwareentwicklung

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Internet Explorer Version 6

Fragebogen zur Anforderungsanalyse

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

Systematische Software-Qualität mittels einer durchgängigen Analyse- und Teststrategie

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Software-Engineering SS03. Zustandsautomat

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Updatehinweise für die Version forma 5.5.5

Transkript:

Qualitätssicherung und Testen Dr. Friederike Nickl friederike.nickl@sepis.de Softwareentwicklung, Produkt- und Informations- Service GmbH Berliner Straße 85, 80805 München

Gliederung 1. Qualitätsmanagement und Qualitätssicherung 2. Prinzipien der Software-Qualitätssicherung 3. Verfahren der analytischen Qualitätssicherung 3.1 Statische Prüfverfahren: Inspektionen und Reviews 3.2 Dynamische Prüfverfahren: Testen 3.2.1 Black-Box Test 3.2.2 White-Box-Test 4. Tests im SW-Entwicklungsprozess 4.1 Unit-Test 4.2 Integrationstest 4.3 Systemtest 5. Prinzipien systematischen Testens Qualitätssicherung und Testen 2

Qualitätsmanagement und Qualitätssicherung Wiederholung: Qualitätsmerkmale von Software Korrektheit Zuverlässigkeit Robustheit Benutzerfreundlichkeit Wartbarkeit Effizienz (Performanz) Dokumentation Portabilität Qualitätssicherung und Testen 3

1. Qualitätsmanagement und Qualitätssicherung Qualitätsmanagement Alle Tätigkeiten, um die Qualität von Prozessen und Produkten sicherzustellen. Qualitätsplanung Festlegung von überprüfbaren Qualitätszielen und Planung von Maßnahmen zur Erreichung dieser Ziele (dokumentiert im QS- Plan) Qualitätssicherung Umsetzung der Maßnahmen des QS-Plans Qualitätssicherung und Testen 4

1. Qualitätsmanagement und Qualitätssicherung Die Qualitätsziele können erreicht werden durch konstruktive QS-Maßnahmen: Methoden, Sprachen, Werkzeuge, Richtlinien, Checklisten die dafür sorgen, dass das Produkt bzw. der Erstellungsprozess bestimmte Eigenschaften besitzt analytische QS-Maßnahmen: Prüfung und Messung des existierenden Qualitätsniveaus. Die Qualität wird gemessen, aber nicht verbessert. Qualitätssicherung und Testen 5

1. Qualitätsmanagement und Qualitätssicherung Der Qualitätszyklus Qualitätsziele Konstruktive QS Produkte und Prozesse Analytische QS Qualitätssicherung und Testen 6

2. Prinzipien der SW-Qualitätssicherung Prinzip der Qualitätszielbestimmung Festlegung von Qualitätszielen vor Beginn der Entwicklung das Team weiss, wohin es arbeitet der Kunde weiss, worauf er sich einläßt Die Qualitätsziele werden im QS-Plan festgelegt die Kritikalität des Systems ist ein wichtiger Anhaltspunkt für die Festlegung der Ziele Qualitätssicherung und Testen 7

2. Prinzipien der SW-Qualitätssicherung Prinzip der quantitativen QS Ingenieurmäßige Qualitätssicherung ist undenkbar ohne die Quantifizierung von Soll- und Istwerten (Rombach, 93) Die Qualitätsziele müssen überprüfbar und messbar sein Beispiel: Kein überprüfbares Ziel: Das System muss performant sein Überprüfbar: Die Verarbeitungszeit eines Vertrages durch das System muss unter 8 Sekunden liegen Qualitätssicherung und Testen 8

2. Prinzipien der SW-Qualitätssicherung Prinzip der maximal konstruktiven QS Der Aufwand für die analytische QS soll durch eine möglichst gute konstruktive QS gering gehalten werden besser vorbeugen als heilen Fehler, die nicht gemacht werden können, brauchen auch nicht behoben zu werden Beispiel Beim Einsatz einer Programmiersprache mit statischer Typprüfung können Typfehler während der Laufzeit nicht auftreten Qualitätssicherung und Testen 9

2. Prinzipien der SW-Qualitätssicherung Prinzip der frühen Fehlerkennung und -behebung Fehler in den frühen Projektphasen sind die teuersten Anforderungen des Kunden wurden nicht richtig verstanden Inkonsistenzen im Anforderungsdokument Eine verzögerte Fehlerentdeckung führt zu einem exponentiellen Kostenanstieg. Viel Aufmerksamkeit in die frühen Phasen der SW - Entwicklung investieren Fehler durch konstruktive Maßnahmen verhindern Fehler, die dennoch gemacht werden, durch sorgfältige Prüfungen der Dokumente in den frühen Phasen rechtzeitig erkennen Qualitätssicherung und Testen 10

2. Prinzipien der SW-Qualitätsssicherung Prinzip der unabhängigen QS Ziel der analytischen Qualitätssicherung ist es, Fehler und Mängel aufzudecken Myers: Testing is a destructive process, even a sadistic process Entwickler können nicht gleichzeitig konstruktiv und destruktiv denken die Entwickler eines Teilprodukts sollten nicht die analytische QS für dieses Teilprodukt vornehmen Qualitätssicherung und Testen 11

2. Prinzipien der SW-Qualitätssicherung Prinzip der entwicklungsbegleitenden SW-QS Einbettung der QS in den organisatorischen Ablauf der SW - Entwicklung Ein Teilprodukt steht der nächsten Phase erst dann zur Verfügung, wenn eine bestimmte Qualität erreicht ist: Beispiele V-Modell iterative SW-Entwicklung Qualitätssicherung und Testen 12

2. Prinzipien der SW-Qualitätssicherung V-Modell: Integration der QS ins Wasserfallmodell Anforderungsspezifikation Anwendungsszenarien Abnahmetest Fachliche Spezifikation Testfälle Systemtest Systementwurf Feinentwurf Testfälle Testfälle Integrationstest Unit-Test Entwicklungsschritt Prüfung gegen Vorphase Implementierung Qualitätssicherung und Testen 13

2. Prinzipien der SW-Qualitätssicherung Einbettung der QS in die iterative SW-Entwicklung Korrektur Test Re-Test Freigabe & Auslieferung Iteration i Implementierung Planung Analyse & Design Qualitätssicherung und Testen 14

3 Verfahren der analytischen Qualitätssicherung Statische Prüfung Dokument wird geprüft Inspektionen und Reviews Statische Codeanalyse Formale Verifikation Symbolische Ausführung Dynamische Prüfung Code wird am Rechner ausgeführt Tests Black Box White Box Dynamische Analyse Memory Leak Analyse Wird in der Vorlesung behandelt Performancemessung Qualitätssicherung und Testen 15

3.1 Inspektionen und Reviews Prüfmethode der Inspektion entwickelt von M.E. Fagan bei der IBM (1976) formalisierte Evaluationstechnik zur Überprüfung von Softwareanforderungen Entwurf oder Code Überprüfung erfolgt durch eine Gruppe mit Moderator der Moderator ist kein Vorgesetzter der Autoren! Ziele: Aufdecken von Fehlern und Verletzungen von Standards im Dokument Entscheidung über Freigabe Qualitätssicherung und Testen 16

3.1 Inspektionen und Reviews Ablauf einer Inspektion Auswahl eines Moderators Eingangsprüfung Planung Wer: Inspektionsteam Wogegen: Vorläufer-Dokumente, Checklisten, Erstellungsregeln Wann: Termine individuelle Vorbereitung und Prüfung durch die Inspektoren Arbeitsgeschwindigkeit wird empfohlen (z.b. 1 Seite/Std) Inspektionssitzung mit Ergebnisprotokoll Überarbeitung (Autoren) Nachprüfung und Entscheidung über Freigabe (Moderator) Zusammenstellung statistischer Daten über die Inspektion (Moderator Qualitätssicherung und Testen 17

3.1 Inspektionen und Reviews Inspektionen von Anforderungsspezifikationen Inspektoren sind Auftraggeber, Fachexperten, IT-Betrieb, Entwickler (Stakeholders) die Spezifikation ist zu prüfen gegen die Wünsche und Anforderungen der Auftraggeber, Anwender und Fachbereiche auf Konsistenz der Anforderungen auf Durchführbarkeit in der gegebenen fachlich/organisatorischen und technischen Umgebung Kosten für die Inspektion zahlen sich aus, da Fehler in den Anforderungen teuer zu stehen kommen. Qualitätssicherung und Testen 18

3.1 Inspektionen und Reviews Inspektionen von Code das zu prüfende Dokument ist ein Stück zusammenhängenden Codes Inspektoren sind Realisierer im Team Streuung von Know-How über den Code Prüfung des Codes gegen die Spezifikation und gegen Programmierrichtlinien Es lassen sich Fehler entdecken, die in Tests nur schwer zu provozieren sind Qualitätssicherung und Testen 19

3. 1 Inspektionen und Reviews Inspektionen: Empirische Ergebnisse Es gibt zahlreiche Veröffentlichungen über empirische Ergebnisse von Software-Inspektionen Folgende Faustregel wird darin bestätigt 50 bis 75% aller Entwurfsfehler können durch Inspektionen gefunden werden Code-Inspektionen sind ein sehr kosteneffektiver Weg, um Defekte auszugleichen Beispiel: Studie bei der NASA Aufdecken von Fehlern pro Std. Aufwand durch Code-Reading: 3,3 Fehler durch Test: 1,8 Fehler Qualitätssicherung und Testen 20

3.1 Inspektionen und Reviews Reviews Ein Review ist ein mehr oder weniger formalisierter Prozeß zur Überprüfung von schriftlichen Dokumenten durch Gutachter. Reviews haben im wesentlichen den gleichen Ablauf wie Inspektionen, sind aber weniger formalisiert. Qualitätssicherung und Testen 21

3.2 Dynamische Prüfverfahren: Testen Testen ist der Prozess, ein Programm auf systematische Art und Weise auszuführen, um Fehler zu finden Ein Fehler ist eine Abweichung zwischen Ist-Verhalten (im Testlauf festgestellt) und Soll-Verhalten (in der Spezifikation gefordert) oder ein nicht erfülltes, vom Kunden vorausgesetztes Qualitätskriterium Testen ist destruktiv: Es zeigt nicht die Korrektheit eines Programms, sondern seine Inkorrektheit Qualitätssicherung und Testen 22

3.2 Testen Ein Testdatum ist ein Satz von Eingabe- und Zustandswerten für ein Softwareobjekt mit zugehörigen Ausgabe-Sollwerten Ein Testfall ist eine allgemeine Beschreibung eines Testdatums oder einer Folge von Testdaten für ein zu testendes Softwareobjekt Testfälle sollten auf systematische Weise gewählt werden, um eine gewisse Wahrscheinlichkeit zu bieten, Fehler aufzudecken Nach der Methoden der Testfall-Ermittlung unterscheidet man Black-Box-Testen White-Box-Testen Qualitätssicherung und Testen 23

3.2 Testen Black-Box-Test Testfälle gehen von der Spezifikation aus Interna des Testobjekts sind bei der Ermittlung der Testfälle unbekannt Testüberdeckung wird an Hand des spezifizierten Ein/Ausgabeverhaltens gemessen White-Box-Test Testfälle ausgehend von der Struktur des Testobjekt Testfälle werden vom Entwickler beschrieben Testüberdeckung wird an Hand des Codes gemessen Qualitätssicherung und Testen 24

3.2 Testen Methoden des Black-Box-Test Äquivalenzklassenmethode Methode der Grenzwertanalyse Test von Zustandsautomaten Methoden des White-Box-Test kontrollflussorientierte Verfahren Anweisungsüberdeckungsverfahren Pfadüberdeckungsverfahren datenflussorientierte Verfahren (wird nicht behandelt) Qualitätssicherung und Testen 25

3.2.1 Methoden des Black-Box-Test Äquivalenzklassenmethode (heuristisches Verfahren) Eine Äquivalenzklasse ist eine Menge von Eingabewerten, die auf ein Programm eine gleichartige Wirkung ausüben Es werden Äquivalenzklassen gültiger und ungültiger Werte gebildet, welche den Eingabebereich abdecken die Testfälle entsprechen(kombinationen von) Äquivalenzklassen aus jeder Äquivalenzklasse wird mindestens ein Testdatum gewählt Grenzwertanalyse basierend auf der Äquvalenzklassenmethode aus jeder Äquivalenzklasse werden Testdaten gewählt, welche Grenzwerte der Äquvalenzklassen abdecken Qualitätssicherung und Testen 26

3.2.1 Methoden des Black-Box-Test Äquivalenzklassenmethode: Beispiel 1 Funktion zur Bestimmung der Anzahl der Tage in einem Monat Eingabe: int monat, int jahr monat: Äquivalenzklassen gültiger Werte C m,31 = Monate mit 31 Tagen = {1,3,5,7,8,10,12} C m,30 = Monate mit 30 Tagen = {4,6,9,11} C m,feb = {2} Ungültige Werte: Negative Zahlen, Zahlen > 12 jahr: Äquivalenzklassen gültiger Werte C j,schaltahr = Menge der Schaltjahre C j,nicht-schaltjahr = Menge der Nicht-Schaltjahre Ungültige Werte: Negative Zahlen Qualitätssicherung und Testen 27

3.2.1 Methoden des Black-Box-Test Äquivalenzklassenmethode: Beispiel 1 Ableitung von Testfällen gültiger Eingaben aus den Äquivalenzklassen Testfall ausgewähltes Testdatum Äquivalenzklasse Ausgabe monat jahr Ausgabe: Soll T 1,1 C m,31 und C j,nicht-schaltjahr 31 7 1901 31 T 1,2 C m,31 und C j schaltjahr 31 7 1904 31 T 2,1 C m,30 und C j,nicht-schaltjahr 30 6 1901 30 T 2,2 C m,30 und C j schaltjahr 30 6 1904 30 T 3,1 C m,feb und C j,nicht-schaltjahr 28 2 1901 28 T 3,2 C m,feb und C j, schaltjahr 29 2 1904 29 Qualitätssicherung und Testen 28

3.2.1 Methoden des Black-Box-Test Äquivalenzklassenmethode: Beispiel 2 Spezifikation (noch nicht ganz konsistent) zur Ableitung des technischen Eintrittsalters einer Person in einen Versicherungsvertrag: Eingabe: vertragsbeginn, geburtsdatum Hilfsvariable diff_monat := Monat(vertragsbeginn) Monat (geburtsdatum) diff_jahr := Jahr (vertragsbeginn) Jahr (geburtsdatum) technisches_eintrittsalter Fehler diff_jahr diff_jahr + 1 diff_jahr - 1 Bedingung vertragsbeginn < geburtsdatum vertragsbeginn >= geburtsdatum und -5 <= diff_monat <= 6 vertragsbeginn >= geburtsdatum und diff_monat >= 6 vertragsbeginn >= geburtsdatum und diff_monat < - 5 Qualitätssicherung und Testen 29

3.2.1 Methoden des Black-Box-Test Äquivalenzklassenmethode: Beispiel 2 Test -fall T1 T2 Äquivalenzklasse Ausgabe 1 Vertragsbeginn vor Geburtsdatum 2 diff_monat im Intervall [-5, 6] T3 3 diff_monat >= 6 diff_jahr + 1 Ausgewähltes Testdatum Geburtsdatum Vertragsbeginn Ausgabe : Soll Fehler 01.02.2001 01.01.2001 Fehler diff_jahr 01.06.1975 01.08.2001 26 01.06.1975 01.12.2001 27 T4 4 diff_monat < - 5 diff_jahr - 1 01.10.1975 01.01.2001 25 Klasse 1 ist eine Klasse ungültiger Werte Weitere ungültige Klassen: Tag, Monat, Jahr nicht im gültigen Wertebereic Qualitätssicherung und Testen 30

3.2.1 Methoden des Black-Box-Test Grenzwertmethode: Beispiel 2 Ti-j : Testfall in Äquivalenzklasse i an der Grenze zu Klasse j Testfall Eingabe Ausgabe Geburts -datum Ausgewähltes Testdatum Vertrags -beginn Ausgabe : Soll T1-2 Vertragsbeginn 1 Tag vor Geburtsdatum T2-1 Vertragsbeginn = Geburtsdatum T2-3 diff_monat = 6 T2-4 diff_monat = - 5 Fehler 0 diff_jahr T3-2 diff_monat = 6 diff_jahr + 1 T4-2 diff_monat = - 6 diff_jahr - 1 Nebeneffekt: Es wurde eine Inkonsistenz in der Spezifikation gefunden Qualitätssicherung und Testen 31

3.2.1 Methoden des Black-Box-Test Test von Zustandsautomaten Testobjekte mit interessantem dynamischem Verhalten Voraussetzung: Zustandsautomat bzw. Ablaufdiagramm liegt als Spezifikation des Testobjekts vor, beispielsweise Statecharts Objektlebenszyklus aus OOA-Modellierung Aktivitätendiagramme Ein Testfall beschreibt eine Folge von Ereignissen, die auf das Testobjekt ausgehend von seinem Anfangszustand angewendet werden. Für jeden Schritt dieser Folge wird als Soll der nächste erwartete Zustand und die erwartete Ausgabe festgelegt. Qualitätssicherung und Testen 32

3.2.1 Methoden des Black-Box-Test Test von Zustandsautomaten: Beispiel eines Parkscheinautomaten [Beispiel von H.Balzert] eispiel eines Testfalls nfangszustand: bereit reignisse: arte eingeschoben (Nachfolgezustand Soll: wartet auf Geld) eld eingeworfen [reicht nicht aus] (Nachfolgezustand Soll: wartet auf Geld) eld eingeworfen [reicht aus] (Nachfolgezustand Soll: bereit) bereit wartet auf Geld Karte eingeschoben/ Betrag anzeigen Geld eingeworfen [reicht nicht aus]/ Restbetrag anzeigen Geld eingeworfen[reicht aus]/ Karte ausgeben Qualitätssicherung und Testen 33

3.2.1 Methoden des Black-Box-Test Test von Zustandsautomaten Ziel: Durch Testfälle Überdeckung aller Zustandsübergänge Zum Soll/Ist-Vergleich beim Testlauf erforderlich: Anreicherung des zu testenden Programms um Code zur Verfolgung der durchlaufenen Zustände (bsp. Protokollierung von Zustandsattributen) Qualitätssicherung und Testen 34

3.2.1 Methoden des Black-Box-Test Methoden des Black-Box-Test alleine sind nicht ausreichend, da die Spezifikation ein höheres Abstraktionsniveau besitzt wie die Implementierung nicht alle Elemente einer funktionalen Äquivalenzklasse werden in der Implementierung intern gleich behandelt in der Implementierung kann ein Zustand im Automaten mehreren internen Zuständen entsprechen Qualitätssicherung und Testen 35

3.2.2 Methoden des White-Box-Test Kontrollflussorientierte Testverfahren orientieren sich am Kontrollflußgraphen des Programms 1. Anweisungsüberdeckungsverfahren (C0-Test) Ziel: Alle Anweisungen des Testobjekts werden ausgeführt Es gibt Werkzeuge zur Messung der C0-Überdeckung messen Schwächen des C0-Verfahrens es müssen nicht alle Wege, die zu einer Anweisung führen überprüft werden: einer genügt unzureichend für den Test von Schleifen Qualitätssicherung und Testen 36

3.2.2 Methoden des White-Box-Test Beispiel einer fehlerhaften Routine [Beispiel von J. Coldewey] 0 start C0- Überdeckung bei Testfällen T1: (a < b und a + b < 10) und T2: (a >= b und a + b >= 10 ) x = a; z = 0; 1 2 3 4 if a < b x = b; z = 1; if ( a + b < 10) Fehler im Pfad 0; 1; 2; 4; 6 wird dabei nicht entdeckt y = x + a; 5 6 y = x + b/z; end Qualitätssicherung und Testen 37

3.2.2 Methoden des White-Box-Test 2. Pfadüberdeckungsverfahren Ziel: Alle möglichen Pfade des Kontrollflußgraphen werden durchlaufen nicht realistisch für while-programme boundary-interior Pfadtest: die Anzahl der Wiederholungen in Schleifen wird eingeschränkt Keine Unterstützung dieser Verfahren durch marktgängige Werkzeuge Qualitätssicherung und Testen 38

4. Tests im Software-Entwicklungsprozess Unit-Test oder Modultest: Testen einer einzelnen fertiggestellten Systemkomponente Integrationstest: Test der Schnittstellen und des Zusammenwirkens mehrerer Systemkomponenten Systemtest: Test des vollständig integrierten Systems in der Zielumgebung gegen die Anforderungen nach Korrekturen: Regressionstests Abnahmetest: Systemtest des Auftraggebers in der realen Einsatzumgebung und mit echten Daten Qualitätssicherung und Testen 39

4.1 Unit-Test Testumgebung für den Unit-Test Simulation der Komponenten, die K benutzen Testtreiber Komponente K Aufwand für Erstellung von Treibern und Stubs Stubs - Lokalisierung von Fehlern - Paralleles Testen verschiedener Komponente Simulation der Komponenten, die von K benutzt werden Qualitätssicherung und Testen 40

4.1 Unit-Test Kombination von Black-Box-Test und White-Box-Test Testerin legt Black-Box-Testfälle an Hand der Spezifikation der Komponente fest (destruktives Vorgehen!) Zu den Testfällen werden Testdaten bereitgestellt Entwickler führt Testfälle durch C0-Überdeckung wird gemessen und analysiert Entwickler reichert Testfälle aus dem Funktionstest an um Testfälle für Fehlerbehandlung Testfälle für interne algorithmische Lösungen C0-Überdeckung aller Testfälle wird gemessen Überdeckungstest ist beendet, wenn gewünschte Rate erreicht ist. Bei Fehlern: Korrektur und Regressionstest Qualitätssicherung und Testen 41

4.1 Unit -Test Regressionstest Wiederholung eines schon durchgeführten Tests nach einer Korrektur zur Überprüfung, dass nur die erwünschten Änderungen auftreten Beispiel technisches Eintrittsalter, Ersttest mit Programm Version V1.0 Testfall Geburtsdatum Vertragsbeginn Ausgabe: Soll Test mit V1.0 Ausgabe: Ist T1-2 02.01.2001 01.01.2001 Fehler Fehler ok T2-1 01.01.2001 01.01.2001 0 0 ok T2-3 01.06.1975 01.12.2001 26 27 nok T2-4 01.06.1975 01.01.2001 26 26 ok T3-2 01.05.1975 01.12.2001 27 27 ok T4-2 01.07.1975 01.01.2001 25 25 ok Qualitätssicherung und Testen 42 Erg

4.1 Modultest Beispiel (fortgesetzt): Fehlerkorrektur in Version V1.1 und anschließender Regressionstest von V1.1 bzgl. der Vorgängerversion V1.0 Testfall Test mit V1.0 Ist Erg T1-2 Fehler ok T2-1 0 ok T2-3 27 nok T2-4 26 ok T3-2 27 ok T4-2 25 ok Testfall Test mit V1.1 Ist Erg T1-2 Fehler ok T2-1 0 ok T2-3 26 prüfen T2-4 26 ok T3-2 26 nok T4-2 25 ok Qualitätssicherung und Testen 43

4.2 Integrationstest Voraussetzung: Unit-Test der beteiligten Komponenten ist erfolgt Aufgabe des Integrationstests: Tests der Schnittstellen und des Zusammenwirkens der Komponenten White-Box-Test Integrationsstrategien inkrementell sukzessive Integration nach einer gewählten Reihenfolge nicht-inkrementell big-bang oder geschäftsprozessorientiert Qualitätssicherung und Testen 44

4.2 Integrationstest Inkrementelle Integrationsstrategien bottom-up: ausgehend von den untersten Komponenten in der Nutzungshierarchie sukzessive nach oben im bottom-up Test keine Stubs top-down: ausgehend von den obersten Komponenten in der Nutzungshierarchie sukzessive nach unten im top-down Test keinetesttreiber inside-out (sandwich): von der Mitte nach oben und unten Qualitätssicherung und Testen 45

4.3 Systemtest Voraussetzung Der Integrationstest für das vollständig integrierte System ist abgeschlossen Aufgaben des Systemtests Black-Box-Test des fertigen Systems gegen die festgelegten Qualitätsziele, beinhaltet Funktionstest Leistungstest Lasttest Stresstest Benutzbarkeitstest Sicherheitstest Interoperabilitätstest Qualitätssicherung und Testen 46

5. Prinzipien systematischen Testens Tests rechtzeitig planen, spezifizieren und implementieren Tests planen Teststrategie Testorganisation Testumgebung und Testwerkzeuge Testdokumentation Tests spezifizieren Definition der Testdurchführung Beschreibung der Testfälle Tests implementieren Aufbau der Testumgebung Testtreiber, Stubs, Testdaten Tests durchführen Qualitätssicherung und Testen 47

5. Prinizipien systematischen Testens Tests wiederholbar machen Regressionstests sind erforderlich nach jeder Fehlerkorrektur und jeder Realisierung eines Änderungswunsches in der Entwicklung und in der Wartung Regressionstests dürfen daher mit nicht viel Aufwand verbunden sein Erstrebenswert: Automatisierung von Regressionstests (Test auf Knopfdruck) automatische Durchführung der Testfälle automatischer Vergleich von Testausgaben Qualitätssicherung und Testen 48

5. Prinzipien systematischen Testens Fazit Ein Test muss geplant sein Ein Test muss dokumentiert werden Ein Test muss wiederholbar sein Ein Test muss möglichst vollständig, aber auch bezahlbar sein Qualitätssicherung und Testen 49

Literatur Helmut Balzert: Lehrbuch der Software-Technik, Band 2, Spektrum Akademischer Verlag, 1998. Bernd Bruegge, Allen H. Dutoit: Object-Oriented Software Engineering, Chapter 9, Prentice Hall, 2000. Jens Coldewey: Reviews reviewed, Objekt Spektrum Aug.-Okt. 2000 Michael Fagan: Advances in Software Inspection, IEEE Transactions on Software Engineering, SE-12, July 1986, S. 744-751 Andreas Mieth: Qualitätsmanagement, in: Peter Brössler, Johannes Siedersleben (Herausgeber): Softwaretechnik, Praxiswissen für Software-Ingenieure, Hanser 2000 Ernest Wallmüller: Software-Qualitätssicherung in der Praxis, Hanser 1990 Internet-Seiten mit Testbegriffen: Fachgruppe 2.1.7 der Gesellschaft für Informatik (GI) http://www.fbe.hs-bremen.de/spillner/begriffe/home.html Glossar der Firma Imbus: http://www.imbus.de/glossar.html Qualitätssicherung und Testen 50