検知器の故意ずれ検体は契約の制約と1対1で対応させる
テスト設計
eval
静的解析
品質ゲート
運用
原則
バリデータ、lint、パーサ、品質ゲートの検知力を確認するとき、「代表的な失敗をいくつか試す」だけでは、契約に書いた禁止事項、優先順位、競合条件の一部が検体から抜けやすい。契約の各制約に少なくとも一つの故意ずれ検体を対応付け、対応表に穴がないことを確認する。
構文を読む検知器では、直接呼び出しだけでなく、対象言語で意味が等価になる参照、別名化、束縛、分割代入、計算されたプロパティなどの迂回面も契約に応じて列挙する。型情報やreceiverを識別できない軽量検査なら、その限界を隠さず、意図的に過検知する範囲と代替手段を契約へ明記する。
検証は、各制約の故意ずれが期待した非ゼロ終了または診断になることに加え、正当なコードが誤検知されないことを別クラスで確認する。検体数ではなく、契約の制約との対応関係を検知力の基準にする。