diplomarbeit

24
Diplomarbeit Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

Upload: genica

Post on 12-Feb-2016

41 views

Category:

Documents


0 download

DESCRIPTION

Diplomarbeit. Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren. Vorgetragen von Anton Afanasjew. PASS Consulting Group. Internationales Beratungs - und Softwarehaus - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Diplomarbeit

Diplomarbeit

Konzeption und Entwicklung einerTestfactory-Komponente für die automatisierte Ausführung von Testverfahren

Vorgetragen von Anton Afanasjew

Page 2: Diplomarbeit

PASS Consulting Group Internationales Beratungs- und Softwarehaus

Aufgabengebiet: IT-Beratung, Softwareentwicklung und Projektmanagement

Branchen: Banken, Versicherungen, Touristik, Industrie, Telekommunikation und IT

Mitarbeiter: ca. 550

Diplomandenbetreuung in der „Research & Development“-Abteilung

Page 3: Diplomarbeit

Entwicklungsinfrastruktur Virtual Software Factory (VSF)

Komponentenbasierte Entwicklungsinfrastruktur

Unterstützt modellgetriebene Softwareentwicklung

Entwicklungsframeworks als Teile der VSF

Ultra-Thin-Client-Framework für die Entwicklung von Web-Anwendungen

Page 4: Diplomarbeit

Situation Entwicklung von Webanwendungen mit Hilfe

der MDSD-Ansätze

Modellierung der Webanwendungen Generierung des Quellcodes mit dem UTC-Framework Implementierung von Activities, den manuellen

Codeteilen

Testen der entwickelten Anwendungen

Funktionale Tests Regressionstests

Page 5: Diplomarbeit

Problem Funktionale Tests

Browserbasierte Oberflächentests

Mühsame Testerstellung

Noch mühsamere Testausführung

Viel Routinearbeit für Testabteilung

Zeitintensiv und fehleranfällig

Page 6: Diplomarbeit

Lösung Testfactory-Komponente für VSF/UTC

Teilweise Ableitung der Testfälle, Testdaten und Zusicherungen aus den Modellen der Webanwendung

Erstellung der Testskripte für das zugrundeliegende Testtool Selenium

Steuerung des Testtools beim automatisierten Ausführen der Tests

Analyse der Testergebnisse

Page 7: Diplomarbeit

Aufgaben der Testfactory Testerstellung

Unterstützung der Tester bei der Testerstellung. Testfallsuche Vollständige Erstellung der Testskripte auf Basis von

Testereinstellungen und der Analyse der Anwendungsmodelle

Testausführung Steuerung des Testtools Erweiterung des Testtools

Testauswertung Vergleich zweier Programmstände

Testdatenablage Verwaltung von Tests Verwaltung von Testergebnissen Beziehungen zw. Tests und Testergebnissen

Page 8: Diplomarbeit

Testerstellung (1) - Pfadsuche Darstellung der Prozesse und Dialoge der Anwendung unter

Test als gerichteter Graph

Erweiterung des Graphen um dynamische Elemente

Pfadsuche auf Basis der graphentheoretischen Tiefensuche

Berücksichtigung der Überdeckungswünsche des Testers (Dialog, Zweig, Pfadüberdeckung)

Möglichkeit des Ausschlusses einzelner Dialoge/Prozesse aus der Suche

Generierung der Pfadmodelle aus den Modellen der Anwendung

Page 9: Diplomarbeit

Beispiel 2 Prozesse

Knoten entsprechen den Dialogen der Anwendung

Startknoten für jeden Prozess

Ein Startprozess

Knotenübergänge innerhalb von Prozessen

Prozesswechsel

Zielknoten bei Prozesswechseln dynamisch berechnet

Pfadsuche liefert folgende Knotenfolgen:(1-2), (1-3-4-5-4), (1-3-4-5-3-5-4), (1-4-5-4), (1-4-5-1-2), (1-4-5-1-3-5-3), (1-4-5-1-3-5-4), (1-4-5-4)

Page 10: Diplomarbeit

Pfadsuche: KlassendiagrammProcessPool: GesamtgraphProcessGraph: Teilgraph für einen ProzessNode: GraphknotenEdge: statische (prozessinterne) KanteDynamicEdge: ProzesswechselkanteEgressEdge: KnotenübergangsbeschreibungPath: Pfad als Folge von KnotenübergängenPathList: Liste aller Pfade

