title: Integration of Web Front-End Testing in an Acceptance Test Automation Framework for Distributed Systems within an Emergency Center Environment
Creators: name: Spendier, Thomas
Publisher: name: TU Wien
Year: 2023
Subjects: subject: Acceptance tests
subject: Distributed systems
subject: Selenium
subject: Software testing
subject: Web testing

description: Akzeptanztests werden verwendet, um die erforderliche Funktionalität eines Softwaresystems sicherzustellen. Sie werden durchgeführt, bevor das System in den Echtbetrieb geht. Das Durchführen von Akzeptanztests wird erschwert, wenn es sich bei dem zu testenden System (SUT) um ein verteiltes System handelt, d.h. es besteht aus mehreren Anwendungen, die miteinander interagieren. Dabei liegt die größte Herausforderung in der Synchronisation und der Administration des Testprozesses. Das Automatisieren von Akzeptanztests bei solchen Systemen kann sehr aufwändig sein, wenn es dabei keine strukturierte Vorgehensweise gibt. Einsatzleitsysteme für das Annehmen und Bearbeiten von Notrufen sind hoch verteilte und komplexe Systeme. Diese laufen üblicherweise in einer bereits vorhandenen Service-Infrastruktur, wie z.B. Telefonnetze, Radio-Kommunikationssysteme und Clients von Drittanbietern. Das Automatisieren von Akzeptanztests für Einsatzleitsysteme erfordert daher Simulation an unterschiedlichen Schnittstellen. Da es keine passende Automatisierungsunterstützung für das Testen von Einsatzleitsystemen gibt, hat Frequentis ein Framework entwickelt, mit welchem sich Akzeptanztests automatisieren lassen. Dieses Framework ermöglicht die Steuerung sämtlicher Kommunikation mit dem SUT, die für Akzeptanztests notwendig sind. Das Framework kann jedoch nur Java Swing Benutzeroberflächen ansprechen. Da immer mehr Anwendungen über Weboberflächen zugänglich werden, bietet Frequentis ebenfalls webbasierte Clients an, um das Annehmen und Bearbeiten von Notrufen im Browser zu ermöglichen. Daher muss das bestehende Testautomatisierungs-Framework ebenfalls Weboberflächen ansprechen können. Im Rahmen dieser Diplomarbeit haben wir dieses Framework erweitert, sodass Weboberflächen als Teil eines verteilten Systems angesprochen und getestet werden können. Wir sammelten die notwendigen Anforderungen und haben eine Softwarelösung, welche sich in das bestehende Framework integriert, entworfen und implementiert. Diese Erweiterung des Frameworks bietet eine Programmierschnittstelle (API) an, welche Testentwickler dazu animieren soll, das Page Object Pattern anzuwenden, sodass die erzeugten Akzeptanztests leichter wartbar sind. Unsere Erweiterung basiert auf dem Browser-Automatisierungstool Selenium. Wir führten eine Anforderungsanalyse durch, um die notwendigen Funktionen der Framework-Erweiterung zu bestimmen. Die Entwicklung und Integration der Erweiterung in das bestehende Framework haben wir mittels evolutionärem Prototyping durchgeführt. Zuletzt führten wir eine Fallstudie durch, um zu evaluieren, ob das erweiterte Testautomatisierungs-Framework den beabsichtigten Zweck erfüllt. Unsere Fallstudie hat gezeigt, dass die Erweiterung in zahlreichen Projekten innerhalb Frequentis eingesetzt wird und dass die angebotene API häufig verwendet wird.
description: Acceptance tests are used to ensure that a software system delivers its required functionality. They are performed on a system prior to its delivery to a live environment. Acceptance testing becomes a complex task when the system under test (SUT) is distributed, i.e. it consists of multiple applications interacting with each other. The main challenge lies in the synchronization and administration of the test process. Automating acceptance tests of such systems can result in high effort when not performed in a structured way. Control center solutions for handling and managing emergency calls are highly distributed and complex systems. They are usually embedded into an existing infrastructure of services (like telephony call lines, radio communication systems and 3rd party clients). Hence, automating acceptance tests for control center solutions requires simulation on multiple interfaces. As no suitable tool is available for testing control center solutions, Frequentis developed an acceptance test automation framework. With this framework, it is possible to control all necessary communications with the SUT in a uniform and simple way. However, it is only capable of addressing Java Swing based front-ends. As more and more applications become accessible via web interfaces, Frequentis’ control center solutions also offer web based clients to enable emergency call handling via a browser. Therefore the existing test automation framework is required to also address web front-ends. In this master thesis, we extended this framework so that web front-ends participating in a distributed system can be addressed and tested. We collected the necessary requirements, designed and implemented a solution which integrates into the existing framework. This framework extension offers an API to encourage test developers to apply the page object pattern in order to create maintainable tests. Our extension is based on the browser automation tool Selenium. We used requirements engineering to determine the necessary capabilities of the extension. Furthermore, we performed evolutionary prototyping to develop and integrate the extension into the existing framework. Eventually, we performed a case study to evaluate whether the extended test automation framework fits its intended purpose. Our study shows that the extension is used in numerous projects within Frequentis and that there is a high adoption rate of the offered API.