Software-Testing in SAPUI5-Projekten

Das Testen spielt bei der Entwicklung einer Software, die sich durch hohe Stabilität und Wartbarkeit auszeichnen soll, eine entscheidende Rolle. Das Testing soll die Funktionsfähigkeit der Software sicherstellen und prüfen, ob alle definierten Anforderungen auch vollständig und korrekt implementiert wurden. In Projekten hat sich immer wieder gezeigt, dass das Testing zwischen 30 und 50 % der Entwicklungskosten ausmacht. Eine höhere Effizienz beim Testing bietet also ein großes Potenzial, die Kosten in der Softwareentwicklung zu reduzieren. In einer wissenschaftlichen Umfrage haben wir untersucht, wie es sich beim Software-Testing in SAPUI5 Projekten verhält.

Automatisierung mittels Testframeworks

Um Softwaretests auf eine effiziente Art und Weise durchzuführen, werden sie mit Hilfe von Testframeworks automatisiert, was den Entwicklern die regelmäßige Testdurchführung abnimmt. Testframeworks variieren in ihrer Eignung für verschiedene Anwendungsbereiche. Einige Testframeworks wie QUnit oder Jest konzentrieren sich auf das Testen einzelner Funktionen im Quellcode, während andere Testframeworks wie Selenium oder WDIO (Webdriver.IO) eine Software von der Benutzungsoberfläche aus testen. Aufgrund der Vielzahl der existierenden Testframeworks und ihrer spezifischen Eigenschaften stellt die Auswahl des (oder der) jeweils passenden Frameworks eine echte Herausforderung dar. Neben dem Test-/Anwendungsbereich ist hier vor allem die zugrunde liegende Technologie der zu testenden Software entscheidend.

Der folgende Beitrag fokussiert sich dabei auf das Web-Framework SAPUI5 und das Testing in SAPUI5-Projekten. SAP User Interface 5 ist eine flexible Entwicklungsumgebung für die Erstellung moderner, nutzerfreundlicher und responsiver Benutzeroberflächen für SAP Unternehmensanwendungen.

SAPUI5-Teststrategie

Die folgende Abbildung zeigt die für SAPUI5 angepasste Testpyramide. Sie umfasst Modul-, Komponenten- und Systemtests sowie manuelle Tests. Korrespondierend zu den Teststufen sind die jeweils von SAP empfohlenen Methoden bzw. Testframeworks dargestellt. Hierzu zählen neben den bereits in SAPUI5 integrierten Testframeworks wie QUnit und OPA5 auch externe Testframeworks wie WDI5 (UI5-Erweiterung für WDIO) und Selenium.

Umfrage zu Software-Testing in SAPUI5-Projekten

Im Rahmen einer Masterthesis in Kooperation mit der Hochschule Reutlingen haben wir eine wissenschaftliche Umfrage durchgeführt. Diese verfolgte zwei Ziele:

  • Es soll ein Überblick über den Stand des Testens in SAPUI5-Projekten erlangt werden
  • Die gängigsten Testframeworks je Teststufe in SAPUI5-Projekten sollen identifiziert werden

Über einen Zeitraum von 6 Wochen haben insgesamt 52 Personen teilgenommen.

Key Takeaways

  • Mehr als zwei Drittel der Teilnehmer mit SAPUI5-Erfahrung gaben an, noch nie mit Testframeworks in SAPUI5-Projekten gearbeitet zu haben
  • Tests werden in den meisten Fällen ohne Verbindung zum Backend durchgeführt
  • Die in SAPUI5 integrierten Testframeworks (QUnit, OPA5) werden am häufigsten von den Teilnehmern genutzt
  • Integrationstests werden am häufigsten umgesetzt

Zustand des Software-Testing in SAPUI5-Projekten

Im Rahmen der Umfrage stellte sich heraus, dass die Mehrheit (69 Prozent) der teilgenommenen SAPUI5-Entwickler keine Erfahrung mit Testframeworks beziehungsweise mit dem Software-Testing in SAPUI5-Projekten haben. Fehlendes Wissen im Umgang mit Testframeworks ist daher die erste Herausforderung, der man sich hinsichtlich der Verbesserung des Testings stellen muss. Im Gegensatz dazu führen nach einer Umfrage aus dem Jahr 2022, an welcher 3703 Personen teilnahmen, 80 Prozent der Frontend-Entwickler für mindestens eine der genannten Teststufen eigene Tests durch. Der Unterschied zwischen SAPUI5 und „gängigen“ Frontend-Frameworks hinsichtlich des Testings (31 % vs. 80 %) ist also erheblich.