Page 11: Diplomarbeit

Testerstellung (2) - Testdaten Definition von Wertemengen für Eingabefelder

Testdaten sind Eingabewerte, aber auch Zeilenauswahl beim Klick auf einen Detail-Eintrag in einer Master-Tabelle

Zuweisung der Wertemengen zu den Dialogfeldern Kombination von Wertemengen unterschiedlicher

Felder für die Überdeckung aller Eingabemöglichkeiten in einem bestimmten Kontext

Generierung der Testdatensatzmodelle

Page 12: Diplomarbeit

Beispiel: Kombination von WertemengenWertemengen

Joins

Datensätze

Page 13: Diplomarbeit

Testerstellung (3) - Zusicherungen

Zusicherung von Feldinhalten

Zusicherung = Vergleich der Ist/Soll-Werte

Vergleichsausdrücke mit Feldreferenzen

Angabe der Zusicherungsart

Angabe des Auslösers

Ergebnis => Zusicherungsmodell

Page 14: Diplomarbeit

Testerstellung (4) - Testskripte

Pfade, Daten, Zusicherungen als Eingabemodelle

Definition manueller Testblöcke für individuelles Testverhalten

Generierung der Skripte für das Testtool

Page 15: Diplomarbeit

Testausführung(1) - Testtoolerweiterung

Erweiterung von Selenium

Implementierung der Fehlerkategorisierung

Implementierung von Vergleichsfunktionen

Auflösung von Vergleichsausdrücken

Definition von Selenium-Ausnahmen

Page 16: Diplomarbeit

Ausnahmenhierarchie

Page 17: Diplomarbeit

Testausführung(2) – Produktion von Testergebnissen

Implementierung von vorzeitig abgebrochenen Tests

Behandlung von gescheiterten Tests (Gescheitert im Sinne eines unerwarteten Fehlers oder Nichterfüllung einer kritischen Zusicherung)

Kommunikation der Ergebnisse an den Auswertungsserver in Form von XML-Dokumenten

Page 18: Diplomarbeit

Testauswertung Serveranwendung für den

Empfang der Testergebnisse vom Testtool

Vergleich der Testergebnisse unter Berücksichtigung der Gewichtung

Möglichkeit der Gewichtung von Fehlerkategorien

Statistik über die Änderung der Fehlerquote bei zwei Applikationsständen

Page 19: Diplomarbeit

Testdatenablage Versionisierung und

Speicherung der Pfad-, Daten, Zusicherungsmodelle

Testskripte als Ergebnisse der Kombination dieser Modelle

Liste der Testergebnisse pro Kombination

Beispielimplementierung auf Basis vom Dateisystem

Page 20: Diplomarbeit

Weiterentwicklung (1) – Erweiterung der Testerstellung Pfadsuche

Manuelle Definition von Pfaden Finden der Teilpfade Schleifendurchläufe

Testdatengenerierung Generierung der Grenzwerte und Zufallswerte Aufteilung der Wertebereiche in Äquivalenzklassen

Definition von Zusicherungen Einbinden neuer Vergleichsfunktionen und Fehlerarten Sprache für einfache Erzeugung der Vergleichsausdrücke

Skriptgenerierung Eingabe der Reihenfolge für Skriptkommandos Abstraktion vom Testtool und Unterstützung anderer, ähnlicher Tools

Page 21: Diplomarbeit

Weiterentwicklung (2) – Sonstiges

Anhängen von Modulen für die Testauswertung

z.B. grafische Darstellung der Testergebnisse

Optimierung der grafischen Benutzeroberfläche

Integration der Testdatenablage in die Testfactory

Page 22: Diplomarbeit

Fazit Die Testfactory…

…liegt in der Version 1.0 vor

…ist in die Virtual Software Factory als Komponente integriert

…reduziert den Aufwand beim Erstellen, Ausführen und Auswerten von funktionalen Tests

…wird gegen zwei Kundenprojekte getestet (ein Flugticketbestellsystem und eine Memoverwaltunganwendung)

…wird in der R&D-Abteilung des Unternehmens weiterentwickelt

Page 23: Diplomarbeit

Ende

Danke für die Aufmerksamkeit!

Page 24: Diplomarbeit

Fragen

???