Flying Cat Penguin

ゆるゆる仕事、ソフトウェアテスティング関連のことについて綴ります。

「Property-Based Testing with PropEr, Erlang, and Elixir」(2019年)

とある方がQiitaで投稿していて、ひそかに気になっていた「プロパティベースドテスティング」の書籍です。

最初は、基本的な考えとしては、TDDなのか?、ランダムテストなのか?、コンコリックテスティングをベースにしたものか?と思いながら読みました。

参考文献も拝見してみると、プロパティベースドテスティングは以下のようなテストだそうです。

テストデータをランダムに半自動生成して、
その生成された全ての値について、
満たすべき性質を満たしているかテストする

また、ここでのプロパティとは下記の意味のようです。

プロパティ
 特定の入力が与えられると出力として期待される特性

考えとしては、ユニットテストだけでなく、システムテストでも十分応用できそうなやり方でした。
近年のAI技術を利用したテストツールはこのやり方がベースなのかなと思うくらいです。

本書は、ツールベースで説明しているので、実際には書籍のコードを実践しながら読み解いていく書籍でしたが、ツールはまだ触っておらず、ツール概要ぐらいしか理解できていない状況です。(汗)
pythonJavaでもツールは既に存在していて、試すことはできそうなので、近いうちにサンプルだけでも試してみようと思います。

参考
ACM Learning Center
Property based testing を試してみよう - Qiita
Property Based Testing でドメインロジックをテストする
PythonでProperty-based Testing - Qiita
JavaでProperty-Based testing その1 [JPopulator + Junit] - Qiita