Wiki / 4 von 7
Eine leere Prüfung ist nicht bestanden
Die Liste defekter Dinge ist nur dann leer, wenn jemand nachgesehen hat. „Wir haben nichts gesehen“ und „es gibt nichts“ sind zwei verschiedene Sätze.
Arithmetik, die lügt
Die Prüfung „Keine kritische Komponente ist defekt“ ist als Liste defekter Komponenten angelegt: leer bedeutet also in Ordnung. Leer kann sie jedoch aus zwei Gründen sein: Entweder wurde nachgesehen und nichts gefunden, oder es wurde überhaupt nicht nachgesehen. Das logische „für alle“ über einer leeren Menge ist wahr; genau diese Schulbucharithmetik verwandelt „nicht nachgesehen“ stillschweigend in „alles in Ordnung“.
Im eigenen System gemessen: Drei Prüfungen meldeten auf einem Rechner „bestanden“, obwohl dieser keinen einzigen ihrer Prüfgegenstände sehen konnte. Drei grüne Lichter ohne Aussage.
Das frischeste gefangene Exemplar: Unser eigenes Prüftor fiel innen durch, verließ den Lauf aber mit dem Code "bestanden" - das Aufräumen am Ende überschrieb das Verdikt. Verraten hat es nicht ein Alarm, sondern die fehlende letzte Erfolgszeile. Die Regel lautet nun: Ein grüner Exit-Code ohne sichtbaren Erfolgsbeweis ist kein "bestanden".
Die gezielte Korrektur
Eine leere Menge von Prüfgegenständen gilt weiterhin als „bestanden“: Wenn niemand einen täglichen Lauf zugesagt hat, kann ihn auch niemand versäumen, und dafür muss nichts geprüft werden.
„Nicht festgestellt“ ergibt nur eine leere Menge geprüfter Gegenstände: Es gibt Gegenstände, aber kein einziger wurde abgefragt. Die Unterscheidung dieser beiden Arten von Leere macht die Hälfte der gesamten Ehrlichkeit des Systems aus.
Derselbe Defekt bei Menschen
Eine Checkliste auf Papier hat denselben Fehler: Ein Häkchen kann nicht in Richtung „immer noch in Ordnung“ veralten. Vier abgehakte Punkte unserer Release-Checkliste erwiesen sich am Tag der Prüfung als falsch - und wurden weiterhin als abgeschlossen gelesen. Deshalb ist die Checkliste kein Gate mehr: Den Release-Zustand berechnet die Maschine jedes Mal neu für diesen Commit.