56
WIE ERMITTLE ICH DIE RICHTIGEN TESTFÄLLE? TESTS - UNENDLICHE WEITEN Quelle: NASA

Tests - unendliche Weiten

Embed Size (px)

Citation preview

WIE ERMITTLE ICH DIE RICHTIGEN TESTFÄLLE?TESTS - UNENDLICHE WEITEN

Quelle: NASA

TESTS – UNENDLICHE WEITENWie ermittle ich die richtigen Testfälle?

VorstellungVorstellung

EinführungEinführung

White-BoxWhite-Box

Black-BoxBlack-Box

AbschlussAbschluss

DATEN & FAKTEN

Wie ermittle ich die richtigen Testfälle?

• Inhabergeführtes IT-Beratungs-und Technologieunternehmen

•1990 Gründung des Unternehmens

•Gesamtleistung 2015: 26 Mio. Euro

•230 feste Mitarbeiter

KERNKOMPETENZEN

Wie ermittle ich die richtigen Testfälle?

Java .NET SAP QM/QA

Entwicklung & Beratung

SPRECHER

Wie ermittle ich die richtigen Testfälle?

Kay Grebenstein

Test Manager / Test Coach

QAla [email protected]

www.so-geht-software.de

TESTS – UNENDLICHE WEITENWie ermittle ich die richtigen Testfälle?

VorstellungVorstellung

EinführungEinführung

White-BoxWhite-Box

Black-BoxBlack-Box

AbschlussAbschluss

DAS GROSSE TESTQUIZ

Wie ermittle ich die richtigen Testfälle?

Aufgrund eines französischen Gesetzes aus dem Jahre 1791

Weil zu wenig getestet wurde

Wegen der mangelnde Erfahrung, Überlastung und schlechte

Zusammenarbeit der Bodenmannschaften

Warum stürzte der Mars Climate

Orbiter ab?

DAS GROSSE TESTQUIZ

Wie ermittle ich die richtigen Testfälle?

Aufgrund eines französischen Gesetzes aus dem Jahre 1791

Weil zu wenig getestet wurde

Wegen der mangelnde Erfahrung, Überlastung und schlechte

Zusammenarbeit der Bodenmannschaften

Warum stürzte der Mars Climate

Orbiter ab?

DER ENTWICKLUNGSPROZESS

Wie ermittle ich die richtigen Testfälle?

Sprint-BacklogSprint-Backlog VCSVCS BUILDBUILD

Produkt-InkrementProdukt-

Inkrement

CodenCoden

CodeCode

TEST DRIVEN DEVELEOPMENT

Wie ermittle ich die richtigen Testfälle?

Sprint-BacklogSprint-Backlog VCSVCS BUILDBUILD

Produkt-InkrementProdukt-

Inkrement

TDDTDDTestTest

ImplementierungImplementierung

RefaktorisierungRefaktorisierung

TEST DRIVEN DEVELEOPMENT

Wie ermittle ich die richtigen Testfälle?

Sprint-BacklogSprint-Backlog VCSVCS BUILDBUILD

Produkt-InkrementProdukt-

Inkrement

TDDTDDTestTest

ImplementierungImplementierung

RefaktorisierungRefaktorisierung

QAQA

TESTPYRAMIDE

Wie ermittle ich die richtigen Testfälle?

System

Service

Unit

BAUEN DER TESTPYRAMIDE

Wie ermittle ich die richtigen Testfälle?

Daten-bank

Daten-bank

Daten-bank

UNIT SERVICE SYSTEM

Testen einer unabhängigen und

isolierten Einheit wie einer Funktion

oder einer Klasse

Testen eines Moduls mit Einbindung seiner

Schnittstellen

Tests eines kompletten

Geschäftsprozesses

Sprint-BacklogSprint-Backlog

• VCS • Gemeinsame

Code Basis• Code Review• Unit-Tests

• VCS • Gemeinsame

Code Basis• Code Review• Unit-Tests

• Statische CodeAnalyse• CI / CD • Staging:

• Statische CodeAnalyse• CI / CD • Staging:

Produkt-InkrementProdukt-

Inkrement

Code-Repository

Build

Durchführung der System- und Service-

Tests(Manuelle und Autom.)

Durchführung der System- und Service-

Tests(Manuelle und Autom.)

