March 9, 2016 Codereviews Untitled Sheets HOM Lösungen für methodische Probleme Reviews Dokumentreviews Die richtigen Testdaten finden Grenz- und Extremwerte Codereviews sind ein Art des asynchronen Pair Programmings 1 im kleinen Stil. Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung 1 Zwei Entwickler arbeiten gemeinsam an einem Rechner. HOM/FHTenL Untitled Sheets March 9, 2016 Interne Codereviews 1/25 Untitled Sheets HOM Lösungen für methodische Probleme Reviews Dokumentreviews Ein internes Codereview erfolgt durch einen Kollegen. Das ist uns Entwicklern nichts Unbekanntes. So hat wohl fast jeder ein internes Codereview gemacht bzw. sich geben lassen, wenn wir einen schwierigen Fehler bislang erfolglos suchen. Wir sitzen dann meist gemeinsam vor dem Code und gehen ihn durch. Dieses Prinzip wird einfach ausgedehnt. Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung HOM/FHTenL Untitled Sheets March 9, 2016 Externe Codereviews 2/25 Untitled Sheets HOM Lösungen für methodische Probleme Reviews Dokumentreviews Die richtigen Testdaten finden Ein externes Codereview erfolgt durch einen Mitarbeiter außerhalb des Teams. Dies können andere Entwickler sein, zB von einem zentralen Architekturteam, deren Framework hier im Einsatz ist, oder aber ein Vertreter der QS. Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung HOM/FHTenL Untitled Sheets March 9, 2016 Dokumentreviews Untitled Sheets HOM Wir können neben unserem Code noch andere Arten von Texten bzw. ZB. Dokumenten einem Review unterziehen. Für uns Entwickler können zB Anforderungs- oder Planungsreviews von Nutzen sein. Diese Art von Reviews hat eine etwas andere Zielsetzung. Wir möchten damit im Wesentlichen zwei Dinge erreichen: Fehler wie zB vergessene Aufgaben sollen identifiziert werden. Die Zustimmung jedes Einzelnen soll ausgesprochen werden. HOM/FHTenL 3/25 Untitled Sheets March 9, 2016 Lösungen für methodische Probleme Reviews Dokumentreviews Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung 4/25 1 March 9, 2016 Beispiel Untitled Sheets HOM In der untenstehenden Abbildung sehen Sie eine auf das Wesentliche reduzierte Maske. In das Edit-Feld kann eine Gehaltsgruppe in Form eines Euro-Werts eingetragen werden. Dabei dürfen nur Werte in ganzen 1000er-Schritten bis maximal 10 000 e eingegeben werden. Schreiben Sie sich doch bitte kurz auf, mit welchen Werten Sie diese Maske testen würden, bevor Sie weitermachen. Lösungen für methodische Probleme Reviews Dokumentreviews Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung HOM/FHTenL Untitled Sheets March 9, 2016 Grenzwerte 5/25 Untitled Sheets Als visueller Mensch kann ich mir Grenz- und Extremwerte gut, über die geometrische Analogie von Flächen, im Raum vorstellen, die in der untenstehenden Abbildung dargestellt ist. HOM Lösungen für methodische Probleme Reviews Dokumentreviews Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung HOM/FHTenL Untitled Sheets March 9, 2016 Gehaltsstufen-Maske: Gültige Testwerte und Fehlerfälle 6/25 Untitled Sheets HOM Lösungen für methodische Probleme Reviews Erfolgversprechende, gültige Testwerte und Fehlerfälle zum Testen der Gehaltsstufen-Maske Dokumentreviews Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Gut-Fälle 1 000 10 000 7 000 0 leeres Feld HOM/FHTenL Bemerkungen Äquivalenzklassen Fehlerfälle minimaler Extremwert maximaler Extremwert zufälliger Zwischenwert Konkretisierung der Spezifikation gelöschte Eingabe 999 1 001 9 999 10 001 7777 -1 Untitled Sheets Überdeckungen: Wege durch die -1000kombinatorische 1000.1Explosion 1000,1Pfadüberdeckung eintausendVereinfachte Schleifenüberdeckung Bitmap per PasteTest von Bedingungen: Die . . . Termüberdeckung Anweisungs-, Zweig- und March 9, 2016 Wie ein besseres Design helfen kann. 7/25 Untitled Sheets HOM Lösungen für methodische Probleme Reviews Dokumentreviews Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung HOM/FHTenL Untitled Sheets March 9, 2016 8/25 2 March 9, 2016 2 .. 2 = 4 Untitled Sheets HOM Lösungen für methodische Probleme Reviews Durch einen unserer Tests, der mit bestimmten Testdaten ausgeführt wird, werden Fehler leicht übersehen. So ist ein Test für mathematische Operatoren mit zwei Parametern, der die Testwerte (2,2) benutzt, nicht sehr fehlersensibel, da 2 + 2 = 2 · 2 = 22 = 4. Als Fehlersensibilität wird also die Eignung von Testdaten, zur Aufdeckung von Fehlerwirkungen, bezeichnet. Im obenstehenden Beispiel kann ein falscher Operator leicht übersehen werden. HOM/FHTenL Untitled Sheets Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung March 9, 2016 9/25 Skalier Beispiel Untitled Sheets HOM p u b l i c i n t s k a l i e r e n ( i n t wert ){ w e r t = w e r t − 1 ; // F e h l e r : w e r t = w e r t + 1 s e i wert = wert / 30000; return wert ; } richtig Listing 1 : Beispiel für geringe Fehlersensibilität anhand einer Skalier-Methode. Von den 65 536 möglichen Zahlenwerten für wert produzieren nur vier den Fehler, der sich durch die falsche Subtraktion ergibt: -30 000 -29 999 29 999 30 000 HOM/FHTenL Dokumentreviews Die richtigen Testdaten finden ergibt ergibt ergibt ergibt Reviews Dokumentreviews Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung -1 anstatt 0, -1 anstatt 0, 0 anstatt 1 und 0 anstatt 1 Untitled Sheets Lösungen für methodische ! Probleme Test von Bedingungen: Die Termüberdeckung March 9, 2016 Beispiel Regelwerk 10/25 Untitled Sheets HOM Lösungen für methodische Probleme Reviews Dokumentreviews Die richtigen Testdaten finden Kontoregelwerk zum Abbuchen Uusätzliche Regeln zum Abheben von Geldautomaten Eigenschaften des Geldautomaten Stückelung der Geldscheine EC-Kartenprüfungen Regeln für Ablaufausnahmen, wie zB Zeitüberschreitungen Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung HOM/FHTenL Untitled Sheets March 9, 2016 Regeln der Subsysteme 11/25 Untitled Sheets HOM Lösungen für methodische Probleme Reviews Dokumentreviews Kathegorie Aspekt Erläuterung Konto Kontostand Dispolimit aktueller Stand in Euro und Cent überziehungsbetrag in Euro und Cent Abheberegeln Tageslimit Das Limit für Abhebungen pro Tag (meist 500 Überdeckungen: e) Wege durch die Geldautomat Stückelung EC-Kartenprüfungen Zeitüberschreitungen Explosion 5, 10, 20, 50, 100, 200 und 500 e Anweisungs-, Zweig- und Lesbarkeit, Kundenidentifikation, PIN-Prüfung Pfadüberdeckung Vereinfachte EC-Karten- und Geldentnahme Schleifenüberdeckung Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen kombinatorische Test von Bedingungen: Die Termüberdeckung HOM/FHTenL Untitled Sheets March 9, 2016 12/25 3 March 9, 2016 Äquivalenzklassen bestimmen 1 2 3 4 Untitled Sheets Suche die Anforderungen nach spezifizierten Eingabegrößen und ihren Gültigkeitsbereichen ab. Die Grenzen dieser Gültigkeitsbereiche trennen die Äquivalenzklassen für gültige und ungültige Eingaben. Prüfe die vorläufigen Äquivalenzklassen, ob alle Werte gleich behandelt werden. Teile sie ggf. in mehrere neue Äquivalenzklassen auf. Finde jeweils Sätze von Eingabedaten für die einzelnen funktionalen Anforderungen, die in einer definierten Beziehung zueinander stehen. Diese Datensätze sind für gültige und ungültige Kombinationen zu erstellen. Prüfe, ob die vorläufigen Kombinationen jeweils gleich behandelt werden. Teile die Äquivalenzklassen ggf. weiter auf. HOM/FHTenL Untitled Sheets Bei gültigen Eingabewerten kann ein Testfall meist mehrere unabhängige Testfälle zusammenfassen, um ökonomischer durchgeführt werden zu können. Methodisch ist das kein Problem, da eine eindeutige Fehlerzuordnung trotzdem möglich sein sollte. Für ungültige Eingabewerte wird nur eine Fehlersituation getestet. Es gibt also für jeder dieser Äquivalenzklassen mindestens einen eigenen Testfall. Bei den Testfällen für Äquivalenzklassen der Ausgabedaten wird nach einer Möglichkeit gesucht, den Bereich vollständig über die Extremwerte abzudecken. Leider ist die zugehörige Ermittlung der entsprechenden Eingabedaten häufig sehr mühsam und manchmal gar nicht möglich. Untitled Sheets Reviews Dokumentreviews Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung March 9, 2016 Testfälle für Äquivalenzklassen bestimmen HOM/FHTenL HOM Lösungen für methodische Probleme 13/25 Untitled Sheets HOM Lösungen für methodische Probleme Reviews Dokumentreviews Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung March 9, 2016 Äquivalenzklassen für unser Geldautomatenbeispiel 14/25 Untitled Sheets HOM Lösungen für methodische Probleme Reviews Die Reihenfolge der Prüfungen gibt eine Verkettung der Äquivalenzklassen für unser Geldautomatenbeispiel. Dokumentreviews Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung HOM/FHTenL Untitled Sheets March 9, 2016 Hilfe, es lauft aus dem Ruder! 15/25 Untitled Sheets HOM Lösungen für methodische Probleme Reviews Die Überdeckungskriterien führen uns schnell in kombinatorisch nicht mehr abdeckbare Bereiche; es erfolgt eine kombinatorische Explosion. Diese schreckt viele Entwickler ab. Warum soll ich etwas testen, das ich sowieso nicht vollständig testen kann. Es gehen mir doch immer Fehler durch die Lappen. die vereinfachte Pfadüberdeckung für Schleifen und die Termüberdeckung für Bedingungen. HOM/FHTenL Untitled Sheets Dokumentreviews Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung March 9, 2016 16/25 4 March 9, 2016 Wesentliche Arten von Coverage Untitled Sheets HOM Lösungen für methodische Probleme Reviews Dokumentreviews Anweisungsüberdeckung: Anteil der Anweisungen im Code, die mit den Tests durchlaufen werden. Zweigüberdeckung: Anteil der Zweige im Code, die mit den Tests durchlaufen werden. Pfadüberdeckung: Anteil der Pfade im Code, die mit den Tests durchlaufen werden. Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung HOM/FHTenL Untitled Sheets March 9, 2016 Java-Beispiel für Überdeckungen 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 17/25 Untitled Sheets HOM public int berechneProvision ( Lösungen für i n t grundBetrag , methodische int anzahlVertraege , int einzelProvi , Probleme i n t zuschlagsGrenze , i n t z u s c h l a g ){ Reviews Dokumentreviews int provision = 0; i f (0 < a n z a h l V e r t r a e g e ){ Die richtigen Testdaten finden p r o v i s i o n = grundBetrag ; Grenz- und Extremwerte f o r ( i n t i = 0 ; i < a n z a h l V e r t r a e g e ; i ++){ Fehlersensibilität p r o v i s i o n += e i n z e l P r o v i ; // P r o v i s i o n s s u m m e a dFachliche d i e Regeln ren i f ( z u s c h l a g s G r e n z e <= i ) { Äquivalenzklassen p r o v i s i o n += z u s c h l a g ; // f u e r Gute g i b t e s Überdeckungen: mehr } Wege durch die kombinatorische } Explosion i f ( v e r b o s e ){ // g l o b a l e K o n f i g u r o a t i o n Anweisungs-, Zweig- und logfileOut ( provision ); // g g f . K o n t r o l l a u s g a b e nPfadüberdeckung Vereinfachte } Schleifenüberdeckung Test von Bedingungen: Die } Termüberdeckung return provision ; } HOM/FHTenL Untitled Sheets March 9, 2016 Elemente eines Ablaufgraphs mit UML-Notation 18/25 Untitled Sheets HOM Lösungen für methodische Probleme Reviews Dokumentreviews Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung HOM/FHTenL Untitled Sheets March 9, 2016 Beispiel eines Ablaufgraphens mit UML-Notation 19/25 Untitled Sheets HOM Lösungen für methodische Probleme Reviews Dokumentreviews Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung Zeilennummern im Buch sind zu korrigieren HOM/FHTenL Untitled Sheets March 9, 2016 20/25 5 March 9, 2016 Vereinfachte Schleifenüberdeckung Untitled Sheets HOM Lösungen für methodische Probleme Reviews Dokumentreviews Die richtigen Testdaten finden 1 Kein Eintritt in die Schleife 2 Genau ein Durchlauf durch die Schleife 3 Genau zwei Durchläufe durch die Schleife 4 Eine typische Anzahl von Durchläufen 5 Die maximale Anzahl von Durchläufen Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung HOM/FHTenL Untitled Sheets March 9, 2016 Test von Bedingungen: Die Termüberdeckung 21/25 Untitled Sheets HOM Lösungen für methodische Probleme Reviews Dokumentreviews Die richtigen Testdaten finden i f ( ( n r > 1 && ! h a s F a i l e d ( ) ) | | newCustomer ) { besteht also aus drei elementaren Termen, nämlich nr > 1, hasFailed() und newCustomer. Die Operatoren &&, || und ! entsprechen der UND, ODER und NICHT-Beziehung. Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung HOM/FHTenL Untitled Sheets March 9, 2016 Beispiel zur Termüberdeckung 22/25 Untitled Sheets HOM Lösungen für methodische Probleme Die zu erfüllenden Bedingungen der elementaren Terme für eine vollständige Termüberdeckung der Beispielbedingung. Nr > 1 !hasFailed() newCustomer Resultat wahr falsch wahr falsch wahr wahr falsch falsch falsch falsch falsch wahr wahr falsch falsch wahr Reviews Dokumentreviews Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen 1. 2. 3. 4. HOM/FHTenL Untitled Sheets Die Termüberdeckung wird auch als Bedingungsüberdeckung bezeichnet. Dabei werden drei Ausprägungen unterschieden: Einfache Bedingungsüberdeckung: Jeder Term der Bedingung muss in mindestens einem Test einmal wahr bzw. falsch gewesen sein. Mehrfachbedingungsüberdeckung: Jede mögliche Kombination der Wahrheitswerte der einzelnen Terme müssen in den Tests berücksichtigt werden. Minimale Mehrfachbedingungsüberdeckung: Jeder Term muss in mindestens einem Testfall für den Wert der Gesamtbedingung verantwortlich sein. Untitled Sheets Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung March 9, 2016 Die drei Ausprägungen der Termüberdeckung HOM/FHTenL Überdeckungen: Wege durch die kombinatorische Explosion March 9, 2016 23/25 Untitled Sheets HOM Lösungen für methodische Probleme Reviews Dokumentreviews Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung 24/25 6 March 9, 2016 Die Natur der Fehler Untitled Sheets HOM Lösungen für methodische Probleme Reviews Dokumentreviews Fehler mögen es gemütlich. . . Die richtigen Testdaten finden Grenz- und Extremwerte Fehlersensibilität Fachliche Regeln Äquivalenzklassen Überdeckungen: Wege durch die kombinatorische Explosion Anweisungs-, Zweig- und Pfadüberdeckung Vereinfachte Schleifenüberdeckung Test von Bedingungen: Die Termüberdeckung HOM/FHTenL Untitled Sheets March 9, 2016 25/25 7
© Copyright 2024 ExpyDoc