Diplomarbeit
Download
1 / 24

Diplomarbeit - PowerPoint PPT Presentation


  • 119 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


Ende

Danke für die Aufmerksamkeit!


Fragen
Fragen

???