Zum Inhalt
wannacode

Die Rückverfolgbarkeitsmatrix

Kurz gesagt: Rückverfolgbarkeit ist die Verbindung zwischen Anforderung, Test und Fehler, in beide Richtungen. Die Matrix ist eine Tabelle: Die Anforderungen sind Zeilen, die Tests Spalten, und ein Häkchen sagt „dieser Test prüft diese Anforderung“. Eine leere Zeile ist eine nicht abgedeckte Anforderung, eine leere Spalte ein Test ohne Anforderung, und zwei Tests mit denselben Häkchen prüfen oft dasselbe.

Problem

Wer testet das Ablaufdatum des Codes?

Zwei Wochen vor der Herbstkampagne fragt das Marketing: „Der Code HERBST10 läuft am 31. Oktober ab. Hat jemand geprüft, dass er am 1. November nicht funktioniert?“

QA hat 40 Tests für die Gutscheincodes. Welcher prüft das Ablaufdatum? Jemand öffnet den Ordner und beginnt zu lesen. Eine Stunde später lautet die Antwort „wahrscheinlich keiner“. Fünf Tests prüfen die 10 %, drei die reduzierten Produkte, und für das Ablaufdatum gibt es keinen einzigen.

Die Tests waren da, aber niemand konnte sagen, was sie abdecken.

Die Idee

Rückverfolgbarkeit

Jede Anforderung sollte mindestens einen Test haben, der sie prüft. Jeder Test sollte einen Grund haben, also eine Anforderung. Und jeder Fehler ist das Scheitern eines Tests an einer Anforderung.

Die Verbindung zwischen diesen dreien heißt Rückverfolgbarkeit (traceability). Man verfolgt sie in beide Richtungen:

  • Vorwärts: von der Anforderung zu den Tests. Sie fragt „Wurde das geprüft?“. So hätte das Marketing in einer Minute eine Antwort gehabt.
  • Rückwärts: vom Test oder vom Fehler zur Anforderung. Sie fragt „Warum gibt es diesen Test?“ und „Welche Regel bricht dieser Fehler, und wie wichtig ist sie?“.

Die Anforderung „Ein Code hat ein Ablaufdatum“ hat eine Nummer, A-4. Der Test hat eine Nummer, T-12. Der Fehler hat eine Nummer, F-31. Rückverfolgbarkeit ist die Aufzeichnung, welche Nummer mit welcher verbunden ist.

Genauer, für Neugierige

ISTQB CTFL v4.0.1 (Abschnitt 1.4.4) nennt das Rückverfolgbarkeit zwischen der Testbasis (den Anforderungen, Stories, Kriterien) und der Testware (den Tests, Ergebnissen, Fehlern). Nach dem Lehrplan macht gute Rückverfolgbarkeit es möglich, die Abdeckung zu bewerten, unterstützt die Auswirkungsanalyse bei Änderungen, macht Berichte verständlicher und Audits einfacher.

Im BABOK v3 von IIBA ist das Verfolgen eine Aufgabe im Wissensbereich Requirements Life Cycle Management: Trace Requirements. Dort gibt es die Verbindungen auch zwischen den Anforderungen selbst: welche aus welcher abgeleitet ist (derive), welche von welcher abhängt (depends), welche Lösung welche Anforderung erfüllt (satisfy) und welcher Test sie bestätigt (validate). Hier betrachten wir hauptsächlich die letzte.

Auch IREB CPRE behandelt Rückverfolgbarkeit in seinem Kapitel über das Anforderungsmanagement: rückwärts zur Quelle (wer es verlangt hat und warum) und vorwärts zu dem, was daraus folgt (Entwurf, Code, Tests).

Die Idee

Die Matrix

Die einfachste Aufzeichnung ist eine Tabelle. Die Anforderungen sind Zeilen, die Tests Spalten, und ein Häkchen heißt „dieser Test prüft diese Anforderung“. Das ist die Rückverfolgbarkeitsmatrix (traceability matrix).

T-1 T-2 T-3 T-4
A-1 10 % Rabatt ✓ ✓
A-2 nicht für reduzierte Produkte ✓
A-3 eine bezahlte Bestellung ✓
A-4 Ablaufdatum
  • T-1: ein T-Shirt für 20,00 € mit HERBST10, 18,00 €.
  • T-2: ein T-Shirt für 20,00 € und reduzierte Jeans für 40,00 € mit HERBST10, der Rabatt beträgt 2,00 €.
  • T-3: ein zweiter Versuch mit demselben Code, „Der Code wurde bereits verwendet“.
  • T-4: ein Stammkunde, ein T-Shirt für 20,00 €, 19,00 €.

