PropetyBasedTesting
Property Based Testing(PBT) はテスト手法の一種。この文脈ではユニットテストなどで普段書いているものを Example Based Testing と呼んでいる。
PBT のテスト方法
モデリング
間違っていないと確信できるほど単純なテスト用の実装を書き、それと比較する
実用するわけではないので、アルゴリズム的に非効率であってもかまわない。明瞭さが重視される
一般化したExample Based Testing
間違っていないと信じられる関数を組み合わせてテスト用の実装を書き、それと比較する
不変
常に真であるべき条件や事実を「不変」と呼ぶ
「不変」を確認する
例
店舗は、在庫以上の商品を販売することはできない
データベースにレコードを挿入したら、それを読み返しても存在確認できる
ソートされたリストは、常に前要素の値が現要素の値より小さい
対称
逆方向の動作をするものがある
エンコードとデコード、暗号化と復号化、圧縮と展開など
例えばエンコードしてからデコードして、元の値が得られることを確認する