1 / 24

Diplomarbeit

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

genica
Télécharger la présentation

Diplomarbeit

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Diplomarbeit Konzeption und Entwicklung einerTestfactory-Komponente für die automatisierte Ausführung von Testverfahren Vorgetragen von Anton Afanasjew

  2. 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

  3. 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

  4. 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

  5. Problem • Funktionale Tests • Browserbasierte Oberflächentests • Mühsame Testerstellung • Noch mühsamere Testausführung • Viel Routinearbeit für Testabteilung • Zeitintensiv und fehleranfällig

  6. 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

  7. 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

  8. 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

  9. 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)

  10. 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

  11. 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

  12. Beispiel: Kombination von Wertemengen Wertemengen Datensätze Joins

  13. 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

  14. Testerstellung (4) - Testskripte • Pfade, Daten, Zusicherungen als Eingabemodelle • Definition manueller Testblöcke für individuelles Testverhalten • Generierung der Skripte für das Testtool

  15. Testausführung(1) - Testtoolerweiterung • Erweiterung von Selenium • Implementierung der Fehlerkategorisierung • Implementierung von Vergleichsfunktionen • Auflösung von Vergleichsausdrücken • Definition von Selenium-Ausnahmen

  16. Ausnahmenhierarchie

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. Ende Danke für die Aufmerksamkeit!

  24. Fragen ???

More Related