私は FsCheck で遊んでいるので、この実装があります:
let add a b =
if a > 100
then failwith "nasty bug"
else a + b
...そしてこの FsCheck ベースのテスト:
fun (a:int) -> (add a 0) = a
|> Check.QuickThrowOnFailure
そして、テストは決して失敗しません。私の推測では、ランダム ジェネレーターによって生成される 100 個の値は 100 より大きくなることはありません。
値はもっと「ランダム」であるべきではありませんか?