In einem Beitrag der Reihe Representative Line vom 29.09.2026 beschreibt Remy Porter einen instabilen CI/CD-Build im Team von Nikolai M. Einer der Tests schlug bei ungefähr 0,5 Prozent der Durchläufe fehl. Das war lästig, reichte aber nicht aus, um das Management zu einer Untersuchung zu bewegen. Nikolai ging der Ursache schließlich selbst nach.
Assert.DoesNotContain("000", transactionId.ToString());Der Test verwendete Assert.DoesNotContain("000", transactionId.ToString()). Bei transactionId handelte es sich um eine GUID. Die Prüfung sollte eine leere UUID erkennen und beruhte auf der Annahme, dass drei Nullen in normaler Textdarstellung nicht direkt aufeinanderfolgen können. Nikolais Messung widerlegte das: Die Zeichenfolge erschien in 0,5527 Prozent der Fälle, also ungefähr einmal pro 181 Versuche.
Der Beitrag erklärt außerdem, dass Microsofts GUID-Implementierung laut Dokumentation als Hülle um UUID-Algorithmen dient und mehrere UUID-Varianten unterstützt. Für die Prüfung empfiehlt sich der direkte Vergleich mit GUID.Empty. Diese eingebaute Konstante steht für eine UUID, deren Bits sämtlich auf null gesetzt sind. Damit beschreibt der Test seine eigentliche Absicht eindeutig.




Kommentare
Noch keine Kommentare — schreib den ersten.
Starte die Diskussion
Kein Konto, kein Passwort nötig — gib einfach deine E-Mail-Adresse ein, wir senden dir einen einmaligen Anmelde-Link. Beim ersten Mal bist du damit automatisch angemeldet.
Deine Bewertung wird nach der Anmeldung automatisch übernommen.
Schau in dein Postfach
Wir haben einen Anmelde-Link an … gesendet. Öffne ihn auf diesem Gerät — dieser Tab meldet dich automatisch an.
Nichts angekommen? Wirf einen Blick in den Spam-Ordner — und markiere die Mail dort als „Kein Spam“, dann landet sie künftig direkt im Postfach.