Testframeworks für Modultests

Wie in der Abbildung zur SAPUI5-Teststrategie veranschaulicht, handelt es sich beim Modultest um die Teststufe, die eine Anwendung auf der niedrigsten und damit spezifischsten Ebene testet. Hierbei werden die funktionalen Einzelteile der zu entwickelnden Software durch den Entwickler isoliert getestet, um deren Funktionalität sicherzustellen. Die Umfrage ergab, dass in 57 Prozent der SAPUI5-Projekte mit Testerfahrung Modultests durchgeführt werden. Das am weitesten verbreitete Testframework für diese Teststufe ist QUnit, welches bereits in SAPUI5 integriert ist. Mocha und Selenium wurden weniger häufig genannt.

Anteil der Modultest beim Testing (SAPUI5 Entwicklung)

Testframeworks für Integrationstests

Nach dem Modultest folgt der Integrationstest als die nächsthöhere Abstraktionsstufe. Analog zur vorangegangenen Teststufe werden auch die Integrationstests von den Entwicklern selbst durchgeführt. Dabei wird sichergestellt, dass die sinnvolle Komposition der separat getesteten Programmkomponenten ein funktionsfähiges System ergibt. Die im Test inbegriffenen Komponenten müssen im Voraus die entsprechenden Modultests erfolgreich bestanden haben und somit isoliert fehlerfrei funktionieren. Zusätzlich erfordert der Integrationstest ein umfassendes Verständnis der bestehenden Abhängigkeiten zwischen den Komponenten zum Zeitpunkt der Durchführung. Insgesamt werden in 64 Prozent der Projekte Tests dieser Teststufe durchgeführt. Dabei wird ausschließlich OPA5 genutzt. OPA5 steht für One-Page-Acceptance-Test und testet die App von der Benutzungsoberfläche aus.

Anteil der Integrationstests in SAPUI5

Testframeworks für Systemtests

Ist das reibungslose Zusammenwirken der einzelnen Komponenten durch die Integrationstests sichergestellt, folgen die Systemtests. Diese Teststufe umfasst das ganzheitliche Testen des gesamten Systems gegen alle Anforderungen an die zu entwickelnde Software. Während der Systemtests liegt der Fokus also fast ausschließlich auf der funktionalen Sichtweise der zu untersuchenden Software. Im Gegensatz zu den vorherigen Teststufen spielt die interne Quellcodestruktur dabei keine Rolle mehr. Die Systemtests simulieren sozusagen die Rolle des späteren Nutzers. Eine Methode bei der Durchführung von Systemtests ist der sogenannte End-to-End-Test (E2E-Test). Diese Art der Tests bietet in Softwareprojekten einen erheblichen Mehrwert, da das gesamte Testsystem vom Frontend bis zum Backend getestet wird, was der späteren Nutzung durch Kunden in der Produktivumgebung am nächsten kommt. Aufgrund der Integration des Backends und den damit verbundenen Ladezeiten haben die einzelnen E2E-Tests im Vergleich zu anderen Testphasen, die von Entwicklern durchgeführt werden, die längste Dauer.

Mockdaten oder echte Daten beim Software-Testing in SAPUI5-Projekten

Außerdem wurden die Teilnehmer noch nach der Art der Testdaten bzw. ihrem Anteil bei den Systemtests gefragt und so die Teilnehmer in zwei Gruppen unterteilt. Zum einen die Gruppe derjenigen, die Testframeworks für Tests mit Mockdaten verwenden und zum anderen die Gruppe derjenigen, die Testframeworks für E2E-Tests mit Daten aus dem eigenen Backend nutzen. Tests, welche auf Mockdaten basieren, führen Entwickler laut der Umfrage in 43 Prozent der SAPUI5-Projekte durch. E2E-Tests mit echten Daten hingegen mit 29 Prozent erheblich seltener. Das beliebteste Testframeworks für Tests mit Mockdaten war unter den Umfrageteilnehmern OPA5 inklusive des Mock Servers, an zweiter Stelle folgte UIVeri5.

