Smart Commerce
Strategie01.06.2024

QA und Testautomatisierung - Whitepaper

Laden Sie jetzt unseren informativen Content herunter und lassen Sie sich inspirieren – es könnte der erste Schritt zu Ihrem nächsten Erfolg sein!

Patrick Lorenz
Patrick LorenzHead of Frontend Development

Softwarefehler in scheinbar unbedeutenden Variablen können verheerende Folgen haben. In einer Branche, die von Schnelligkeit und ständigem Wandel geprägt ist, wie es im E-Commerce der Fall ist, steigt die Bedeutung von umfassenden Tests und Qualitätssicherung. In diesem Whitepaper erfahren Sie, warum QA und Testautomatisierung essenziell für Ihren Erfolg im eCommerce sind.

1. Zwei schwere Katastrophen und eine einfache Lösung

Die europäische Trägerrakete Ariane 5 explodierte bei ihrem Erstflug im Jahr 1996 über dem Regenwald Französisch-Guyanas. Die Enttäuschung in der europäischen Weltraumbehorde war entsprechend gross. Denn die ersten 40 Sekunden des Flugs nach dem erfolgreichen Start waren einwandfrei verlaufen. Was man zu diesem Zeitpunkt noch nicht wusste: Eine bereits unnötige Variable im Navigationssystem der Rakete überschritt kurz nach dem Start ihren zulässigen Wert. Ein Detailfehler in der Datenkonversion - eine 64-Bit-Fliesskomma-Zahl, die die horizontale Geschwindigkeit der Rakete darstellte, wurde in eine 16-Bit-ganze Zahl umgewandelt und verursachte einen Überlauf mit gravierenden Folgen. Die Rakete erhielt falsche Positionsdaten und aktivierte den Selbstzerstoerungsmodus.

Ein prominenter Fehler im Nike Supply Chain Management aus dem Jahr 2000 ist ein weiteres Beispiel dafür. Das Unternehmen implementierte im Sommer des Jahres eine neue Supply Chain Management-Software. Doch am nächsten Tag konnte das global agierende Unternehmen keine Produkte mehr ausliefern. Der Grund: Probleme mit der neu implementierten Technologie. Neben Datenmigrationsproblemen hatte man zu viele Änderungen auf einmal durchgeführt, ohne diese ausreichend zu testen. Wie bei Nike einen Umsatzverlust von 100 Millionen Dollar und ein einbrechender Aktienkurs.

2. QA und Testautomatisierung

Die Software-Qualitätssicherung (auf Englisch Quality Assurance = QA) stellt mittels systematischen Testens sicher, dass ein Produkt oder eine Dienstleistung den festgelegten Qualitätsstandards entspricht. Sie ist heute in vielen Softwareprojekten integraler Bestandteil. Gute QA-Ingenieure identifizieren mittels Testverfahren nicht nur technische Fehler und Schwachstellen, sondern simulieren auch reale Nutzerverhalten und überprüfen die Reaktionen des Systems darauf, um mögliche Fehlerquellen im Vorfeld zu erkennen und zu beheben.

Bei der Testautomatisierung verwenden QA-Ingenieure bestimmte Softwaretools und -frameworks, um Testfälle automatisch auszuführen. Die Automatisierung bietet gegenüber dem manuellen Vorgehen mehrere Vorteile:

  • Effizienz: Automatisierte Tests lassen sich schnell und ohne menschliches Zutun durchführen. Dies ermöglicht den Teams, mehr Tests in kürzerer Zeit durchzuführen.
  • Zuverlässigkeit: Automatisierte Tests reduzieren das Risiko menschlicher Fehler und können präzise und konsistente Tests gewährleisten.
  • Wiederholbarkeit: Automatisierte Tests können einfach und beliebig oft wiederholt werden, was sie ideal für Regressionstests macht.
  • Skalierbarkeit: Sie können automatisierte Tests einfach skalieren, um grosse und komplexe Systeme zu testen.

Im eCommerce-Kontext sind QA-Prozesse und Testautomatisierung unerlässlich. Sie sichern die Integrität von Webseiten und Apps, erhöhen die Systemsicherheit und minimieren Fehlerquellen. Funktionen, die für Online-Shops von zentraler Bedeutung sind - wie Produktlisten, Warenkörbe, Checkouts und Zahlungssysteme - werden zuverlässig überwacht und getestet.

