【ぷろぱてぃべーすてすと】
プロパティベーステスト とは?
💡 「こういう性質を満たすはず」と宣言したら、反例を自動で探してくれるテスト
📌 このページのポイント
普通のテストと何が違うの?
ランダムって信頼できるの?
1回のテスト実行で100〜1000個のランダムデータを生成するから、人間が思いつかないエッジケースを発見できるんだ。空配列、巨大な数値、負の数、特殊文字…手動では書ききれないケースをカバーできるよ。
失敗したらどうなるの?
ここが賢いところで、「シュリンク」という機能が動くんだ。失敗した入力データを少しずつ小さくして、性質が破れる最小の反例を見つけてくれる。「1000要素の配列で失敗」→「実は[0, -1]の2要素で再現する」みたいに絞り込んでくれるよ。
どんなプロパティを書けばいいの?
JavaScriptでもできる?
例ベーステストはもう要らない?
まとめ:ざっくりこれだけ覚えればOK!
「プロパティベーステスト」って出てきたら「ランダムデータで性質を検証するテスト」と思えればだいたいOK!
📖 おまけ:英語の意味
「Property-Based Testing」 = 性質ベーステスト
💬 2000年にHaskellのQuickCheckライブラリとして登場したのが始まりだよ