Die Tabelle liest sich in Sekunden. T-2 prüft zwei Anforderungen: Das ist normal. Die Zeile von A-4 ist leer. Die Spalte von T-4 auch. Das sind die zwei Löcher, die die Matrix sofort zeigt.

Fehler werden mit denselben Nummern verbunden: „F-31: Ein abgelaufener Code wird angenommen, A-4“. In der Arbeit lebt diese Tabelle im Werkzeug für Testmanagement oder in einer gewöhnlichen Tabellenkalkulation. Der Gedanke ist derselbe.

Die Idee

Was die Matrix zeigt

Drei Dinge sieht man auf einen Blick:

  • Eine nicht abgedeckte Anforderung: eine leere Zeile. Nichts prüft die Regel. Brichst du sie, fällt kein Test durch.
  • Ein Test ohne Anforderung: eine leere Spalte. Entweder fehlt die Anforderung in der Liste (der Shop hat die Treue, diese Liste aber nicht), oder der Test prüft etwas, das niemand verlangt hat. So oder so muss jemand entscheiden.
  • Doppelte Abdeckung: zwei Tests mit denselben Häkchen, die dasselbe prüfen. „Ein Warenkorb von 35,00 €“ und „Ein Warenkorb von 20,00 €“ folgen derselben Regel und geben dieselbe Antwort. Einer von ihnen bringt nichts Neues, wird aber gepflegt wie der andere.

Vorsicht bei Duplikaten: Gleiche Häkchen sind nur ein Hinweis. „Ein Warenkorb von 49,99 €“ steht in derselben Zeile wie „Ein Warenkorb von 20,00 €“, ist aber kein Duplikat. 49,99 € liegt knapp unter der Grenze, und dort wohnen die Fehler.

Der Anteil der Anforderungen mit mindestens einem Test ist die Anforderungsabdeckung (requirements coverage). Vier Anforderungen, drei mit einem Test: 75 %. In der dritten Lektion des Moduls siehst du, warum 100 % nicht „gut geprüft“ heißt.

Probier es aus

Lies die Matrix

1. Die Zeile von „A-4: Ein Code hat ein Ablaufdatum“ ist leer: kein einziges Häkchen. Was heißt das?
2. Die Spalte von „T-9: Mit Karte bezahlen: Die Bestellung wird bezahlt“ ist leer. Was ist der beste nächste Schritt?
3. Der Test „Ein T-Shirt für 20,00 € und reduzierte Jeans für 40,00 € mit HERBST10: Der Rabatt beträgt 2,00 €“ hat ein Häkchen in zwei Zeilen. Ist das ein Fehler?
4. Der Test „Ein Warenkorb von 120,00 €: Die Lieferung ist kostenlos“ fällt durch. Welche Anforderung ist laut Matrix betroffen?

Probier es aus

Die Matrix zum Gutscheincode

Markiere, welcher Test welche Anforderung prüft. Sieh dann, was ohne Verbindung geblieben ist.

Tests

  • T-1: Ein T-Shirt für 20,00 € mit HERBST10: 18,00 €.
  • T-2: Ein T-Shirt für 20,00 € und reduzierte Jeans für 40,00 € mit HERBST10: Der Rabatt beträgt 2,00 €.
  • T-3: Maria hat eine Bestellung mit HERBST10 bezahlt. In einer neuen Bestellung gibt sie HERBST10 ein: „Der Code wurde bereits verwendet“.
  • T-4: Ein Stammkunde, ein T-Shirt für 20,00 €: 19,00 €.
  • T-5: Maria hat HERBST10 eingegeben, aber nicht bezahlt. In einer neuen Bestellung funktioniert der Code.

Klicke auf die Zelle, in der der Test die Anforderung prüft; noch einmal, um die Verbindung zu entfernen. Die Pfeiltasten wechseln zwischen den Zellen, Leertaste oder Enter markiert.

AnforderungenT-1: Ein T-Shirt für 20,00 € mit HERBST10: 18,00 €.T-2: Ein T-Shirt für 20,00 € und reduzierte Jeans für 40,00 € mit HERBST10: Der Rabatt beträgt 2,00 €.T-3: Maria hat eine Bestellung mit HERBST10 bezahlt. In einer neuen Bestellung gibt sie HERBST10 ein: „Der Code wurde bereits verwendet“.T-4: Ein Stammkunde, ein T-Shirt für 20,00 €: 19,00 €.T-5: Maria hat HERBST10 eingegeben, aber nicht bezahlt. In einer neuen Bestellung funktioniert der Code.Abgedeckt durch
A-1 Ein Gutscheincode gibt 10 % Rabatt.0
A-2 Ein Gutscheincode gilt nicht für reduzierte Produkte.0
A-3 Ein Code kann in einer bezahlten Bestellung verwendet werden. Ein zweiter Versuch: „Der Code wurde bereits verwendet“.0
A-4 Ein Code hat ein Ablaufdatum. Danach: „Der Code ist abgelaufen“.0
Prüft00000

