Tests - unendliche Weiten

235 views

Published on

Unser Kollege Kay Grebenstein hat sich in einer Session auf der wjax 2016 in München dem Thema "Tests - unendliche Weiten" (Wie ermittle ich die richtigen Testfälle) gewidmet.

Published in: Software

Tests - unendliche Weiten

  1. 1. WIE ERMITTLE ICH DIE RICHTIGEN TESTFÄLLE? TESTS - UNENDLICHE WEITEN Quelle: NASA
  2. 2. TESTS – UNENDLICHE WEITEN Wie ermittle ich die richtigen Testfälle? VorstellungVorstellung EinführungEinführung White-BoxWhite-Box Black-BoxBlack-Box AbschlussAbschluss
  3. 3. 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
  4. 4. KERNKOMPETENZEN Wie ermittle ich die richtigen Testfälle? Java .NET SAP QM/QA Entwicklung & Beratung
  5. 5. SPRECHER Wie ermittle ich die richtigen Testfälle? Kay Grebenstein Test Manager / Test Coach QAla kay.grebenstein @saxsys.de www.so-geht- software.de
  6. 6. TESTS – UNENDLICHE WEITEN Wie ermittle ich die richtigen Testfälle? VorstellungVorstellung EinführungEinführung White-BoxWhite-Box Black-BoxBlack-Box AbschlussAbschluss
  7. 7. 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?
  8. 8. 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?
  9. 9. DER ENTWICKLUNGSPROZESS Wie ermittle ich die richtigen Testfälle? Sprint- Backlog Sprint- Backlog VCSVCS BUILDBUILD Produkt- Inkrement Produkt- Inkrement CodenCoden CodeCode
  10. 10. TEST DRIVEN DEVELEOPMENT Wie ermittle ich die richtigen Testfälle? Sprint- Backlog Sprint- Backlog VCSVCS BUILDBUILD Produkt- Inkrement Produkt- Inkrement TDDTDDTestTest ImplementierungImplementierung RefaktorisierungRefaktorisierung
  11. 11. TEST DRIVEN DEVELEOPMENT Wie ermittle ich die richtigen Testfälle? Sprint- Backlog Sprint- Backlog VCSVCS BUILDBUILD Produkt- Inkrement Produkt- Inkrement TDDTDDTestTest ImplementierungImplementierung RefaktorisierungRefaktorisierung QAQA
  12. 12. TESTPYRAMIDE Wie ermittle ich die richtigen Testfälle? System Service Unit
  13. 13. 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
  14. 14. Sprint- Backlog Sprint- 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- Inkrement Produkt- 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 manuellautomatisiert Testfall- Repository Testfall- Repository Testfall- Repository Testfall- Repository
  15. 15. 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?
  16. 16. 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
  17. 17. DAS GROSSE TESTQUIZ Wie ermittle ich die richtigen Testfälle? Welche Software-Testverfahren gibt es?
  18. 18. DAS GROSSE TESTQUIZ Wie ermittle ich die richtigen Testfälle? Statisch Dynamisch Welche Software-Testverfahren gibt es?
  19. 19. 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- werkzeuge sehr einfach. Kein Bezug zur Spezifikation Vorhandene Programm- lücken werden nicht getestet Vorteile Nachteile
  20. 20. 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
  21. 21. TESTS – UNENDLICHE WEITEN Wie ermittle ich die richtigen Testfälle? VorstellungVorstellung EinführungEinführung White-BoxWhite-Box Black-BoxBlack-Box AbschlussAbschluss
  22. 22. 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
  23. 23. WHITE-BOX-TESTS Wie ermittle ich die richtigen Testfälle?
  24. 24. 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
  25. 25. 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
  26. 26. 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
  27. 27. 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
  28. 28. 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 = ∞
  29. 29. TESTS – UNENDLICHE WEITEN Wie ermittle ich die richtigen Testfälle? VorstellungVorstellung EinführungEinführung White-BoxWhite-Box Black-BoxBlack-Box AbschlussAbschluss
  30. 30. 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 Effizienzprinzip fordert möglichst wenige Testfälle. • Dabei sollen möglichst auch mehrere Anforderungen durch einen gemeinsamen Testfall abgedeckt werden.
  31. 31. ÄQUIVALENZKLASSENBILDUNG Einführung in die Qualitätssicherung Äquivalenz- klasse Negativ Äquivalenz- klasse 4 Äquivalenz- klasse 3 Äquivalenz- klasse 2 Äquivalenz- klasse 1 Menge der Eingabe- werte Eingabewerte in Gruppen mit gleichen Eigenschaften eingeteilt
  32. 32. Ä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
  33. 33. Ä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
  34. 34. 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
  35. 35. 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
  36. 36. DAS GROSSE TESTQUIZ Einführung in die Qualitätssicherung Was ist eine Testfall- explosion?
  37. 37. 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?
  38. 38. 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?
  39. 39. 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
  40. 40. URSACHE-WIRKUNG-ANALYSE Einführung in die Qualitätssicherung Es soll die Software für einen Parkautomaten in einer Tiefgarage erstellt werden. • Die Kunden können ihre Parkgebühr am Parkautomaten bezahlen. • Geschäfte können guten Kunden (VIPs) ihre Parkkarten auf bezahlt setzen. • Überschreitet der Kunde die Dauer der Ausfahrzeit (30 Minuten) nach dem Bezahlen, dann setzt das Ausfahrt-Terminal den Zustand der Karte wieder aus „Parken“ und der Kunde muss nachlösen. Karte bezahlt Karte frei- geschalten 30min über- schritten Ausfahrt frei v
  41. 41. 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- schritten 0 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 frei v
  42. 42. 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- schritten 0 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 frei v
  43. 43. URSACHE-WIRKUNG-ANALYSE Einführung in die Qualitätssicherung Karte bezahlt Karte frei- geschalten 30min über- schritten Ausfahrt frei v 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- schritten 0 1 0 0 0 1 1 1 Ausfahrt frei 0 0 1 1 1 0 0 0
  44. 44. ZUSTANDSBASIERTER TEST Einführung in die Qualitätssicherung Zustand A Zustand C Zustand B Zustand D Ein System kann in Abhängigkeit von aktuellen Gegebenheiten oder von seiner Vorgeschichte (seinem Zustand) unterschiedliche Reaktionen zeigen, die in einem Zustandsdiagramm dargestellt werden können.
  45. 45. 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 von aktuellen Gegebenheiten oder von seiner Vorgeschichte (seinem Zustand) unterschiedliche Reaktionen zeigen, die in einem Zustandsdiagramm dargestellt werden kö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?
  46. 46. 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 von aktuellen Gegebenheiten oder von seiner Vorgeschichte (seinem Zustand) unterschiedliche Reaktionen zeigen, die in einem Zustandsdiagramm dargestellt werden kö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?
  47. 47. 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 von aktuellen Gegebenheiten oder von seiner Vorgeschichte (seinem Zustand) unterschiedliche Reaktionen zeigen, die in einem Zustandsdiagramm dargestellt werden kö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?
  48. 48. 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 von aktuellen Gegebenheiten oder von seiner Vorgeschichte (seinem Zustand) unterschiedliche Reaktionen zeigen, die in einem Zustandsdiagramm dargestellt werden kö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?
  49. 49. 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 von aktuellen Gegebenheiten oder von seiner Vorgeschichte (seinem Zustand) unterschiedliche Reaktionen zeigen, die in einem Zustandsdiagramm dargestellt werden kö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
  50. 50. 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 von aktuellen Gegebenheiten oder von seiner Vorgeschichte (seinem Zustand) unterschiedliche Reaktionen zeigen, die in einem Zustandsdiagramm dargestellt werden kö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
  51. 51. 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 von aktuellen Gegebenheiten oder von seiner Vorgeschichte (seinem Zustand) unterschiedliche Reaktionen zeigen, die in einem Zustandsdiagramm dargestellt werden kö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?
  52. 52. DAS GROSSE TESTQUIZ Einführung in die Qualitätssicherung Es soll die Software für einen Parkautomaten in einer Tiefgarage erstellt werden. • Das Parksystem arbeitet mit Chipkarten, die am Eingang / Ausgang über eine Chipterminal aus- bzw. abgegeben werden. • Die Karten besitzen bei der Ausgabe den Status „Parken“ und nach der Ausfahrt den Status „Ende“. • Die Kunden können ihre Parkgebühr am Parkautomaten bezahlen. Die Karte hat nach korrekter Abrechnung den Status „Bezahlt“. Parken Ende Bezahlt Überschritten
  53. 53. DAS GROSSE TESTQUIZ Einführung in die Qualitätssicherung Es soll die Software für einen Parkautomaten in einer Tiefgarage erstellt werden. • Das Parksystem arbeitet mit Chipkarten, die am Eingang / Ausgang über eine Chipterminal aus- bzw. abgegeben werden. • Die Karten besitzen bei der Ausgabe den Status „Parken“ und nach der Ausfahrt den Status „Ende“. • Die Kunden können ihre Parkgebühr am Parkautomaten bezahlen. Die Karte hat nach korrekter Abrechnung den Status „Bezahlt“. Parken Ende Bezahlt Überschritten TF1 TF2 TF3
  54. 54. DAS GROSSE TESTQUIZ Einführung in die Qualitätssicherung Es soll die Software für einen Parkautomaten in einer Tiefgarage erstellt werden. • Das Parksystem arbeitet mit Chipkarten, die am Eingang / Ausgang über eine Chipterminal aus- bzw. abgegeben werden. • Die Karten besitzen bei der Ausgabe den Status „Parken“ und nach der Ausfahrt den Status „Ende“. • Die Kunden können ihre Parkgebühr am Parkautomaten bezahlen. Die Karte hat nach korrekter Abrechnung den Status „Bezahlt“. Bezahlt TF1 TF2 TF3 TF4 TF5 TF6 TF7 TF8 Parken Ende Überschritten
  55. 55. DAS GROSSE TESTQUIZ Einführung in die Qualitätssicherung Es soll die Software für einen Parkautomaten in einer Tiefgarage erstellt werden. • Das Parksystem arbeitet mit Chipkarten, die am Eingang / Ausgang über eine Chipterminal aus- bzw. abgegeben werden. • Die Karten besitzen bei der Ausgabe den Status „Parken“ und nach der Ausfahrt den Status „Ende“. • Die Kunden können ihre Parkgebühr am Parkautomaten bezahlen. Die Karte hat nach korrekter Abrechnung den Status „Bezahlt“. Bezahlt Überschritten TF1 TF2 TF3 TF6 TF4 TF5 Parken Ende
  56. 56. TESTS – UNENDLICHE WEITEN Wie ermittle ich die richtigen Testfälle? VorstellungVorstellung EinführungEinführung White-BoxWhite-Box Black-BoxBlack-Box AbschlussAbschluss

×