Teststufen
Kurz gesagt: Testen ist nicht eine Sache. Auf der Komponentenstufe wird eine Regel für sich geprüft, bei der Integration, ob die Teile miteinander sprechen, auf der Systemstufe das ganze Verhalten, und bei der Abnahme, ob es das ist, was das Geschäft will. Jede Stufe fängt Fehler, die die anderen übersehen.
Problem
Alles besteht, und das Geld stimmt nicht
Die Entwickler des Shops haben 400 Tests für Lieferung und Gutscheincode. Alle bestehen. Der Tester ist den ganzen Bestellpfad durchgegangen: Warenkorb, Lieferung, Zahlung. Alles in Ordnung.
Am ersten Tag nach dem Start überweist die Bank 0,50 € für eine Bestellung von 50,00 €. Der Warenkorb schickt den Gesamtbetrag in Euro, und der Zahlungsdienst liest ihn in Cent. Jeder Teil ist für sich richtig. Der Fehler liegt dazwischen, und kein Test schaut dorthin.
Die Idee
Vier Stufen, vier Fragen
Getestet wird auf mehreren Teststufen. Jede stellt eine andere Frage und fängt andere Fehler:
| Stufe | Die Frage | Im Shop |
|---|---|---|
| Komponente | Ist eine Regel für sich richtig? | Die Lieferfunktion bei 49,99 €, 50,00 € und 50,01 € |
| Integration | Sprechen die Teile richtig miteinander? | Der Warenkorb und der Zahlungsdienst: Euro oder Cent? |
| System | Tut das Ganze, was beschrieben ist? | Der ganze Pfad: Warenkorb, Gutscheincode, Lieferung, Zahlung, E-Mail |
| Abnahme | Ist das, was das Geschäft will? Lässt es sich nutzen? | Die Buchhaltung prüft den Gutscheinbericht |
Die Stufen sind nicht besser oder schlechter. Sie sind verschiedene Netze mit verschiedenen Löchern.
Genauer, für Neugierige
Der ISTQB CTFL v4.0.1 beschreibt die Stufen in Abschnitt 2.2.1 und teilt sie in fünf: Komponententest (auch Unit-Test genannt), Komponentenintegrationstest, Systemtest, Systemintegrationstest (der Shop mit dem Paketdienst, mit der Bank) und Abnahmetest. Für jede Stufe nennt der Lehrplan das Testobjekt, die Ziele, die Testbasis (woher die Testfälle kommen), typische Fehlerzustände und wer verantwortlich ist.
Die Idee
Je tiefer, desto genauer zeigt sie hin
Ein Komponententest ruft eine Funktion mit 50,00 € auf und sieht 4,90 €. Du weißt genau, wo der Fehler steckt. Er läuft in Millisekunden und braucht weder Datenbank noch Browser noch Bank.
Ein Systemtest sieht denselben Fehler, aber durch den ganzen Shop. Wenn er fehlschlägt, weißt du noch nicht, ob es die Lieferung ist, der Gutscheincode oder die Seite. Und manche Fälle sind dort schwer zu erreichen: Um 49,99 € zu prüfen, musst du einen Warenkorb für genau so viel füllen.
Das Umgekehrte gilt auch. Ein Komponententest sieht nicht, dass der Warenkorb und die Bank in verschiedenen Einheiten rechnen. Deshalb brauchst du beide Stufen.
Genauer, für Neugierige
Komponententests schreiben meist Entwickler, oft vor dem Code (TDD). Wenn du einen der Programmierkurse gemacht hast, hast du sie dort als Tests mit JUnit, xUnit, pytest oder node:test gesehen. Hier schreiben wir keinen Code: Im Modul über Automatisierung siehst du dieselben Regeln als Komponententests in den vier Sprachen.
Probier es aus
Welche Stufe fängt es?
Die Idee
Abnahme ist nicht eine Sache
Der Abnahmetest fragt „lässt es sich nutzen“, aber „nutzen“ heißt für verschiedene Menschen Verschiedenes. Deshalb gibt es mehrere Arten:
- Benutzerabnahmetest (UAT): Die Menschen, die das System nutzen werden, erledigen damit ihre echte Arbeit. Die Buchhalterin lässt den Monatsbericht laufen.
- Betrieblicher Abnahmetest: Die Menschen, die das System am Laufen halten werden, prüfen Sicherung, Wiederherstellung, Überwachung und Updates.
- Vertraglich und regulatorisch: Der Maßstab ist der Vertrag mit dem Auftraggeber oder das Gesetz. Werden Cookie-Einwilligungen gespeichert? Ist alles da, was der Vertrag aufzählt?
- Alpha und Beta: Menschen außerhalb des Teams probieren das Produkt aus. Alpha findet in der Umgebung des Entwicklers statt, Beta auf der Seite der Kunden, auf ihren Handys und in ihren Netzen.
Der Maßstab für die Abnahme sind die Akzeptanzkriterien der Stories. Deshalb schreiben wir sie gemeinsam mit dem Geschäft, vor dem Code.
Probier es aus
Welche Art von Abnahme?
Die Idee
Die Stufe ist das Ziel, nicht die Zeit
Man stellt sich die Stufen leicht als Treppe vor: erst Komponente, dann Integration, am Ende die Abnahme. Im Wasserfallmodell ist es oft so. Aber in einem agilen Team können alle vier für eine Story in einer Woche stattfinden: Der Entwickler schreibt einen Komponententest, QA lässt das Szenario auf dem System laufen, und der Product Owner nimmt es bei der Demo ab.
Eine Stufe erkennst du an ihrem Ziel: was du prüfst und wogegen. Nicht daran, wann oder von wem.
Genauer, für Neugierige
Stufen gehören zu den Testarten (die nächste Lektion). Funktionales und nichtfunktionales Testen gibt es auf jeder Stufe: Die Performance einer Funktion liegt auf der Komponentenstufe, die Performance des ganzen Shops mit 200 Kunden auf der Systemstufe.
Übung
Stufen im Shop
1. Welche Stufe fängt den Fehler? Wähle für jeden Fehler die niedrigste Stufe, auf der er sich zeigt.
Test
Teste dich
Verwandte Lektionen
Abschnitt „Verwandte Lektionen“- Baut auf: Warum Programme versagen · Wer mitzureden hat · Was eine Story ist · Akzeptanzkriterien
- Geht weiter in: Testarten · Testen im Lebenszyklus · Der Plan und risikobasiertes Testen · Fehler und der Fehlerbericht
- Aufgaben zum Thema: Stufen, Arten und Prozess