Entwicklung der System- und Servicetest System

Service

Unit / TDDTestTest

ImplementierungImplementierung

RefaktorisierungRefaktorisierung

ma

nu

ell

au

tom

atisiert

Testfall-Repository

Testfall-Repository

Testfall-Repository

Testfall-Repository

TESTABDECKUNG – EIN PROBLEM

Wie ermittle ich die richtigen Testfälle?

Test-abdeckung

Wie viele Testfälle muss ich

erstellen?

Wann kann ich

mit Testen aufhören?

TESTABDECKUNG – KEIN PROBLEM

Wie ermittle ich die richtigen Testfälle?

Test-abdeckung

Wie viele Testfälle muss ich

erstellen?

Wann kann ich

mit Testen aufhören?

LösungLösung

DAS GROSSE TESTQUIZ

Wie ermittle ich die richtigen Testfälle?

Welche Software-Testverfahren gibt es?

DAS GROSSE TESTQUIZ

Wie ermittle ich die richtigen Testfälle?

Statisch Dynamisch

Welche Software-Testverfahren gibt es?

Wie ermittle ich die richtigen Testfälle?

White – Box – Tests

Im White-Box-Test wird mit Kenntnis über die innere Funktionsweise des zu testenden Systems getestet bzw. auf der Basis der Programmstruktur und Programmlogik.

Testen bevor ein fertiges

Produkt vorliegt

Geringerer Aufwand

Einbindung in Entwicklungs-

werkzeugesehr einfach.

Kein Bezug zur

Spezifikation

Vorhandene Programm-

lücken werden nicht getestet

Vorteile Nachteile

Wie ermittle ich die richtigen Testfälle?

Black – Box – Tests

Im Black-Box-Test wird ohne Kenntnisse über die innere Funktions-weise des zu testenden Systems getestet. Für die Ermittlung der Testfälle werden nur die Anforderungen herangezogen.

Verifikation des Gesamt-

systems

Unabhängige und gezielte Verifikation

Tester benötigen spezielle

Befähigungen

Hoher Aufwand für Organisation

Keine versteckte Funktionen

getestet

Vorteile Nachteile

TESTS – UNENDLICHE WEITENWie ermittle ich die richtigen Testfälle?

VorstellungVorstellung

EinführungEinführung

White-BoxWhite-Box

Black-BoxBlack-Box

AbschlussAbschluss

Anweisungs-überdeckung

Zweig-überdeckung

Einfacher Bedingungs-überdeckung

Mehrfach-Bedingungs-überdeckung

Pfad-Überdeckung

Modifikationen und

Kombinationen

Minimal-forderung

Effizienz-prinzip

Äquivalenz-klassen-methode

Grenzwert-analyse

Entscheidungs-tabellen

Zustands-basiert

Anwendungs-fallbasiert

Modifikationen und

Kombinationen

White Box Test Black Box Test

WHITE-BOX-TESTS

Wie ermittle ich die richtigen Testfälle?

ANWEISUNGSÜBERDECKUNG

Wie ermittle ich die richtigen Testfälle?

Bei der Anweisungsüber-deckung werden alle Knoten des Kontrollflussgraphen von mindestens einem Testfall abgedeckt, das heißt, jede Anweisung im Quelltext wird mindestens einmal ausgeführt.

Summe TF = 4

ZWEIGÜBERDECKUNG

Wie ermittle ich die richtigen Testfälle?

Bei der Zweigüberdeckung werden die Testfälle so spezifiziert, dass alle Zweige (Kanten) des Kontrollfluss-graphen mindestens einmal durchlaufen werden.Die Zyklomatische Komplexität gibt an, wie viele Testfälle höchstens nötig sind, um eine Zweigüberdeckung zu erreichen.

Summe TF = 4

ZWEIGÜBERDECKUNG

Wie ermittle ich die richtigen Testfälle?

Die zyklomatische Zahl McCabes, abgekürzt mit v(G), zeigt die Komplexität des Kontrollflusses im Code. v(G) ist die Anzahl unabhängiger Kontrollpfade durch ein Softwaresystem.

Summe TF = 4

�(�)=�−�+ 2� n => Anzahl der Knoten

e => Anzahl der Kanten

p => Anzahl unabhängiger Teilgraphen

�(�)=12−10+ 2*1

BEDINGUNGSÜBERDECKUNG