Software-Testing in SAPUI5-Projekten – Ergebnisse

Die Ergebnisse der Umfrage weisen direkt und indirekt auf deutliche Verbesserungspotenziale bei den Testpraktiken in SAPUI5-Projekten hin.

  • So haben über zwei Drittel der Teilnehmer noch keine Erfahrung mit Testframeworks.
  • Tests, die das Backend mit einbeziehen, sind unterrepräsentiert.
  • Nur geringer Anteil an E2E-Tests.

Letzteres basiert auf der Erkenntnis, dass die in SAPUI5 integrierten Testframeworks, nämlich QUnit und OPA5, bei den Teilnehmern besonders beliebt sind und am häufigsten genutzt werden. Dies weist darauf hin, dass wenig E2E-Tests geschrieben werden, da hierfür kein Testframework in SAPUI5 integriert ist und der Aufwand der Integration eines externes Testframeworks recht hoch ist. Insgesamt legen die Ergebnisse nahe, dass es in SAPUI5-Projekten noch Möglichkeiten gibt, Testpraktiken zu verbessern und die Testautomatisierung weiter zu fördern.

Optimierungspotenziale und Fazit

Die verstärkte Nutzung der vorhandenen integrierten Testframeworks, eine erweiterte Testabdeckung, die das Backend einbezieht und die Förderung eines stärkeren Bewusstseins für die Bedeutung von Tests können dazu beitragen, die Qualität, Stabilität und Zuverlässigkeit von SAPUI5-Anwendungen zu steigern. Durch eine umfassendere Teststrategie können Entwickler bessere Benutzererfahrungen bieten und das Vertrauen in ihre Anwendungen stärken.

Testmanagement bei QUANTO Solutions

Die höchstmögliche Qualität, Stabilität und Zuverlässigkeit der Software sind für essenzielle Anforderungen an unsere Arbeit. Im Testmanagement decken wir daher unterschiedliche Schlüsselbereiche in einem strukturierten Vorgehen ab, um auch komplexe Anwendungen reibungslos und auf einem hohen Niveau bereitzustellen. Dazu gehören …

  • Teststrategie und Planung: Die Entwicklung einer umfassenden Teststrategie, die Ziele, Methoden, Kriterien zur Erfüllung von Anforderungen aber auch Ressourcen definiert, ist der Ausgangspunkt. Die Planung legt den Rahmen für den gesamten Testprozess fest.
  • Ressourcenmanagement: Eine effiziente Ressourcenzuweisung, einschließlich qualifizierter Tester und spezialisierter Testumgebungen, ist essenziell, um die Anforderungen großer Projekte zu erfüllen.
  • Testumgebung & Testdaten: Durch die Einrichtung realitätsnaher Testumgebungen stellen wir konsistente Ergebnisse sicher und ermöglichen so – gemeinsam mit der Verwendung sinnvoller, „echter“ Testdaten – die Durchführung von umfassenden und realitätsnahen Testszenarien.
  • Testautomatisierung: Umfangreiche Anwendungen erfordern automatisierte Tests, um Wiederholbarkeit und Geschwindigkeit beim Testen sicherzustellen. Die Auswahl geeigneter Tools und die Implementierung automatisierter Testskripte sind daher Teil unserer Arbeit.
  • Risikobewertung: Die Identifikation und Bewertung von Risiken ermöglicht die Fokussierung auf kritische Bereiche. Ein risikobasierter Ansatz optimiert Testprioritäten und denkt auch Szenarien mit höherer Last mit.
  • Kontinuierliche Qualitätssicherung: Durch den gesamten Entwicklungsprozess hindurch führen wir kontinuierlich Tests durch, um frühzeitig Fehler zu identifizieren und zu beheben.
  • Dokumentation: Klare und aussagekräftige Berichte über Testergebnisse ermöglichen eine transparente Kommunikation zwischen unseren Teams und unseren Kunden.

Falls Sie weitere Details zu unserer Analyse oder zur Umfrage haben möchten oder mehr Informationen zu Optimierungsmöglichkeiten und unserem Testvorgehen benötigen, kontaktieren Sie uns gerne.

Tags