3. Wer testet der ...

  • Erhöht die Kundenzufriedenheit: Ein systematisches Überprüfen der Softwarequalität von Anfang an garantiert eine hohe Kundenzufriedenheit.
  • Bestätigt die Produktqualität (unabhängig): QA bietet eine unabhängige und objektive Überprüfung der Qualität des Produkts.
  • Verkürzt die Produkteinführungszeit: Durch frühzeitiges Identifizieren und Beheben von Fehlern beschleunigt die Qualitätssicherung den Entwicklungsprozess.
  • Reduziert den Wartungsaufwand: Ein konsequentes Augenmerk auf Qualität verringert langfristig den Wartungs- und Supportaufwand.
  • Spart Ressourcen wie Kapazitäten der internen IT-Teams: Mit einem dedizierten QA-Team können sich IT-Mitarbeiter effizienter auf ihre primären Aufgaben konzentrieren.
  • Verringert Projektrisiken wie Budgetüberschreitung: Ein solides QA-Framework minimiert das Risiko von unerwarteten Projektverzögerungen und Budgetüberschreitungen.
  • Reduziert Kosten: Durch das frühzeitige Erkennen von Fehlern im Entwicklungsprozess werden vermeidbare Kosten für spätere Fehlerbehebungen eingespart.

4. QA-Testarten (Kosten/Geschwindigkeit vs. Anforderungen)

QA Experten setzen je nach Anwendungsfall und -ort (Backend/Frontend) unterschiedliche Testformen ein. Für welchen Test man sich entscheidet, hängt auch von den gegebenen Ressourcen wie Zeit und Budget ab.

GUI-Level Testautomatisierung (QA)

Tests, die auf der grafischen Benutzeroberfläche (GUI) eines Systems ausgeführt werden, simulieren das tatsächliche Verhalten eines Benutzers und überprüfen, ob das System wie erwartet funktioniert. GUI-Tests können sowohl manuell als auch automatisiert durchgeführt werden. Bei der Automatisierung werden meist Tools verwendet, die Benutzeraktionen wie Klicks oder Tastatureingaben aufzeichnen und wiederholen können. GUI-Tests lassen sich den Systemtests zuordnen.

API Schnittstellentests (Devs/QA)

API-Tests konzentrieren sich auf das Überprüfen der korrekten Funktion der Anwendungsprogrammierschnittstellen (APIs). Im Gegensatz zu GUI-Tests, die das Frontend einer Anwendung testen, fokussieren sich API-Tests auf das Backend. Sie überwachen, ob die APIs korrekt arbeiten, ob sie die erwarteten Antworten liefern und ob sie ordnungsgemäss mit anderen Komponenten des Systems interagieren. API-Tests lassen sich den Integrationstests zuordnen.

Unit-Tests (Devs)

Unit-Tests sind eine Form von White-Box-Tests, die auf die kleinsten testbaren Teile einer Anwendung, wie Funktionen oder Methoden, abzielen. Sie prüfen, ob diese kleinen Einheiten korrekt funktionieren. Unit-Tests sind oft ein integraler Bestandteil des Entwicklungsprozesses und können automatisiert werden, um bei jeder Änderung am Code ausgeführt zu werden. Sie sind unter den Testverfahren die schnellste Lösung und kosten am wenigsten Geld.

5. Aus der Praxis: Projektbeispiel Theo FOERCH GmbH

Ein gutes Praxisbeispiel für die Vorteile eines gut integrierten QA-Prozesses ist das eCommerce-Projekt der Theo FOERCH GmbH. Seit 2021 profitiert dieses Projekt von der Expertise eines QA-Teams von Smart Commerce. Das QA-Team konnte den Testaufwand im Projekt signifikant reduzieren. Durch strategische Automatisierung dauern die Tests nur noch wenige Stunden. Vor der Implementierung der automatisierten Regressionstests war das Testen eines gesamten Releases ein zeitaufwendiger Prozess. Foerch-Mitarbeiter benötigten bis zu einer Woche manuellen Testaufwand. Jetzt kann das gleiche Release, dank der Automatisierung, in nur 6 Stunden geprüft werden.

