Komfortable, systematische Modellierung und
Automatisierung von GUI-Tests
Diplomverteidigung - Oliver Stadie
PRÄSENTATIONS...
2
GLIEDERUNG
Einleitung
Grundlagen
Entwickelte Methode + Umsetzung
Auswertung, Fazit und Ausblick
3
Einleitung
Motivation + Zielstellung
4
• ein generischer Weg Software zu testen sind GUI-Tests
• Ziel: Entwicklung einer GUI-Test-Met...
5
Grundlagen
Capture/Replay + Widget-Trees
6
Grundlagen
Capture/Replay
• Folge von Aktionen wird aufgenommen und wieder abgespielt
• Vo...
Klassifikationsbaummethode + Zustandsdiagramm
7
Grundlagen
Klassifikationsbaummethode
• Vorteile:
• systematische Herleitu...
Zustandsdiagramme - Hierarchie
8
Grundlagen
• hilft der Übersichtlichkeit
• beschreibt XOR-Relation („1-aus-n“)
• Zustand ...
Zustandsdiagramme - Orthogonalität
9
Grundlagen
• UND-Relation
• 𝑍𝑢𝑠𝑡𝑎𝑛𝑑 𝐴 ⇔ 𝐵𝑒𝑟𝑒𝑖𝑐ℎ 𝑀 𝑈𝑁𝐷 𝐵𝑒𝑟𝑒𝑖𝑐ℎ 𝑀
⇔ (𝑀1 𝑋𝑂𝑅 𝑀2) 𝑈𝑁𝐷 (𝑁1...
10
Entwickelte Methode + Umsetzung
Überblick
11
Entwickelte Methode + Umsetzung
Phase 1: Capture
12
Entwickelte Methode + Umsetzung
Phase 1:
CapturePeripherie
SUT
GUI-Modell
Capture-
Sequenzen
Phase 1: Capture - Artefakte
13
Entwickelte Methode + Umsetzung
GUI-Modell
Capture-Sequenzen
0
2
4
16
64
2
4
x² x²
x³
0 2 ...
Phase 2: Modelle abstrahieren
14
Entwickelte Methode + Umsetzung
Phase 2:
Modelle
abstrahieren
Abstrahiertes
GUI-Modell
GU...
Abstrahiertes GUI-Modell - vereinfacht
15
Entwickelte Methode + Umsetzung
[Krus11, KrWe12]
Phase 3: Testsequenzen generieren
16
Entwickelte Methode + Umsetzung
Phase 3:
Testsequenzen
generieren
Testsequenzen
Abstr...
Phase 4: Tests ausführen
17
Entwickelte Methode + Umsetzung
Phase 4: Tests
ausführenTestsequenzen
Peripherie
SUT
Phase 2: Details
18
Entwickelte Methode + Umsetzung
1. Hierarchie erzeugen
2. Orthogonalität erzeugen
3. Sequenzen einbezi...
Phase 2: Hierarchie erzeugen
19
Entwickelte Methode + Umsetzung
Phase 2: Hierarchie erzeugen
20
Entwickelte Methode + Umsetzung
Phase 2: Hierarchie erzeugen
21
Entwickelte Methode + Umsetzung
Window
Label …
Name
“Ergebnis”
Wert
“0”
Phase 2: Hierarchie erzeugen
22
Entwickelte Methode + Umsetzung
Window
Label …
Name Wert
“0”“Ergebnis”
Phase 2: Hierarchie erzeugen
23
Entwickelte Methode + Umsetzung
Window
Name
“Rechner”
Phase 2: Orthogonalität erzeugen
24
Entwickelte Methode + Umsetzung
Programmierer-Modus Programmierer-Modus
&
Menü
Standar...
Phase 2: Orthogonalität erzeugen
25
Entwickelte Methode + Umsetzung
Window
Programmierer-
Menü-Eintrag
Label
…
Window
Prog...
Phase 2: Orthogonalität erzeugen + Transitionen
26
Entwickelte Methode + Umsetzung
27
Auswertung, Fazit und Ausblick
Auswertung & Fazit
28
Auswertung, Fazit und Ausblick
• vier Methoden erfolgreich kombiniert zu GUI-Test-Verfahren
• Protot...
Ausblick
29
Auswertung, Fazit und Ausblick
Vertiefend
• fehlende Widget-Tree-Elemente untersuchen
• Prototyp vervollständi...
Quellen
30
Quellen
• [Baue11] BAUERSFELD, SEBASTIAN: A Metaheuristic
Approach to Automatic Test Case Generation for GUI-Ba...
PRÄSENTATIONS-TITEL • DATUMVERTRAULICH31
ENGINEERING SOLUTIONS
AND PRODUCTS FOR AUTOMOTIVE
ELECTRONICS & SOFTWARE & MECHAN...
Nächste SlideShare
Wird geladen in …5
×

Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

565 Aufrufe

Veröffentlicht am

slides for presenting my final thesis.

A description can be found here:
https://ostadie.wordpress.com/2013/04/08/gui-testing/

Veröffentlicht in: Software
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
565
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
201
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

  1. 1. Komfortable, systematische Modellierung und Automatisierung von GUI-Tests Diplomverteidigung - Oliver Stadie PRÄSENTATIONS-TITEL • DATUMVERTRAULICH1 29.09.2015
  2. 2. 2 GLIEDERUNG Einleitung Grundlagen Entwickelte Methode + Umsetzung Auswertung, Fazit und Ausblick
  3. 3. 3 Einleitung
  4. 4. Motivation + Zielstellung 4 • ein generischer Weg Software zu testen sind GUI-Tests • Ziel: Entwicklung einer GUI-Test-Methode • kombinieren existierender Methoden: • Capture/Replay • Widget-Trees • Zustandsdiagramme • Klassifikationsbaummethode • Machbarkeit: Konzept und Implementation • Vor- und Nachteile der Kombination Einleitung
  5. 5. 5 Grundlagen
  6. 6. Capture/Replay + Widget-Trees 6 Grundlagen Capture/Replay • Folge von Aktionen wird aufgenommen und wieder abgespielt • Vorteile: • einfache Bedienbarkeit • weite Verbreitung • Nachteil: hoher Wartungsaufwand Widget-Trees (nach [Baue11]) • beschreibt die Widget-Hierarchie zu einem Zeitpunkt • Vorteil: detaillierte Modellierung von GUI-Zuständen • Nachteil: Beschränkung auf einen Zustand
  7. 7. Klassifikationsbaummethode + Zustandsdiagramm 7 Grundlagen Klassifikationsbaummethode • Vorteile: • systematische Herleitung von Testfällen • etabliert in der Praxis • geeignet für funktionales Black-Box-Testen • Nachteil: kann für komplexe Systeme zu groß werden Zustandsdiagramm • Vorteile: • gute Modellierung von Systemverhalten (Sequenzen) • leicht zu erlernen • leicht zu warten • Nachteil: schwer (voll-)automatisch konstruierbar
  8. 8. Zustandsdiagramme - Hierarchie 8 Grundlagen • hilft der Übersichtlichkeit • beschreibt XOR-Relation („1-aus-n“) • Zustand A ⇔ Zustand A1 XOR Zustand A2
  9. 9. Zustandsdiagramme - Orthogonalität 9 Grundlagen • UND-Relation • 𝑍𝑢𝑠𝑡𝑎𝑛𝑑 𝐴 ⇔ 𝐵𝑒𝑟𝑒𝑖𝑐ℎ 𝑀 𝑈𝑁𝐷 𝐵𝑒𝑟𝑒𝑖𝑐ℎ 𝑀 ⇔ (𝑀1 𝑋𝑂𝑅 𝑀2) 𝑈𝑁𝐷 (𝑁1 𝑋𝑂𝑅 𝑁1) • reduziert Komplexität • nur N+M Zustände erforderlich, anstatt N*M
  10. 10. 10 Entwickelte Methode + Umsetzung
  11. 11. Überblick 11 Entwickelte Methode + Umsetzung
  12. 12. Phase 1: Capture 12 Entwickelte Methode + Umsetzung Phase 1: CapturePeripherie SUT GUI-Modell Capture- Sequenzen
  13. 13. Phase 1: Capture - Artefakte 13 Entwickelte Methode + Umsetzung GUI-Modell Capture-Sequenzen 0 2 4 16 64 2 4 x² x² x³ 0 2 4 16 2 x² x² 0 4 64 4 x³
  14. 14. Phase 2: Modelle abstrahieren 14 Entwickelte Methode + Umsetzung Phase 2: Modelle abstrahieren Abstrahiertes GUI-Modell GUI-Modell Capture- Sequenzen
  15. 15. Abstrahiertes GUI-Modell - vereinfacht 15 Entwickelte Methode + Umsetzung [Krus11, KrWe12]
  16. 16. Phase 3: Testsequenzen generieren 16 Entwickelte Methode + Umsetzung Phase 3: Testsequenzen generieren Testsequenzen Abstrahiertes GUI-Modell
  17. 17. Phase 4: Tests ausführen 17 Entwickelte Methode + Umsetzung Phase 4: Tests ausführenTestsequenzen Peripherie SUT
  18. 18. Phase 2: Details 18 Entwickelte Methode + Umsetzung 1. Hierarchie erzeugen 2. Orthogonalität erzeugen 3. Sequenzen einbeziehen 4. Klassifikationsbaum erzeugen
  19. 19. Phase 2: Hierarchie erzeugen 19 Entwickelte Methode + Umsetzung
  20. 20. Phase 2: Hierarchie erzeugen 20 Entwickelte Methode + Umsetzung
  21. 21. Phase 2: Hierarchie erzeugen 21 Entwickelte Methode + Umsetzung Window Label … Name “Ergebnis” Wert “0”
  22. 22. Phase 2: Hierarchie erzeugen 22 Entwickelte Methode + Umsetzung Window Label … Name Wert “0”“Ergebnis”
  23. 23. Phase 2: Hierarchie erzeugen 23 Entwickelte Methode + Umsetzung Window Name “Rechner”
  24. 24. Phase 2: Orthogonalität erzeugen 24 Entwickelte Methode + Umsetzung Programmierer-Modus Programmierer-Modus & Menü Standard-Modus
  25. 25. Phase 2: Orthogonalität erzeugen 25 Entwickelte Methode + Umsetzung Window Programmierer- Menü-Eintrag Label … Window Programmierer- Menü-Eintrag Label … A A A
  26. 26. Phase 2: Orthogonalität erzeugen + Transitionen 26 Entwickelte Methode + Umsetzung
  27. 27. 27 Auswertung, Fazit und Ausblick
  28. 28. Auswertung & Fazit 28 Auswertung, Fazit und Ausblick • vier Methoden erfolgreich kombiniert zu GUI-Test-Verfahren • Prototyp evaluiert an einem Windows-Taschenrechner Tutorial • erste Hinweise über die Praxistauglichkeit der Methode • Machbarkeit ist gegeben • produktiver Einsatz erfordert jedoch noch viel Arbeit • bisher: Einschränkung auf Links-Klick und wenige Widget-Typen • relevante Resultate • keine Erkennung interner Zustandswechsel • einige sichtbare Element fehlen im Widget-Tree
  29. 29. Ausblick 29 Auswertung, Fazit und Ausblick Vertiefend • fehlende Widget-Tree-Elemente untersuchen • Prototyp vervollständigen • Modellierungsmöglichkeiten für Tester verbessern • Evaluation auf weiteren SUTs Weiterführend • Regressions-Tests und Testorakel. • Variablen, Wächter • Historie • Nguyen et al. [NgMT12] zur Parametrisierung.
  30. 30. Quellen 30 Quellen • [Baue11] BAUERSFELD, SEBASTIAN: A Metaheuristic Approach to Automatic Test Case Generation for GUI-Based Applications, Humboldt-Universität zu Berlin, 2011 • [Krus11] KRUSE, PETER M: Test Sequence Generation from Classification Trees using Multi-agent Systems. In: EUMAS 2011. Maastricht, NL, 2011 • [KrWe12] KRUSE, PETER M. ; WEGENER, JOACHIM: Test Sequence Generation from Classification Trees. In: 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation. Montreal, QC : IEEE, 2012 — ISBN 978-0-7695- 4670-4, S. 539–548 • [NgMT12] NGUYEN, CU D ; MARCHETTO, ALESSANDRO ; TONELLA, PAOLO: Combining Model-Based and Combinatorial Testing for Effective Test Case Generation. In: Proceedings of the 2012 International Symposium on Software Testing and Analysis, ISSTA 2012. New York, NY, USA, 2012 — ISBN 9781450314541, S. 100–110
  31. 31. PRÄSENTATIONS-TITEL • DATUMVERTRAULICH31 ENGINEERING SOLUTIONS AND PRODUCTS FOR AUTOMOTIVE ELECTRONICS & SOFTWARE & MECHANICS

×