Seminararbeit Blackbox-Testverfahren Alexander Maas, Aachen,
| Folie 2 1.Einleitung 2.Funktionsorientierte Testverfahren 3.Anwendung funktionsorientierter Testverfahren 4.Zustandsbasierte Testverfahren 5.Anwendung zustandsbasierter Testverfahren 6.Fazit Inhaltsverzeichnis
| Folie 3 1. Einleitung Ausbildender Betrieb: SOPTIM AG IT-Lösungen im Bereich der Energiewirtschaft Individuallösungen & Produkte & Beratung für alle Bereiche u.a. das Produkt SE:Sales unterstützt den Energievertrieb, wie z.B. das Kalkulieren von Angeboten ca. 300 Mitarbeiter Standorte: Aachen, Essen, München, Deisswil (Schweiz)
| Folie 4 1. Einleitung Ziel: Guide für Tester Blackboxtests beinhalten funktionsorientierte und zustandsbasierte Testverfahren Mögliche zusätzliche Eingaben aus der objektorientierten Programmierung Objektattribute dynamische Listen Abgrenzung zu Whiteboxtests Fokus auf Ein-/Ausgabewerte Testen gegen die Spezifikation Struktur des Codes und Interna sind unbekannt
| Folie 5 2. Funktionsorientierte Testverfahren
| Folie 6 2. Funktionsorientierte Testverfahren Testaufbau nach dem EVA-Prinzip Hohe Testabdeckung durch unterschiedlichste Eingaben Spezifikation definiert Gültigkeit der Werte Ungültige Werte werden separat getestet Prüfung der Ausgabe durch Soll-Ist-Vergleich Abhängigkeiten von Werten müssen berücksichtigt werden 2.1 Allgemeines
| Folie 7 2. Funktionsorientierte Testverfahren Eine Äquivalenzklasse ist eine Gruppierung von Werten Klassen mit ungültigen Werten heißen Fehlerklassen Alle Äquivalenzklassen zusammen enthalten alle möglichen Werte für einen Parameter 2.2 Äquivalenzklassenbildung
| Folie 8 2. Funktionsorientierte Testverfahren Numerische Werte werden durch Intervalle zusammengefasst Bei Wertevorräten bzw. Aufzählungen ist jeder gültige Wert eine Äquivalenzklasse Zeichenketten als reguläre Ausdrücke zusammenfassen Randwerte betrachten Grenzen von Äquivalenzklassen Grenzwerte bilden eigene Äquivalenzklassen Stresswerte beinhalten „worst case“ Werte Zum Testen Wert aus Klasse auswählen 2.2 Äquivalenzklassenbildung
| Folie 9 3. Anwendung funktionsorientierter Testverfahren
| Folie Anwendung funktionsorientierte Testverfahren Bereich: Kalkulation im SE:Sales Berechnung von Netzentgelten für Verbraucher Der Graph einer Sigmoidfunktion beschreibt den Preis für Verbraucher 3.1 Spezifikation Verbrauch / Leistung in kWh Untergrenze Obergrenze Wendepunkt Halbwert Preis durch Sigmoidfunktion Preis in ct/kWh 0
| Folie Anwendung funktionsorientierte Testverfahren 3.2 Analyse Zahlenbeispiel mit üblichen Werten: Untergrenze: 0,12 € Obergrenze: 0,18 € Exponent: 1,0 Halbwert: 5,5 Mio. kW/h Menge1: 1,56 Mio. kW/h (Jahresmenge) Menge2: kW/h
| Folie Anwendung funktionsorientierte Testverfahren 3.2 Analyse Objektstruktur Liste ermöglicht dynamische Anzahl an Parametern Andere Berechnungsverfahren sind möglich
| Folie Anwendung funktionsorientierte Testverfahren Listengröße und Einheiten der Mengen haben keinen direkten Einfluss auf Funktionsergebnis Listengröße kann nur 0 oder größer sein mindestens 1, maximal 2 0, 3+ ungültig Einheiten ist Zeichenkette aus Enumeration drei gültige Einheiten, sonst ungültig Bei zwei Mengen müssen die Einheiten gleich sein 3.3 Äquivalenzklassen – indirekte Parameter
| Folie Anwendung funktionsorientierte Testverfahren für keinen Parameter negative Werte erlaubt Randwertbetrachtung für Mengen bei 0 Randwertbetrachtung Obergrenze & Exponent bei 0 0 bei Halbwert nicht erlaubt 3.3 Äquivalenzklassen – direkte Parameter
| Folie Anwendung funktionsorientierte Testverfahren 3.3 Äquivalenzklassen – mathematische Sonderfälle
| Folie Anwendung funktionsorientierte Testverfahren 3.4 Testplanung
| Folie Anwendung funktionsorientierte Testverfahren 3.5 Codebeispiel
| Folie Zustandsbasierte Testverfahren
| Folie Zustandsbasierte Testverfahren Wesentlicher Unterschied: Funktion hat „Gedächtnis“ Relevant sind Kontext und vorherige Ausführungen der Funktion Bei gleicher Eingabe kann es unterschiedliche Ausgaben geben Funktion hat unterschiedliche Zustände & Zustandsübergänge Kein EVA-Prinzip 4.1 Allgemeines
| Folie Zustandsbasierte Testverfahren 4.1 Allgemeines Startzustand Zwischenzustand Endzustand Ereignis Aktion Ereignis Aktion Ereignis
| Folie Zustandsbasierte Testverfahren Erzeugung von Testfällen durch Darstellung des Zustandsautomaten in einem Baum Vom Ausgangszustand möglichen Zustandsübergängen folgen bis es keine Übergänge mehr gibt oder man an einem bekannten angekommen ist Zusätzliches Testen von explizit in der Spezifikation verbotenen Übergängen im Zustandsautomaten nicht eingezeichneten Übergängen 4.2 Testvorgehen
| Folie Anwendung zustandsbasierter Testverfahren
| Folie 23 Im SE:Sales lassen sich Netzparameter einer Messstelle pflegen Commodity der Messstelle ist Strom oder Gas Über eine Combobox ist das Bilanzierungsverfahren wählbar Unterschiedliche Bilanzierungsverfahren je nach Commodity Unterschiedliche zusätzliche Felder je nach Bilanzierungsverfahren Logik befindet sich im Präsentationsmodell der GUI 5. Anwendung zustandsbasierte Testverfahren 5.1 Spezifikation
| Folie 24 Beispiel-Vergleich der Oberfläche bei unterschiedlichen Bilanzierungsverfahren 5. Anwendung zustandsbasierte Testverfahren 5.1 Spezifikation
| Folie Anwendung zustandsbasierte Testverfahren 5.2 Zustandsautomat
| Folie 26 Vorgehen wie in den Grundlagen beschrieben Von Ausgangszustand Zustandsübergängen folgen Durch Möglichkeit die Commodity jederzeit zu ändern, sind sehr viele Testfälle möglich Erstellung eines Baums zum Ermitteln der Testfälle 5. Anwendung zustandsbasierte Testverfahren 5.3 Testfallerzeugung
| Folie 27 Gas-Messstelle Strom-SLP- Messstelle Strom-Messstelle Gas- SLP- Messstelle Gas- RLMmT- Messstelle Strom-Messstelle Strom- SLP-S- Messstelle Strom- SLP-G- Messstelle Strom- RLM- Messstelle Gas- RLMoT- Messstelle Ansichtprüfung
| Folie 28 Verbesserung: Strom-SLP- Messstelle Strom-Messstelle Ansicht- prüfung Strom- SLP-S- Messstelle Strom- SLP-G- Messstelle Strom-RLM- Messstelle Bilanzierungs- verfahren (z.B. SLP) Gas- Messstelle Ansicht- prüfung
| Folie Anwendung zustandsbasierte Testverfahren 5.3 Codebeispiel
| Folie Fazit
| Folie Fazit Transfer der Testverfahren von imperativer zu objektorientierter Programmierung Funktionsorientierte Tests benötigen Äquivalenzklassen mögliche Kombinationen identifizieren Zustandsbasierte Tests benötigen Zustandsautomaten und -bäume Arbeit dient als How-To für Tester Testimplementierungen als Beispiel Ausblick: zustandsbasierte Tests lassen sich noch detaillierter untersuchen (Stichwort: bedingte Zustandsübergänge)
| Folie 32 Vielen Dank für Ihre Aufmerksamkeit!
| Folie 33 Quellen Ausarbeitung der Seminararbeit praxis/ praxis/