title: Enhancing Page Object Maintainability in Modern Automated Software Testing Life Cycles
Creators: name: Hafner, Christoph
Publisher: name: TU Wien
Year: 2020
Subjects: subject: Software testen
subject: Benutzeroberflächen Tests
subject: Page Object Entwurfsmuster
subject: Expertenevaluierung
subject: software testing
subject: user interface testing
subject: page object pattern
subject: expert evaluation

description: Das Testen von Software nimmt einen entscheidenden Teil des Software-Entwicklungsprozesses ein. Abhängig von der Art der geschriebenen Software werden verschiedene Testtechniken angewandt,um die Software bestmöglich zu testen. Das Testen von Benutzeroberflächen, als Teil von Systemtests, kann entweder automatisch oder manuell erfolgen. Während der manuelle Ansatz die Möglichkeit bietet, schnell auf Änderungen in der Benutzeroberfläche zu reagieren, erlaubt es der automatische Ansatz, die Benutzeroberfläche in verschiedenen Umfeldern ohne viel manuelle Arbeitsleistung zu testen. Um eine wartbare Testumgebung im automatischen Ansatz zu erhalten, wird das Page Object-Entwurfsmuster verwendet, welches eine Abstraktionsschicht zwischen dem Test und dem getesteten System formt. Da die Identifizierung von Web-Elementen jedoch sehr statisch ist und bereits durch kleine Änderungen in der Benutzeroberfläche falsch oder ungültig sein kann, müssen Page Objects während des Entwicklungsprozesses oft verifiziert und gegebenenfalls adaptiert werden, was in sich wiederholenden Aufgaben resultiert. Trotz verschiedener bestehender Programme, welche dieses Problem zu lösen versuchen, existiert keine Lösung, welche bestehende Page Objects wiederverwenden und die Verifizierung dieser automatisch durchführen kann. Basierend auf bestehenden Lösungen und sogenannten "Best Practices" der Software-Entwicklungwerden in dieser Masterarbeit Anforderungen an ein Programm definiert, welches Tester in der Evaluierung und Adaptierung von Page Objects unterstützt und wiederkehrende Aufgaben reduziert. Um diese Anforderungen im Zuge einer Expertenevaluierung zu verifizieren und zusätzlich zu verbessern, wurde ein Prototyp entwickelt, welcher auf diesen Anforderungen aufbaut. Das Ergebnis dieser Evaluierung ist, dass, obwohl der Prototyp - aufgrund von nicht unterstützten Programmiersprachen oder Page Objekt Struktur - nicht für jeden Experten verwendbar ist, die Anforderungen bestätigt und akzeptiert wurden und großes Potential in einem Programm mit diesen gesehen wurde, besonders für Anfänger im Bereich des Testens von Software. Eine Adaptierung des Prototyps für weitere Programmiersprachen sowie eine bessere Integration in das Projekt werden in dieser Masterarbeit als zukünftige Schritte in diesem Themenbereich vorgeschlagen.
description: Software testing has taken a crucial part in the software development life cycle in recent years. Depending on the type of software written, different approaches are used to achieve satisfying results. User interface tests, which are executed as a system test – i.e. testing the whole system at once –, can be achieved in either an automated or manual approach. While the manual approach allows for easy adaption to changes in the user interface, the automatic approach allows for easily testing the user interface in different environments regularly without the need for much manpower.In order to achieve a maintainable approach on automated tests, the page object design pattern is used, which provides an abstraction layer between the test and the system under test. However, as identification methods for web elements are very static and can be wrong or invalid even after small changes on the user interface, page objects need to be verified and potentially adapted often during the development life cycle, requiring a lot of repeating and time-consuming tasks doing so. While there are tools available which try to solve this problem, no tool allows for reusing existing page objects and verify their validity automatically. Based on existing state-of-the-art approaches and using best practices in software development, this thesis proposes requirements for a tool which supports the tester in the evaluation and adaption of page objects and tries to reduce the amount of repeating tasks. In order to verify the defined requirements and to refine them, a prototype taking the requirements into account is developed and used for an expert evaluation. The result of this evaluation is that, while the prototype is not ready to support every expert in their daily work – due to differences in programming languages or page object styles used –, they accept all the defined requirements and see a great potential in such a tool, especially for new or young software testers.An adaption of the prototype for further programming languages and a deeper integration into the project are future work tasks proposed in this thesis.