より強いテスト入力生成のためのConcolic実行
最近Property-Based Testing (PBT) が普及しており、私も業務で proptest を使っています。PBTの利点は広く解説されているので割愛しますが、個人的には次の問題があると感じています。
Propertyを考えれるケースが限られる
テストケースの生成能力が低い
特に私が主に扱うソフトウェアである数値計算ライブラリにおいては、前者は数学的なドメイン知識からある程度は補助できるものの、後者が大きな問題となっています。
今回は後者に関して、Concolic Execution (Concrete + Symbolic Execution) という技術を紹介したい...