Usage-based Testing of Event-driven Software

Steffen Herbold · eDiss (Georg-August-Universität Göttingen) · 2012

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.

Read the paper · More papers on PaperTik