diplomarbeit konzeption und entwicklung einer testfactory-komponente für die automatisierte...

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

Upload: anke-helmke

Post on 06-Apr-2015

105 views

Category:

Documents


1 download

TRANSCRIPT

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

Diplomarbeit

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

Vorgetragen von Anton Afanasjew

Page 2: 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

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

Pfadsuche: Klassendiagramm

ProcessPool: Gesamtgraph

ProcessGraph: Teilgraph für einen Prozess

Node: Graphknoten

Edge: statische (prozessinterne) Kante

DynamicEdge: Prozesswechselkante

EgressEdge: Knotenübergangsbeschreibung

Path: Pfad als Folge von Knotenübergängen

PathList: Liste aller Pfade

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

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

Beispiel: Kombination von Wertemengen

Wertemengen

Joins

Datensätze

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

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

Ausnahmenhierarchie

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

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

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 Konzeption und Entwicklung einer Testfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

Ende

Danke für die Aufmerksamkeit!

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

Fragen

???