Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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

703 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
  • Als Erste(r) kommentieren

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

×