Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Implementierung eines Werkzeugs zur Kombination von Testfällen mit Eingabedaten Betreuer:Dipl.-Wirt.-Inf. Michael Linschulte Projektteam:Axel Balke Benedikt.

Ähnliche Präsentationen


Präsentation zum Thema: "Implementierung eines Werkzeugs zur Kombination von Testfällen mit Eingabedaten Betreuer:Dipl.-Wirt.-Inf. Michael Linschulte Projektteam:Axel Balke Benedikt."—  Präsentation transkript:

1 Implementierung eines Werkzeugs zur Kombination von Testfällen mit Eingabedaten Betreuer:Dipl.-Wirt.-Inf. Michael Linschulte Projektteam:Axel Balke Benedikt Krüger Christian Menke Heinrich Drobin Jahn Heymann Magnus Kortenjann Simon Waloschek

2 Inhalt Einleitung Realisierung Test der Implementierung Fallstudie Fazit & Ausblick Projektgruppe 4Inhaltsverzeichnis2

3 Projektdefinition Projektgruppe 43Einleitung – Realisierung – Test – Fallstudie – Fazit Selenium HTML Testcase Template HTML Testcase Template Testdatengenerator ETES Testcase generator tool HTML TC1 HTML TC1 XML Testdaten XML Testdaten HTML TC2 HTML TC2 HTML TC3 HTML TC3 manuelle Bearbeitung HTML Testcase HTML Testcase HTML TC.. HTML TC..

4 Projektdefinition Html select arrival label= select departure label= click btn_submit Xml Projektgruppe 4Einleitung – Realisierung – Test – Fallstudie – Fazit4 btn_cancel btn_submit label= label= label= label= select arrival $XML[Arrival] select departure $XML[Departure]. click $XML[btn_action] select arrival $XML[Arrival] select departure $XML[Departure]. click $XML[btn_action] assertAlert Fehler select arrival $XML[Arrival] select departure $XML[Departure]. click $XML[btn_action]

5 Designentscheidungen als Framework Programmaufbau DOM SAX Thread Oberfläche GUI ReaderThread QXmlSimpleReader XMLHandler TestController TestCaseWriter Projektgruppe 45Einleitung – Realisierung – Test – Fallstudie – Fazit

6 Die GUI 1.Pfadangaben 2.Fortschrittsbalken 3.Startet die Bearbeitung 4.Beendet das Programm 5.Eingabefeld für Errortyp 6.Statistik 7.Debug Ausgabe Projektgruppe 46Einleitung – Realisierung – Test – Fallstudie – Fazit

7 ReaderThread Projektgruppe 4Einleitung – Realisierung – Test – Fallstudie – Fazit7 DOMSAXThreadOberfläche GUIReaderThreadQXmlSimpleReaderXMLHandlerTestControllerTestCaseWriter

8 ReaderThread Selbständiger Prozess Über Signals & Slots mit der GUI verbunden – Qt System (ähnlich Events) Stellt Methoden bereit – Debug – Statistik – Fortschritt – Status Initialisiert XML Handler & QXmlSimpleReader Projektgruppe 48Einleitung – Realisierung – Test – Fallstudie – Fazit

9 XML Handler Projektgruppe 4Einleitung – Realisierung – Test – Fallstudie – Fazit9 DOMSAXThreadOberfläche GUIReaderThreadQXmlSimpleReaderXMLHandlerTestControllerTestCaseWriter

10 XML Handler Eventhandler für QXmlSimpleReader – Liest XML-Datei elementweise ein Baut XML-Teilbaum auf Beim Ende eines Actions-Block – Überprüfen des erstellten Teilbaums – Übergabe an TestController – Löschen des Blocks Projektgruppe 410Einleitung – Realisierung – Test – Fallstudie – Fazit

11 TestController Projektgruppe 4Einleitung – Realisierung – Test – Fallstudie – Fazit11 DOMSAXThreadOberfläche GUIReaderThreadQXmlSimpleReaderXMLHandlerTestControllerTestCaseWriter

12 Klasse TestController Aufgaben des TestControllers – HTML Template als QDomDocument einlesen – Teilbäume vom XML Handler für die Klasse TestCase kombinieren Wichtige Funktionen des TestControllers – setTemplate liest das HTML Template ein – setActions erstellt Testfälle Projektgruppe 412Einleitung – Realisierung – Test – Fallstudie – Fazit

13 Klasse TestController Funktionsweise: XML-ReaderTestControllerTestCase 1TestCase 2TestCase 3 action1 action2 Value1 Value action 1 Value1 Value2 action 1 … action2 Value1 Value2 … Projektgruppe 413Einleitung – Realisierung – Test – Fallstudie – Fazit

14 Testcasewriter Projektgruppe 4Einleitung – Realisierung – Test – Fallstudie – Fazit14 DOMSAXThreadOberfläche GUIReaderThreadQXmlSimpleReaderXMLHandlerTestControllerTestCaseWriter

15 Klasse Testcasewriter Aufgabe des Testcasewriters – XML Daten in HTML Template einfügen – HTML Testfälle im Ausgangsordner abspeichern Aufbau des Testcasewriters – Konstruktor erzeugt neuen Testfall – Zwei private Unterfunktionen replaceData (QDomNodeList pList) getXMLData (QString pFieldName) Projektgruppe 415Einleitung – Realisierung – Test – Fallstudie – Fazit