Wie ermittle ich die richtigen Testfälle?

Bei der einfachen Bedingungs-überdeckung wird gefordert, die Testfälle so zu bestimmen, dass die Auswertung jeder atomaren Teilentscheidung einmal den Wert wahr und einmal den Wert falsch ergibt.Die Mehrfach-Überdeckung verlangt, dass neben den atomaren Teilentscheidungen und der Gesamtentscheidung auch alle zusammengesetzten Teilentscheidungen gegen wahr und falsch geprüft werden.

Summe TF = 6

PFADÜBERDECKUNG

Wie ermittle ich die richtigen Testfälle?

Bei der Pfadüberdeckung werden sämtliche möglichen Pfade in einem Testfall durchlaufen. Bei einer vollständigen Pfadüberdeckung müssen alle möglichen Pfade getestet werden

� Problem: Bei Programmen mit Schleifen kann es extrem viele Pfade geben.

Summe TF = ∞

TESTS – UNENDLICHE WEITENWie ermittle ich die richtigen Testfälle?

VorstellungVorstellung

EinführungEinführung

White-BoxWhite-Box

Black-BoxBlack-Box

AbschlussAbschluss

TESTFALLERMITTLUNGSVERFAHREN

Wie ermittle ich die richtigen Testfälle?

Minimalforderung

• Bei der Minimal-forderung muss jede spezifizierte Anforderung durch mindestens einen Testfall abgeprüft werden.

Effizienzprinzip

• Das Effizienzprinzipfordert möglichst wenige Testfälle.

• Dabei sollen möglichst auch mehrere Anforderungen durch einen gemeinsamen Testfall abgedeckt werden.

ÄQUIVALENZKLASSENBILDUNG

Einführung in die Qualitätssicherung

Äquivalenz-klasse

Negativ

Äquivalenz-klasse 4

Äquivalenz-klasse 3

Äquivalenz-klasse 2

Äquivalenz-klasse 1Menge der

Eingabe-werte

Eingabewerte in Gruppen mit gleichen Eigenschaften

eingeteilt

ÄQUIVALENZKLASSENBILDUNG

Einführung in die Qualitätssicherung

Als Beispiel ein Rechner für die Einkommensteuer nach EStG § 32a:

https://www.bmf-steuerrechner.de/ekst/ekst.jsp

Äquivalenz-klasse 1

•1000 Euro

Äquivalenz-klasse 2

•10.000 Euro

Äquivalenz-klasse 3

•20.000 Euro

Äquivalenz-klasse 4

•100.000 Euro

Äquivalenz-klasse 5

•1.000.000 Euro

Summe TF = 5

ÄQUIVALENZKLASSENBILDUNG

Einführung in die Qualitätssicherung

Als Beispiel ein Rechner für die Einkommensteuer nach EStG § 32a:

https://www.bmf-steuerrechner.de/ekst/ekst.jsp

Äquivalenzklasse 1

•1000 Euro

Äquivalenzklasse 2

•10.000 Euro

Äquivalenzklasse 3

•20.000 Euro

Äquivalenzklasse 4

•100.000 Euro

Äquivalenzklasse 5

•1.000.000 Euro

Äquivalenzklasse N1

•-1.000 Euro

Äquivalenzklasse N2

•Buchstaben

Summe TF = 7

GRENZWERTANALYSE

Einführung in die Qualitätssicherung

NegativklasseÄquivalenz-

klasse 1Äquivalenz-

klasse 2

• Probleme treten nicht in den Äquivalenzklassen auf, sondern an deren Grenzen.

• Der größte und der kleinste Wert einer Klasse sind deren Grenzwerte. Ein Grenzwert für eine gültige Klasse ist ein gültiger Grenzwert, die Grenze einer ungültigen Klasse ist ein ungültiger Grenzwert.

-1 0 100 101

GRENZWERTANALYSE

Einführung in die Qualitätssicherung

Negativ-klassen

TF1: ‚a‘ TF2: -1

Äquivalenz-klasse 1

TF3: 0 €TF4:

8652 €

Äquivalenz-klasse 2

TF5: 8553 €

TF6: 13669 €

Äquivalenz-klasse 3

TF7: 13670 €

TF8: 53665 €

Äquivalenz-klasse 4

TF9: 53666 €

