代表的なライン:ユニークなテスト ノート

代表的なライン:ユニークなテスト

ニコライのチームは、CI/CDパイプラインで断続的なビルド失敗を経験しており、テストは約0.5%の確率で失敗していました。この煩わしさが、ニコライが独自に問題を調査するきっかけとなりました。失敗したテストは、UUIDアルゴリズムのラッパーであるMicrosoftのGUID実装に関連していました。具体的なアサーションはAssert.DoesNotContain("000", transactionId.ToString());であり、これはGUID文字列に"000"が含まれているかどうかをチェックしていました。これは空のUUIDを検出することを意図していましたが、「000」が決して有効なGUID文字列に出現しないという仮定は誤りでした。ニコライは、この文字列表現が0.5527%の頻度で発生すること、つまり約181回に1回の割合で発生することを発見しました。テストは設計が悪く、より堅牢なチェックで改善できる可能性がありました。より良いアプローチは、すべてのビットがゼロに設定されたUUIDを表す組み込みのGUID.Empty定数を利用することでしょう。著者は、開発者がそのような明白な定数を使用しない可能性があることに不満を表明しており、ドキュメントを参照すればその存在が明らかになる可能性が高いと示唆しています。この記事には、NuGetガイドの広告が含まれています。