16 Klasse Testcasewriter Für alle Elemente in der Liste Liste erstellen Liste durchlaufen Enthält Element Text mit $XML[…] Enthält Element Kinder $XML Feld Ersetzen ja nein Projektgruppe 416Einleitung – Realisierung – Test – Fallstudie – Fazit

17 Testumgebung Unittests: Test von einzelnen Methoden im Programmcode White Box Test, hier nicht realisierbar Anwendung von Black Box Test Code-Coverage: Messung des Abdeckungsgrades des Codes Kein wirklicher Test, sondern nur Maß für die Güte des Tests Projektgruppe 4Einleitung – Realisierung – Test – Fallstudie – Fazit17

18 Code Coverage Überwachung der Ausführung pro Zeile (Anweisungsüberdeckung; C0 Test) – Finden von nicht ausgeführtem Code 100%ige Überdeckung bedeutet nicht Fehlerfreiheit Fehlende Überdeckung bedeutet unzureichende Tests Projektgruppe 4Einleitung – Realisierung – Test – Fallstudie – Fazit18

19 Code Coverage Methode:Überdeckungsgrad: main.cpp % mainwindow.cpp 94,44% readerthread.cpp 88,64% testcasewriter.cpp 93,59% testcontroller.cpp 98,11% xmlhandler.cpp 98,33% Projektgruppe 4Einleitung – Realisierung – Test – Fallstudie – Fazit19 14 Testfälle wurden aufgestellt und durchgeführt

20 Code Coverage Die Testfälle wurden soweit modifiziert, dass Errors auftreten und somit die Abfangmethoden ebenfalls durchgeführt werden müssen Beispiel eines nicht ausgeführten Codefragments: #####: 76:void ReaderThread::statusTxt(QString statusTxt) -: 77:{ #####: 78: emit writeStatus(statusTxt); #####: 79:} Inkorrekte Pfadangaben werden beim Template nicht abgefangen. Projektgruppe 4Einleitung – Realisierung – Test – Fallstudie – Fazit20

21 Fallstudie in Iselta Nutzen des Tools beim Testen von Webseiten mittels Selenium Alle Testfälle werden im optimalen Fall positiv abgeschlossen Projektgruppe 421Einleitung – Realisierung – Test – Fallstudie – Fazit

22 Fallstudie - Szenario 1 Buchungsdaten – Formular in Iselta gültige Eingaben Zeichenketten Zeichenketten nach speziellem Schema Zahlen Projektgruppe 422Einleitung – Realisierung – Test – Fallstudie – Fazit

23 Fallstudie - Szenario 1 Demonstration Projektgruppe 423Einleitung – Realisierung – Test – Fallstudie – Fazit

24 Fallstudie - Szenario 1 Ergebnis des ersten Szenarios in Selenium fehlerhafte Eingabe nicht aufgetretene Fehlermeldung Projektgruppe 424Einleitung – Realisierung – Test – Fallstudie – Fazit

25 Fallstudie - Szenario 1 Alle negativ abgeschlossen Tests haben die gleiche Ursache: Zeichenketten, welche nur Sonderzeichen beinhalten werden als valide Eigennamen von Iselta akzeptiert Projektgruppe 425Einleitung – Realisierung – Test – Fallstudie – Fazit

26 Fallstudie - Szenario 2 Hoteldaten – Formular in Iselta gültige Eingaben Zeichenketten Ganze Zahlen Kommazahlen Projektgruppe 426Einleitung – Realisierung – Test – Fallstudie – Fazit

27 Fallstudie - Szenario 2 Hoteldaten – Formular in Iselta fehlerhafte Eingabe nicht aufgetretene Fehlermeldung Projektgruppe 427Einleitung – Realisierung – Test – Fallstudie – Fazit

28 Fallstudie - Szenario 2 Alle negativ abgeschlossen Tests haben wieder die gleiche Ursache: Zeichenketten, welche nur Sonderzeichen beinhalten werden als valide Bezeichnungen (bzw. Eigennamen) von Iselta akzeptiert Projektgruppe 428Einleitung – Realisierung – Test – Fallstudie – Fazit

29 Fallstudie - Fazit Iselta prüft bei beiden getesteten Szenarien Zeichenketten nicht auf semantische Korrektheit Das Tool kann Testfälle generieren, welche Fehler entdecken und lokalisieren können Projektgruppe 429Einleitung – Realisierung – Test – Fallstudie – Fazit

30 Fazit & Ausblick Tool erleichtert das Erstellen von Testfällen Problem: Nur für eine Formularseite – Lösung: Erweiterte Platzhalter z.B. $XML. [ ] Projektgruppe 4Einleitung – Realisierung – Test – Fallstudie – Fazit30

31 Vielen Dank für Ihre Aufmerksamkeit! Projektgruppe 4Ende31


Herunterladen ppt "Implementierung eines Werkzeugs zur Kombination von Testfällen mit Eingabedaten Betreuer:Dipl.-Wirt.-Inf. Michael Linschulte Projektteam:Axel Balke Benedikt."

Ähnliche Präsentationen


Google-Anzeigen