This is a GUI Testing Tool and concept to automatically analyse and test any GUI with a model based approach. This is the final thesis for my academic studies.
Idea
Testing Graphical User Interfaces (GUI) is done very differently in commercial and academic environments. In commercial environments GUIs are tested with the simple and convenient Capture and Replay method. Academically developed GUI test methods use powerful but inconvenient model based approaches on the other hand.
My approach combines both methods to a convenient but powerful GUI testing method. The basic idea is the following:
- The user executes example sequences on a GUI
- A Model of the GUI is Generated
- Test Sequences on the Model are Automatically generated
- The Test Sequences are automatically executed on the GUI
The GUI Models stay compact and clear because they use hierarchies and orthogonality.
A systematic combinatorial approach generates the Test Sequences. This keeps the sequences complete but lean.
Features
Convenient but Powerful GUI-Testing • Capture-&-Replay Approach • Model Based • Systematic Test Sequence Generation • Automatic Model Generation • User Friendly GUI Models • Complete but Compact Test-Sequences • Test Arbitrary GUIs
Prototype
As part of my final thesis I also developed a prototype. The prototype is a Plugin for the commercial testing tool TESTONA. You can see it in action here:
Technologies & Methodologies
Languages: UML • Java • C++ • XML • XSD
Models and Methodologies: Statecharts • Capture-and-Replay • Classification Tree Method • Widget Trees
Libraries & Frameworks: Eclipse RCP • EMF • OSGI • Graphiti • JNativeHook • FRUIT
Automated Testing: JUnit
IDE: Eclipse
Context
This was a self organized project as an employee in the Berner & Mattner enterprise.
To realize this project I worked together with many other teams. I modified and integrated parts of their work into my GUI Testing Tool.
Details
I released a scientific paper as part of this project. I also released the final thesis and the final presentation (in german).