Kapitel 2
Tipps, um Softwaretests in Agile Einfacher und Effektiver zu Gestalten
Erfahrene Agile-Entwickler und Qualitätssicherungsexperten (QA) wissen, dass sich der Umfang von Softwaretests im Laufe eines Projekt ständig erhöht und typischerweise von Unit-Tests bis Integration bis hin zu systemweiten Evaluierungen reicht.
Gleichzeitig wächst die Zahl der Tester und nimmt die Beteiligung der Kunden zu, was zu einem ähnlichen Anstieg der Schwierigkeit führt, Testfälle zu entwerfen und Testläufe zu verwalten. Diese Komplexität wird noch verstärkt, wenn Teams sowohl manuelle als auch automatisierte Softwaretests durchführen. Obwohl dieser zweigleisige Ansatz zeitaufwändiger ist, kann es aber zu präziseren Tests führen und funktioniert es gut in einer geografisch getrennten Umgebung.
Aus diesem Grund ist es entscheidend, die richtigen Elemente und Best Practices zu haben. Um die Wirkung und Effizienz Ihres Agile Testprozesses zu maximieren, müssen Sie:
Die richtigen Leute einbinden.
Identifizieren Sie zusätzlich zu den QA-Experten eine Gruppe potenzieller Endbenutzertester, die jede Stakeholdergruppe Ihres Projekts repräsentieren, um Sie bei der Produktbewertung während des gesamten Entwicklungszyklus, insbesondere bei UAT, zu unterstützen. Diese Endbenutzer können auch die Stories bewerten und gestalten, die die Entwicklungssprints definieren, wenn die Software kurz vor der Fertigstellung steht.
Die richtigen Agile Entwicklungstools verwenden.
Moderne Testmanagement-Plattformen machen das Entwerfen von Tests, das Aufzeichnen von Ergebnissen und die Kommunikation mit Testern einfach und personalisiert. Branchenführende Plattformen machen es einfach, Fehler und Probleme bis hin zur Lösung nachzuverfolgen und bieten Ihrem Unternehmen eine konsistente Struktur, um Tests zu organisieren, zu priorisieren und in Testläufen zu planen.
Bei der Entwicklung von Testfällen einen konsistenten Agile Testprozess verwenden.
Es gehört mehr dazu, einen aussagekräftigen Testfall zu entwerfen, als den Tester mit einer Ja-/Nein-Frage zu konfrontieren, ob eine bestimmte Funktionalität vorhanden ist. Beachten Sie beim Entwurf von Testfällen die Best Practices, indem Sie Folgendes einbeziehen:
- Die für die Validierung des Systems erforderlichen Dateneingaben.
- Die für die Bewertung der jeweiligen Funktion(en) oder des Arbeitsablaufs/der Arbeitsabläufe erforderlichen Testeraktionen.
- Alle Softwarefunktionen oder Datenvorbedingungen und erwartete Nachbedingungen.
- Eine logische Namenskonvention, die es ermöglicht, die Tests nach Modulen oder Testschwerpunkten zu organisieren.
Über spezielle Testumgebungen verfügen.
Testumgebungen bieten den Testern eine in sich geschlossene Umgebung, in der sie ihre Testfälle durchführen können, daher sollten Sie eine Produktionsumgebung so genau wie möglich replizieren. Versuchen Sie, Hardware- und Netzwerkkonfigurationen einzubeziehen, die denen eines potenziellen Endbenutzers entsprechen. Viele Unternehmen entscheiden sich für die Erstellung von Testumgebungen als virtualisierte Snapshots der Entwicklungsumgebung, um die administrative Einrichtung des Testprozesses zu vereinfachen.
Maßgeschneiderte Agile Testmethoden verwenden.
Obwohl die Verwendung der Agile Methodik beim Testen im Vergleich zum traditionellen Wasserfall-Ansatz relativ neu ist, haben Teams verschiedene Testmethoden entwickelt, um die Art und Weise, wie Tests während der Entwicklung durchgeführt und betrachtet werden können, neu zu definieren.
Je nach Bedarf können eine oder mehrere dieser Methoden verwendet werden:
- Test-Driven Development (TDD): Dies stellt sicher, dass die Software die Kundenanforderungen erfüllt, indem Testfälle erstellt werden, bevor eine Entwicklung durchgeführt wird. Die Entwicklung wird dann nach und nach umgesetzt, um die Testfälle zu bewältigen.
- Acceptance Test-Driven Development (ATDD): Hierbei handelt es sich um einen gemeinschaftlichen Prozess, bei dem Benutzer, Produktentwickler und der Produktmanager geschäftsfunktionsbezogene Teststandards erstellen, die sich an den Vorstellungen der Endbenutzer orientieren.
- Behavior-Driven Development (BDD): Diese Methode definiert die Produktfunktionalität, indem Spezifikationen oder Beispiele für bestimmte Softwareverhalten, Szenarien oder Ergebnisse erstellt werden, die durch den Code erzeugt werden müssen.
- Exploratory Testing: Diese Methode gibt Testern die Möglichkeit, ohne Testfälle durch Software in der Entwicklung zu navigieren, um Produktdesign und Funktionalität zu erkennen, zu untersuchen und zu bewerten.