TF10: 254446 €

Äquivalenz-klasse 5

TF11: 254447 € Summe

TF = 11https://www.bmf-steuerrechner.de/ekst/ekst.jsp

DAS GROSSE TESTQUIZ

Einführung in die Qualitätssicherung

Was ist eine Testfall-

explosion?

DAS GROSSE TESTQUIZ

Einführung in die Qualitätssicherung

Der Tester startet eine Feuerwerk, weil er wieder einen Fehler gefunden hat.

Der Entwickler explodiert, weil zu viele Testfälle fehlgeschlagen sind.

Die Anzahl der Testfälle explodiert, wenn alle möglichen Kombinationen

getestet werden sollen.

Was ist eine Testfall-

explosion?

DAS GROSSE TESTQUIZ

Einführung in die Qualitätssicherung

Der Tester explodiert, weil ein Testfall fehlgeschlagen ist.

Der Entwickler explodiert, weil zu viele Testfälle fehlgeschlagen sind.

Die Anzahl der Testfälle explodiert, wenn alle möglichen Kombinationen

getestet werden sollen.

Was ist eine Testfall-

explosion?

URSACHE-WIRKUNG-ANALYSE

Einführung in die Qualitätssicherung

Basierend auf der Ursache-Wirkungs-Graph-Analyse sind Entscheidungstabellen eine gute Möglichkeit, um Systemanforderungen zu erfassen, die logische Bedingungen enthalten und um den internen Systementwurf zu dokumentieren.

Sie können zur Erfassung komplexer, von einem System umzusetzenden Regeln in Geschäftsprozessen verwendet werden.

a b a b~a

db

c

v

a

c

b

˄

1 2 3 4 5 6 7

a 0 0 1 1 1 0 1

c 0 1 0 1 0 1 1

c 1 0 0 0 1 1 1

d 1 1 1 1 1 0 0

Ursache-Wirkungs-Graph Entscheidungstabellen

Identität Nein

Oder

Und

URSACHE-WIRKUNG-ANALYSE

Einführung in die Qualitätssicherung

Es soll die Software für einenParkautomaten in einer Tiefgarageerstellt werden.

• Die Kunden können ihreParkgebühr am Parkautomatenbezahlen.

• Geschäfte können guten Kunden(VIPs) ihre Parkkarten auf bezahltsetzen.

• Überschreitet der Kunde die Dauerder Ausfahrzeit (30 Minuten) nachdem Bezahlen, dann setzt dasAusfahrt-Terminal den Zustand derKarte wieder aus „Parken“ und derKunde muss nachlösen.

Karte bezahlt

Karte frei-geschalten

30min über-schritten

Ausfahrt freiv

URSACHE-WIRKUNG-ANALYSE

Einführung in die Qualitätssicherung

1 2 3 4 5 6 7 8

Karte bezahlt

0 0 0 1 1 1 0 1

Karte frei-geschalten

0 0 1 0 1 0 1 1

30 min über-

schritten0 1 0 0 0 1 1 1

Ausfahrt frei

0 0 1 1 1 0 0 0

Karte bezahlt

Karte frei-geschalten

30min über-schritten

Ausfahrt freiv

1 2 3 4 5 6 7 8

Karte bezahlt

0 0 0 1 1 1 0 1

Karte frei-geschalten

0 0 1 0 1 0 1 1

30 min über-

schritten0 1 0 0 0 1 1 1

Ausfahrt frei

0 0 1 1 1 0 0 0

URSACHE-WIRKUNG-ANALYSE

Einführung in die Qualitätssicherung

Karte bezahlt

Karte frei-geschalten

30min über-schritten

Ausfahrt freiv

URSACHE-WIRKUNG-ANALYSE

Einführung in die Qualitätssicherung

Karte bezahlt

Karte frei-geschalten

30min über-schritten

Ausfahrt freiv

TF1 TF2 TF3 TF4 TF5 TF6

1 2 3 4 5 6 7 8

Karte bezahlt

0 0 0 1 1 1 0 1

Karte frei-geschalten

0 0 1 0 1 0 1 1

30 min über-

schritten0 1 0 0 0 1 1 1

Ausfahrt frei

0 0 1 1 1 0 0 0

ZUSTANDSBASIERTER TEST

Einführung in die Qualitätssicherung

Zustand A