Mit Stand von Q3 2023 betreibt die Theo FOERCH GmbH fünf Ländershops: Deutschland, Österreich, Italien, Spanien und Belgien. Die von Smart Commerce erstellten Testsuiten sind so konzipiert, dass sie mehrere Länder gleichzeitig testen können. Obwohl in Zukunft über 20 Ländershops geplant sind, bleibt der Testaufwand dank der ausgefeilten Automatisierung gering.

5.1 Standard-Projektroadmap

Das Theo FOERCH GmbH eCommerce Projekt zeigt, wie eine übliche Roadmap für die Implementierung eines nachhaltigen QA-Prozesses aussieht. Es zeigt auch, wie ein optimaler Automatisierungsgrad erreicht wird. Von einem Anfangsworkshop bis zum laufenden Betrieb wurden alle üblichen Schritte gemeinsam geplant.

  1. 1Anforderungsaufnahmeworkshop: Im interaktiven Kick-Off-Workshop arbeitet das QA-Team mit den Entwicklerteams und Stakeholdern zusammen. Sie erfassen die spezifischen Anforderungen und Ziele.
  2. 2Projektplanungsphase: Basierend auf den Anforderungen evaluiert und bestimmt das Team die geeigneten Tools für das Testen.
  3. 3QA-Projekt-Workflow: Die QA-Ingenieure sind Teil des Entwicklungsteams und sowohl bei der Konzeption als auch bei den Refinements beteiligt.
  4. 4Planung und Dokumentation des Testfalls: Das QA Team erstellt und dokumentiert alle Tests in einem geeigneten Tool.
  5. 5Entwicklung des Testfalls: Die vorher definierten Tests werden nun entwickelt.
  6. 6Ausführen der Test-Suites gegen die zu testenden Clients.
  7. 7Reporting: Nach dem Testlauf werden die Fehler ausgewertet und ggf. als Bugs reportet.
  8. 8Wartung der Testfälle: Wenn sich etwas am zu testenden System ändert, müssen die bestehenden Tests ebenfalls angepasst werden.

6. KPIs der Testautomatisierung

Auch im QA-Prozess ist die Messbarkeit der eingesetzten Lösungen für den Projekterfolg ausschlaggebend. Die Herausforderung besteht darin, dass QA eher ein Performance-Indikator für die Effizienz des Entwicklungsprozesses ist. Dennoch gibt es einige Parameter, anhand derer man die Arbeit eines QA-Teams beurteilen kann:

  • Anzahl der Testfälle: Die Gesamtzahl der erstellten und ausgeführten Testfälle als Indikator für den Umfang der Qualitätssicherungsbemühungen.
  • Prozentsatz der bestandenen Tests: Der Prozentsatz der erfolgreich abgeschlossenen Testfälle gegenüber der Gesamtzahl als Hinweis auf die Qualität der Software.
  • Codeabdeckung: Eine höhere Codeabdeckung weist auf eine umfassendere Qualitätssicherung hin.
  • Prozentsatz der automatisierten Tests: Ein höherer Anteil automatisierter Tests deutet auf verbesserte Effizienz und Konsistenz.
  • Zahl der Regressionen: Misst, wie oft bereits behobene Fehler erneut auftreten.
  • Anzahl der offenen Fehler: Diese Zahl sollte im Laufe des Projekts abnehmen.

7. Was hätte sein können

Komponententests: Ariane 5 - Mit einem effektiven Einsatz von Komponententests hätte die ESA den Fehler in der Ariane 5 rechtzeitig identifizieren können. Komponententests fokussieren sich auf die kleinste Einheit eines Software-Systems. Im Fall der Ariane 5 hätte ein Komponententest, der die Funktion untersucht, welche die Geschwindigkeitsdaten von 64-Bit-Fliesskomma auf 16-Bit-Ganzzahl umgewandelt hat, den Überlauf-Fehler frühzeitig entdeckt.

Nike Supply Chain Management - Mit einer robusten Qualitätssicherungs- und Testautomatisierungsstrategie hätte auch Nike die Probleme mit dem neuen Supply-Chain-Management-System vor dessen Implementierung entdeckt. Ein Systemtest hätte die gesamte Software als ein integriertes Ganzes getestet, um sicherzustellen, dass alle Komponenten korrekt miteinander interagieren.

Es bleibt also nur die Frage: Testen Sie schon oder warten Sie noch auf den nächsten grossen Fehler?

WhitepaperQA und Testautomatisierung in der Praxis
Jetzt herunterladen