Usage-based Testing of Event-driven Software
Benutzungsbasiertes Testen von eventgetriebener Software
by Steffen Herbold
Date of Examination:2012-06-27
Date of issue:2012-09-14
Advisor:Prof. Dr. Jens Grabowski
Referee:Prof. Dr. Jens Grabowski
Referee:Prof. Dr. Stephan Waack
Referee:Prof. Dr. Atif M. Memon
Files in this item
Name:herbold.pdf
Size:4.95Mb
Format:PDF
Abstract
English
Most modern-day end-user software is Event-driven Software (EDS), i.e., accessible through Graphical User Interfaces (GUIs), smartphone apps, or in form of Web applications. Examples for events are mouse clicks in GUI applications, touching the screen of a smartphone, and clicking on links in Web applications. Due to the high pervasion of EDS, the quality assurance of EDS is vital to ensure high-quality software products for end-users. In this thesis, we explore a usage-based approach for the testing of EDS. The advantage of a usage-based testing strategy is that the testing is focused on frequently used parts of the software, while seldom used parts are only tested sparsely. This way, the user-experienced quality of the software is optimized and the testing effort is reduced in comparison to traditional software testing. The goal of this thesis is twofold. On the one hand, we advance the state-of-the-art of usage-based testing. We define novel test coverage criteria that evaluate the testing effort with respect to usage. Furthermore, we propose three novel approaches for the usage-based test case generation. Two of the approaches follow the traditional way in usage-based testing and generate test cases randomly based on the probabilities of how the software is used. With our third test case generation approach, we take a different direction and define a heuristic that generates a test suite to optimize our usage-based coverage criteria. We evaluate our contributions to usage-based testing in two large-scale case studies that show the value of our work. On the other hand, we provide a platform-independent framework for usage-based testing that allows the application of usage-based testing to different EDS platforms. Examples for EDS platforms are concrete GUI frameworks like Qt or concrete Web application platforms, e.g., PHP-based websites running on an Apache Web server. In the past, research effort for usage-based testing has always focused on one specific EDS platform and its results were either transferred to other EDS platforms through re-implementation or not at all. Through our framework, we provide a remedy for this issue and allow an easy transfer of results between different EDS platforms. Our approach is the application of the usage-based testing techniques to an abstract notion of events and the translation between platform-specific usage events and the abstract events to gain platform independence. We provide a proof-of-concept implementation to show the feasibility of our framework in practice.
Keywords: Software quality assurance; usage-based testing; usage profiles; event-driven software
Other Languages
Der Großteil von moderner Endnutzer
Software ist eventgetrieben, das heißt durch graphische
Benutzeroberflächen (GUIs), Smartphone Apps oder Webanwendungen.
Beispiele für Events sind Mausklicks in GUI Applikationen, das
Berühren des Touchscreens eines Smartphones und Klicks auf Links in
Webanwendungen. Aufgrund der hohen Durchdringung von
eventgetriebener Software ist die Qualitätssicherung dieser Art von
Software entscheidend um qualitativ hochwertige Endnutzersoftware
zu erstellen. In dieser Arbeit betrachten wir eine
benutzungsbasierte Strategie für das Testen von eventgetriebener
Software. Der Vorteil von benutzungsbasierten Strategien ist, dass
der Testfokus auf häufig benutzten Teilen der Software liegt,
während selten benutzte Teile der Software nur sporadisch getestet
werden. Hierdurch wird die durch den Benutzer wahrgenommene
Softwarequalität optimiert und der Testaufwand ist reduziert im
Vergleich zum intensiven Testen der kompletten Software. Das Ziel
dieser Arbeit ist zweigeteilt. Auf der einen Seite wollen wir den
State-of-the-Art des benutzungsbasierten Testen vorantreiben. Wir
definieren neue Überdeckungskriterien für die Evaluierung des
Testaufwands in Bezug auf die Benutzung. Weiterhin schlagen wir
drei neue benutzungsbasierte Testfallgenerierungsansätze vor. Zwei
dieser Ansätze verfolgen die klassische Art und Weise der
benutzungsbasierten Testfallerstellung. Das bedeutet das Testfälle
randomisiert aufgrund der Benutzungswahrscheinlichkeiten abgeleitet
werden. Unser dritter Ansatz verfolgt eine andere Richtung. Wir
definieren eine Heuristik, die eine Testsuite ermittelt, welche die
unsere benutzungsorientierten Überdeckungskritierien optimiert. Wir
evaluieren diese Erweiterungen des benutzungsbasierten Testens in
zwei großen Fallstudien und demonstrieren dadurch den Wert unserer
Arbeit. Auf der anderen Seite stellen wir ein plattformunabhängiges
Framework zum benutzungsbasierten Testen, welches die Applikation
von benutzungsorientierten Techniken auf verschiedenen
eventgetriebenen Softwareplattformen erlaubt. Beispiele für
eventgetriebene Softwareplattformen sind Frameworks für GUIs, wie
zum Beispiel Qt oder Webanwendungsplattformen, wie zum Beispiel PHP
basierte Webseiten, welche auf einem Apache Webserver laufen. In
der Vergangenheit war die Forschung an benutzungsorientierten
Testmethoden auf einzelne eventgetriebene Softwareplattformen
beschränkt. Die Resultate mussten entweder von Hand durch
Neuimplementierungen auf andere Plattformen portiert werden oder
die Ergebnisse wurden bisher nicht übertragen. Unser Framework
stellt eine Lösung für dieses Problem dar und erlaubt einen
einfachen Transfer der Ergebnisse auf verschiedene eventgetriebene
Softwareplattformen. Der Ansatz, den wir verfolgen, basiert auf der
Idee, die benutzungsbasierten Testtechniken auf abstrakte Events
anzuwenden und zwischen abstrakten Events und plattformspezifischen
Events zu übersetzen. Um die Umsetzbarkeit unseres Frameworks zu
demonstrieren, haben wir eine Proof-of-Concept Implementierung des
Frameworks entwickelt.
Schlagwörter: Software Qualitätssicherung; Benutzungsbasiertes Testen; Benutzungsprofile; Eventgetriebene Software