判定/条件カバレッジを提供するテスト ケースの数を示すツールはありますか?
例:
if(x>0)
if(x<=10 && y>0)
判定/条件カバレッジには 3 ケースで十分です。
if(x>0)
if(x<=10 || y>0)
判定/条件カバレッジには 4 ケースで十分です。
本当ですか?
おそらくそうではありません。* このような些細な状況以外では、考えられるケースの数を把握することは非常に困難です。
一方、テストで実際に実行されたコードの割合を追跡するコード カバレッジ ツールがあります。
はい、カバレッジを達成するためにテストケースを生成するツールがあります。数だけに興味がある場合は、それらがすべて揃ったら数えることができます。通常、生成されたテスト スイートには、少なくとも、各テストケースが (順番に) 追加されたときにカバレッジが改善されるというプロパティがあります。これらのツールは、機能するため、通常、達成するカバレッジ基準に関して柔軟です。それらはすべて、決定/条件のカバレッジを許可していると思います。
複雑で環境負荷の高いプログラムの多様なセットで高いカバレッジを達成するテストを自動的に生成できる、新しいシンボリック実行ツール KLEE を紹介します。
http://llvm.org/pubs/2008-12-OSDI-KLEE.htmlから
別のテストケース生成ツールはPathCrawler です
3 つ目は、 Microsoft で使用されている内部ツールSageです。
これらのツールが依存する手法の総称は、concolic testingです。Oli が彼の回答で指摘しているように、これらのツールが解決するのは難しい問題であるため、設計空間は非常に大きく、詳細はこれらのツール間で大きく異なります。