Code Diggerは、PexをベースとしたらVisual Studio 2012の拡張機能であり、.NETコードの実行パスを解析することができる。Visual Studioのエディタからツールを実行したあとで表示された表から各行を解析することによりコードの振る舞いを理解することができる。
この拡張機能は先日MicrosoftのResearch in Software Engineering (RiSE)からリリースされており、計算と入出力ペアだけでなく、バグの位置、例外とアサーションの失敗を表示する。またこの拡張は、ポータブルクラスライブラリに存在するpublicの.NETコードのみで動作する。
Code diggerは、Pexエンジンと、体系的にコードのすべてのブランチを解析して、高いコードカバレッジを達成するためのテストスイートの生成を試みるMicrosoft ResearchのZ3制約ソルバーを使用している。
code diggerを動作させるためには、Visual Studio 2012でポータブルクラスライブラリを作成して、publicコードを作成し、コードエディタで右クリックして、Generate Inputs / Outputs Tableオプションを選択する必要がある。これであなたのコードのすべての分岐をカバーするパラメータ値の一覧をテーブルが表示される。
ステップ1
ステップ2
Code Diggerから生成された出力
"ポータブルクラスライブラリの探索を制限することにより、私たちはPexエンジンが理解できない特定のプラットフォームに依存する問題を回避します。私たちのゴールは、Visual Studio 2012でPexのすべての機能を利用可能にして、Fakesの代わりにMolesをサポートするが、この統合は現時点ではまだ準備ができていません。" とMicrosoftのPrincipal Research Software Design EngineerであるNikolai Tillmann氏は言う。
code diggerに含まれる機能は、Pex4Funでも探求することができる。