Das Testen von Software folgt einem gemeinsamen Prozess. Zu den Aufgaben oder Schritten gehören die Definition der Testumgebung, die Entwicklung von Testfällen, das Schreiben von Skripten, die Analyse der Testergebnisse und das Einreichen von Fehlerberichten.
Das Testen kann zeitaufwändig sein. Für kleine Builds können manuelle Tests oder Ad-hoc-Tests ausreichend sein. Bei größeren Systemen werden jedoch häufig Tools zur Automatisierung von Aufgaben eingesetzt. Automatisierte Tests helfen Teams, verschiedene Szenarien zu implementieren, Differenzierungsmerkmale zu testen (z. B. das Verschieben von Komponenten in eine Cloud-Umgebung) und schnell Feedback darüber zu erhalten, was funktioniert und was nicht.
Ein guter Testansatz umfasst die Anwendungsprogrammierschnittstelle (API), die Benutzeroberfläche und die Systemebene. Je mehr Tests automatisiert sind und frühzeitig ausgeführt werden, desto besser. Einige Teams entwickeln interne Tools zur Testautomatisierung. Die Lösungen der Anbieter bieten jedoch Funktionen, mit denen sich wichtige Aufgaben der Testverwaltung rationalisieren lassen, z. B.:
Kontinuierliche Tests
Projektteams testen jeden Build, sobald er verfügbar ist. Diese Art von Softwaretests basiert auf der Testautomatisierung, die in den Bereitstellungsprozess integriert ist. Dadurch kann Software früher im Prozess in realistischen Testumgebungen validiert werden, was das Design verbessert und Risiken reduziert.
Konfigurationsmanagement
Unternehmen verwalten Testressourcen zentral und verfolgen, welche Software-Builds getestet werden sollen. Teams erhalten Zugriff auf Assets wie Code, Anforderungen, Designdokumente, Modelle, Testskripte und Testergebnisse. Gute Systeme umfassen Benutzerauthentifizierung und Prüfpfade, damit Teams Compliance-Anforderungen mit minimalem Verwaltungsaufwand erfüllen können.
Service-Virtualisierung
Testumgebungen sind möglicherweise nicht verfügbar, insbesondere zu Beginn der Codeentwicklung. Die Service-Virtualisierung simuliert die Dienste und Systeme, die noch fehlen oder noch nicht fertiggestellt sind, und ermöglicht es den Teams, Abhängigkeiten zu reduzieren und früher zu testen. Sie können eine Konfiguration wiederverwenden, bereitstellen und ändern, um verschiedene Szenarien zu testen, ohne die ursprüngliche Umgebung ändern zu müssen.
Defekt- und Fehlerverfolgung
Die Überwachung von Fehlern ist sowohl für Test- als auch für Entwicklungsteams wichtig, um die Qualität zu messen und zu verbessern. Mit automatisierten Tools können Teams Fehler verfolgen, ihren Umfang und ihre Auswirkungen messen und damit verbundene Probleme aufdecken.
Metriken und Berichterstellung
Berichte und Analysen ermöglichen den Teammitgliedern den Austausch von Status, Zielen und Testergebnissen. Fortschrittliche Tools integrieren Projektmetriken und präsentieren die Ergebnisse in einem Dashboard. Teams sehen schnell den allgemeinen Zustand eines Projekts und können Beziehungen zwischen Test-, Entwicklungs- und anderen Projektelementen überwachen.