Zustand C

Zustand B Zustand D

Ein System kann in Abhängigkeit vonaktuellen Gegebenheiten oder von seinerVorgeschichte (seinem Zustand)unterschiedliche Reaktionen zeigen, die ineinem Zustandsdiagramm dargestellt werdenkönnen.

ZUSTANDSBASIERTER TEST

Einführung in die Qualitätssicherung

Zustand A

Zustand C

Zustand B Zustand D

TF1 TF2

TF3 TF4

TF5

TF6

Summe TF = 6

Ein System kann in Abhängigkeit vonaktuellen Gegebenheiten oder von seinerVorgeschichte (seinem Zustand)unterschiedliche Reaktionen zeigen, die ineinem Zustandsdiagramm dargestellt werdenkönnen.

Testfallermittlung:

• Werden alle Zustandsübergänge durchlaufen?

• Werden alle Ereignisse, die Zustands-übergänge hervorrufen sollen, getestet?

• Werden alle Ereignisse, die keine Zustandsübergänge hervorrufen dürfen, getestet?

ZUSTANDSBASIERTER TEST

Einführung in die Qualitätssicherung

Zustand A

Zustand C

Zustand B Zustand D

TF1 TF2

TF3 TF4

TF5

TF6

Summe TF = 6

Ein System kann in Abhängigkeit vonaktuellen Gegebenheiten oder von seinerVorgeschichte (seinem Zustand)unterschiedliche Reaktionen zeigen, die ineinem Zustandsdiagramm dargestellt werdenkönnen.

Testfallermittlung:

• Werden alle Zustandsübergänge durchlaufen?

• Werden alle Ereignisse, die Zustands-übergänge hervorrufen sollen, getestet?

• Werden alle Ereignisse, die keine Zustandsübergänge hervorrufen dürfen, getestet?

ZUSTANDSBASIERTER TEST

Einführung in die Qualitätssicherung

Zustand A

Zustand C

Zustand B Zustand D

TF1

TF2

TF3

Summe TF = 3

Ein System kann in Abhängigkeit vonaktuellen Gegebenheiten oder von seinerVorgeschichte (seinem Zustand)unterschiedliche Reaktionen zeigen, die ineinem Zustandsdiagramm dargestellt werdenkönnen.

Testfallermittlung:

• Werden alle Zustandsübergänge durchlaufen?

• Werden alle Ereignisse, die Zustands-übergänge hervorrufen sollen, getestet?

• Werden alle Ereignisse, die keine Zustandsübergänge hervorrufen dürfen, getestet?

ZUSTANDSBASIERTER TEST

Einführung in die Qualitätssicherung

Zustand A

Zustand C

Zustand B Zustand D

TF1

TF2

TF3

Summe TF = 3

Ein System kann in Abhängigkeit vonaktuellen Gegebenheiten oder von seinerVorgeschichte (seinem Zustand)unterschiedliche Reaktionen zeigen, die ineinem Zustandsdiagramm dargestellt werdenkönnen.

Testfallermittlung:

• Werden alle Zustandsübergänge durchlaufen?

• Werden alle Ereignisse, die Zustands-übergänge hervorrufen sollen, getestet?

• Werden alle Ereignisse, die keine Zustandsübergänge hervorrufen dürfen, getestet?

ZUSTANDSBASIERTER TEST

Einführung in die Qualitätssicherung

Zustand B

TF1

TF2

TF3

Summe TF = 9

TF4

TF5

TF8

Ein System kann in Abhängigkeit vonaktuellen Gegebenheiten oder von seinerVorgeschichte (seinem Zustand)unterschiedliche Reaktionen zeigen, die ineinem Zustandsdiagramm dargestellt werdenkönnen.

Testfallermittlung:

• Werden alle Zustandsübergänge durchlaufen?

• Werden alle Ereignisse, die Zustands-übergänge hervorrufen sollen, getestet?

• Werden alle Ereignisse, die keine Zustandsübergänge hervorrufen dürfen, getestet?

TF6

TF7

TF9

Zustand A

Zustand C

Zustand D

ZUSTANDSBASIERTER TEST

Einführung in die Qualitätssicherung

Zustand B

TF1

TF2

TF3

Summe TF = 9

TF4

TF5

TF8

