diplomarbeit
Download
Skip this Video
Download Presentation
Diplomarbeit

Loading in 2 Seconds...

play fullscreen
1 / 24

Diplomarbeit - PowerPoint PPT Presentation


  • 120 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Diplomarbeit' - alexis


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
diplomarbeit

Diplomarbeit

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

Vorgetragen von Anton Afanasjew

pass consulting group
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
entwicklungsinfrastruktur
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
situation
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
problem
Problem
  • Funktionale Tests
    • Browserbasierte Oberflächentests
    • Mühsame Testerstellung
    • Noch mühsamere Testausführung
    • Viel Routinearbeit für Testabteilung
    • Zeitintensiv und fehleranfällig
l sung
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
aufgaben der testfactory
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
testerstellung 1 pfadsuche
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
beispiel
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)

pfadsuche klassendiagramm
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

testerstellung 2 testdaten
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
beispiel kombination von wertemengen
Beispiel: Kombination von Wertemengen

Wertemengen

Datensätze

Joins

testerstellung 3 zusicherungen
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
testerstellung 4 testskripte
Testerstellung (4) - Testskripte
  • Pfade, Daten, Zusicherungen als Eingabemodelle
  • Definition manueller Testblöcke für individuelles Testverhalten
  • Generierung der Skripte für das Testtool
testausf hrung 1 testtoolerweiterung
Testausführung(1) - Testtoolerweiterung
  • Erweiterung von Selenium
  • Implementierung der Fehlerkategorisierung
  • Implementierung von Vergleichsfunktionen
  • Auflösung von Vergleichsausdrücken
  • Definition von Selenium-Ausnahmen
testausf hrung 2 produktion von testergebnissen
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
testauswertung
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
testdatenablage
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
weiterentwicklung 1 erweiterung der testerstellung
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
weiterentwicklung 2 sonstiges
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
fazit
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
slide23
Ende

Danke für die Aufmerksamkeit!