Die Idee

Wer die Matrix pflegt

Die Matrix ist nur etwas wert, wenn sie stimmt. Deshalb wird sie zusammen mit den Tests geschrieben, nicht am Ende:

  • Eine Anforderung bekommt eine Nummer, wenn sie in die Liste kommt.
  • Ein Test bekommt eine Nummer und ein Häkchen für seine Anforderung, wenn er geschrieben wird. Ein Test ohne Häkchen ist ein Signal, keine fertige Arbeit.
  • Ein Fehler bekommt die Nummer des Tests und der Anforderung, wenn er erfasst wird.

Die Nummern müssen stabil sein. Wird A-4 morgen zu A-7, geraten alle Verbindungen durcheinander. Deshalb wird eine Nummer nie wiederverwendet, auch wenn ihre Anforderung entfällt.

Die Analystin ist für die Anforderungen und ihre Nummern verantwortlich, QA für die Tests und ihre Verbindungen. Aber die Matrix gehört allen: Auch der Inhaber sieht an ihr, was geprüft wurde.

Übung

Die Matrix zur Lieferung

1. Lieferung und Warenkorb. Fünf Anforderungen, sieben Tests.

Markiere die Verbindungen. Finde dann die zwei Tests, die dasselbe prüfen, und markiere einen davon als überflüssig.

Tests

  • T-1: Ein Warenkorb von 49,99 €: Die Lieferung kostet 4,90 €.
  • T-2: Ein Warenkorb von 50,00 €: Die Lieferung ist kostenlos.
  • T-3: Der Warenkorb enthält 9 T-Shirts. 2 weitere hinzuzufügen wird abgelehnt, es bleiben 9.
  • T-4: Ein Warenkorb von 35,00 €: Die Lieferung kostet 4,90 €.
  • T-5: Ein Warenkorb ohne Produkte: Die Bestellung wird abgelehnt.
  • T-6: Ein Warenkorb von 20,00 €: Die Lieferung kostet 4,90 €.
  • T-7: Mit Karte bezahlen: Die Bestellung wird bezahlt.

Klicke auf die Zelle, in der der Test die Anforderung prüft; noch einmal, um die Verbindung zu entfernen. Die Pfeiltasten wechseln zwischen den Zellen, Leertaste oder Enter markiert.

AnforderungenT-1: Ein Warenkorb von 49,99 €: Die Lieferung kostet 4,90 €.T-2: Ein Warenkorb von 50,00 €: Die Lieferung ist kostenlos.T-3: Der Warenkorb enthält 9 T-Shirts. 2 weitere hinzuzufügen wird abgelehnt, es bleiben 9.T-4: Ein Warenkorb von 35,00 €: Die Lieferung kostet 4,90 €.T-5: Ein Warenkorb ohne Produkte: Die Bestellung wird abgelehnt.T-6: Ein Warenkorb von 20,00 €: Die Lieferung kostet 4,90 €.T-7: Mit Karte bezahlen: Die Bestellung wird bezahlt.Abgedeckt durch
A-1 Die Lieferung ist bei einer Bestellung ab 50,00 € einschließlich kostenlos.0
A-2 Unter 50,00 € kostet die Lieferung 4,90 €.0
A-3 Ein leerer Warenkorb kann nicht bestellt werden.0
A-4 Der Warenkorb enthält höchstens 10 Stück eines Produkts.0
A-5 Der Kunde sieht die Lieferkosten im Warenkorb vor dem Bezahlen.0
Prüft0000000
Welche Tests sind überflüssig (wiederholen einen anderen Test)?

Test

Teste dich

1. Was ist Rückverfolgbarkeit?
2. Sechs Anforderungen, fünf davon haben mindestens einen Test. Wie hoch ist die Anforderungsabdeckung?
3. Zwei Tests haben Häkchen in genau denselben Zeilen. Was ist am wahrscheinlichsten?
4. Was kann die Matrix NICHT zeigen?
5. Der Fehler „Die Lieferung kostet 4,90 € bei einer Bestellung von genau 50,00 €“ ist mit dem Test, der ihn gefunden hat, und mit der Anforderung verbunden. Warum?

Erstellt von Ivo Gergov im Rahmen der Kampagne von Evo Tech für zugängliche Programmierausbildung ·