Ein System kann in Abhängigkeit vonaktuellen Gegebenheiten oder von seinerVorgeschichte (seinem Zustand)unterschiedliche Reaktionen zeigen, die ineinem Zustandsdiagramm dargestellt werdenkönnen.

Testfallermittlung:

• Werden alle Zustandsübergänge durchlaufen?

• Werden alle Ereignisse, die Zustands-übergänge hervorrufen sollen, getestet?

• Werden alle Ereignisse, die keine Zustandsübergänge hervorrufen dürfen, getestet?

TF6

TF7

TF9

Zustand A

Zustand C

Zustand D

ZUSTANDSBASIERTER TEST

Einführung in die Qualitätssicherung

Zustand A

Zustand C

Zustand B Zustand D

TF1

TF2

TF3

Summe TF = 6

TF4

TF5

TF6

Ein System kann in Abhängigkeit vonaktuellen Gegebenheiten oder von seinerVorgeschichte (seinem Zustand)unterschiedliche Reaktionen zeigen, die ineinem Zustandsdiagramm dargestellt werdenkönnen.

Testfallermittlung:

• Werden alle Zustandsübergänge durchlaufen?

• Werden alle Ereignisse, die Zustands-übergänge hervorrufen sollen, getestet?

• Werden alle Ereignisse, die keine Zustandsübergänge hervorrufen dürfen, getestet?

DAS GROSSE TESTQUIZ

Einführung in die Qualitätssicherung

Es soll die Software für einenParkautomaten in einer Tiefgarageerstellt werden.

• Das Parksystem arbeitet mitChipkarten, die am Eingang /Ausgang über eine Chipterminalaus- bzw. abgegeben werden.

• Die Karten besitzen bei derAusgabe den Status „Parken“ undnach der Ausfahrt den Status„Ende“.

• Die Kunden können ihreParkgebühr am Parkautomatenbezahlen. Die Karte hat nachkorrekter Abrechnung den Status„Bezahlt“.

Parken

Ende

Bezahlt Überschritten

DAS GROSSE TESTQUIZ

Einführung in die Qualitätssicherung

Es soll die Software für einenParkautomaten in einer Tiefgarageerstellt werden.

• Das Parksystem arbeitet mitChipkarten, die am Eingang /Ausgang über eine Chipterminalaus- bzw. abgegeben werden.

• Die Karten besitzen bei derAusgabe den Status „Parken“ undnach der Ausfahrt den Status„Ende“.

• Die Kunden können ihreParkgebühr am Parkautomatenbezahlen. Die Karte hat nachkorrekter Abrechnung den Status„Bezahlt“.

Parken

Ende

Bezahlt Überschritten

TF1

TF2

TF3

DAS GROSSE TESTQUIZ

Einführung in die Qualitätssicherung

Es soll die Software für einenParkautomaten in einer Tiefgarageerstellt werden.

• Das Parksystem arbeitet mitChipkarten, die am Eingang /Ausgang über eine Chipterminalaus- bzw. abgegeben werden.

• Die Karten besitzen bei derAusgabe den Status „Parken“ undnach der Ausfahrt den Status„Ende“.

• Die Kunden können ihreParkgebühr am Parkautomatenbezahlen. Die Karte hat nachkorrekter Abrechnung den Status„Bezahlt“.

Bezahlt

TF1

TF2

TF3

TF4

TF5

TF6

TF7

TF8

Parken

Ende

Überschritten

DAS GROSSE TESTQUIZ

Einführung in die Qualitätssicherung

Es soll die Software für einenParkautomaten in einer Tiefgarageerstellt werden.

• Das Parksystem arbeitet mitChipkarten, die am Eingang /Ausgang über eine Chipterminalaus- bzw. abgegeben werden.

• Die Karten besitzen bei derAusgabe den Status „Parken“ undnach der Ausfahrt den Status„Ende“.

• Die Kunden können ihreParkgebühr am Parkautomatenbezahlen. Die Karte hat nachkorrekter Abrechnung den Status„Bezahlt“.

Bezahlt Überschritten

TF1

TF2

TF3

TF6

TF4

TF5

Parken

Ende

TESTS – UNENDLICHE WEITENWie ermittle ich die richtigen Testfälle?

VorstellungVorstellung

EinführungEinführung

White-BoxWhite-Box

Black-BoxBlack-Box

AbschlussAbschluss