Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

31
Komfortable, systematische Modellierung und Automatisierung von GUI-Tests Diplomverteidigung - Oliver Stadie PRÄSENTATIONS-TITEL • DATUM VERTRAULICH 1 29.09.2015

Transcript of Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Page 1: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Komfortable, systematische Modellierung und

Automatisierung von GUI-Tests Diplomverteidigung - Oliver Stadie

PRÄSENTATIONS-TITEL • DATUM VERTRAULICH 1

29.09.2015

Page 2: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

2

GLIEDERUNG

Einleitung

Grundlagen

Entwickelte Methode + Umsetzung

Auswertung, Fazit und Ausblick

Page 3: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

3

Einleitung

Page 4: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

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

Page 5: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

5

Grundlagen

Page 6: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

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

Page 7: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

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

Page 8: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Zustandsdiagramme - Hierarchie

8

Grundlagen

• hilft der Übersichtlichkeit

• beschreibt XOR-Relation („1-aus-n“)

• Zustand A ⇔ Zustand A1 XOR Zustand A2

Page 9: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Zustandsdiagramme - Orthogonalität

9

Grundlagen

• UND-Relation

• 𝑍𝑢𝑠𝑡𝑎𝑛𝑑 𝐴 ⇔ 𝐵𝑒𝑟𝑒𝑖𝑐ℎ 𝑀 𝑈𝑁𝐷 𝐵𝑒𝑟𝑒𝑖𝑐ℎ 𝑀

⇔ (𝑀1 𝑋𝑂𝑅 𝑀2) 𝑈𝑁𝐷 (𝑁1 𝑋𝑂𝑅 𝑁1)

• reduziert Komplexität

• nur N+M Zustände erforderlich, anstatt N*M

Page 10: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

10

Entwickelte Methode + Umsetzung

Page 11: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Überblick

11

Entwickelte Methode + Umsetzung

Page 12: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Phase 1: Capture

12

Entwickelte Methode + Umsetzung

Phase 1:

Capture Peripherie

SUT

GUI-Modell

Capture-

Sequenzen

Page 13: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Phase 1: Capture - Artefakte

13

Entwickelte Methode + Umsetzung

GUI-Modell

Capture-Sequenzen

0

2

4

16

64

2

4

x² x²

0 2 4 16

2 x² x²

0 4 64

4 x³

Page 14: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Phase 2: Modelle abstrahieren

14

Entwickelte Methode + Umsetzung

Phase 2:

Modelle

abstrahieren

Abstrahiertes

GUI-Modell

GUI-Modell

Capture-

Sequenzen

Page 15: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Abstrahiertes GUI-Modell - vereinfacht

15

Entwickelte Methode + Umsetzung

[Krus11, KrWe12]

Page 16: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Phase 3: Testsequenzen generieren

16

Entwickelte Methode + Umsetzung

Phase 3:

Testsequenzen

generieren Testsequenzen

Abstrahiertes

GUI-Modell

Page 17: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Phase 4: Tests ausführen

17

Entwickelte Methode + Umsetzung

Phase 4: Tests

ausführen Testsequenzen

Peripherie

SUT

Page 18: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Phase 2: Details

18

Entwickelte Methode + Umsetzung

1. Hierarchie erzeugen

2. Orthogonalität erzeugen

3. Sequenzen einbeziehen

4. Klassifikationsbaum erzeugen

Page 19: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Phase 2: Hierarchie erzeugen

19

Entwickelte Methode + Umsetzung

Page 20: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Phase 2: Hierarchie erzeugen

20

Entwickelte Methode + Umsetzung

Page 21: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Phase 2: Hierarchie erzeugen

21

Entwickelte Methode + Umsetzung

Window

Label …

Name

“Ergebnis”

Wert

“0”

Page 22: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Phase 2: Hierarchie erzeugen

22

Entwickelte Methode + Umsetzung

Window

Label …

Name Wert

“0” “Ergebnis”

Page 23: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Phase 2: Hierarchie erzeugen

23

Entwickelte Methode + Umsetzung

Window

Name

“Rechner”

Page 24: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Phase 2: Orthogonalität erzeugen

24

Entwickelte Methode + Umsetzung

Programmierer-Modus Programmierer-Modus

&

Menü

Standard-Modus

Page 25: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Phase 2: Orthogonalität erzeugen

25

Entwickelte Methode + Umsetzung

Window

Programmierer-

Menü-Eintrag Label

Window

Programmierer-

Menü-Eintrag

Label

A

A A

Page 26: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

Phase 2: Orthogonalität erzeugen + Transitionen

26

Entwickelte Methode + Umsetzung

Page 27: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

27

Auswertung, Fazit und Ausblick

Page 28: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

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

Page 29: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

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.

Page 30: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

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

Page 31: Komfortable, systematische Modellierung und Automatisierung von GUI-Tests

PRÄSENTATIONS-TITEL • DATUM VERTRAULICH 31

ENGINEERING SOLUTIONS AND PRODUCTS FOR AUTOMOTIVE

ELECTRONICS & SOFTWARE & MECHANICS