Factoryはダッシュボード機能を持っており、テスト結果の失敗件数やカバレッジの遷移などの情報を一覧できるようになっています。Javaで実装された「Z80」と呼ばれるCPUのエミュレータのダッシュボードは、こちらで見ることができます。ダッシュボードでは、パッケージやクラスごとの集計や、開発者ごとの集計もされるので、いろいろな観点で分析できます。残念なことに、日本語環境で利用するとグラフのフォントが文字化けしてしまいます(2008年1月現在)。グラフ上の日本語文字が読めないだけで、グラフなどは正しく表示されているので実用上問題はなさそうですが、今後の改善に期待したいところです。Factoryで生成されたテストコードは、ソースコードからテストケースが生成されているため、すべてテストにパスした状態で生成されます。そのため、テストにパスしたからといって、テストが正しいとは限りません。バグも正しい仕様と見なしてしまうもともとのソースコードにバグがある場合、バグを正しい仕様と見なしてテストケースを生成するため、「仕様どおりのテストをしないテストケース」が生成されるからです。Factoryを利用した場合は、生成されたテストケースをレビューし、本当に仕様どおりの動作をしているかどうか確認する必要があります。仕様と異なるテストケースが生成されていた場合は、テストケースを修正してからテストされるコードを修正します。テストケースを修正し、次にテストされるコードを修正し、テストをパスするかどうか確認します。Factoryは必要なテストコードをすべて作成してくれるわけではないので、カバレッジが基準値に満たない場合は、テストコードを追加する必要があります。Factoryはあくまで、テストケースの生成を支援するツールなので、レビューやテストコードの追加を行うのを忘れないようにしましょう。Factoryのサーバにアップロードされるということに注意する必要があります。機密性の高いコードをアップロードすると情報漏洩(ろうえい)につながる恐れがあるので、利用には十分な注意が必要です。Factoryは、もともとAgitar社の研究プロジェクトであり、コンピュータサイエンスを研究する学生やテストの自動化の研究者にAgitar社のソリューションを試してもらうために限定的に公開されていましたが、現在ではすべての開発者にサービスが公開されています。Factoryでは、Agitar社が提供するテストソリューション「AgitarOne」の機能の一部を無償で提供しています。テストコードの自動生成ツールとしてAgitarOneの購入を検討する際に試験的に利用する場合や、ソースコードを隠ぺいする必要がないオープンソースのソフトウェアを開発する場合などには、便利です。Anti-Pattern)を検出するためのツールです。FactoryはAgitar社が提供していますが、Crap4jはAgitar社の研究者がオープンソースで公開しているプラグインです。あなたのソースコードにも潜んでいるかもしれない「CRAP」とは?「CRAP」とは、ソースコードが変更されたときに、変更された部分以外のコードの挙動をおかしくするリスクを増やすようなコードのパターンです。分岐が多岐にわたるような複雑なメソッドのコードを変更した場合、1個所変更すると、ほかの個所へ影響を及ぼす可能性が高くなります。自動化された回帰テストが十分用意されていない場合、メソッドのバグ修正などの変更時に、修正したいバグ以外の部分の挙動の変更を検知するのが難しくなります。まとめると、以下の2つのようなコードが変更時にバグを作り込むコードのパターンつまりCRAPに当たります。分岐が多岐にわたる複雑なメソッド回帰テストが十分に提供されていないメソッドあなたのソースコードは“保守”しやすいですか?それでは、実際にCrap4jを使ってみましょう。下記のアップデートサイトからプラグインをインストールしてください。Crap4j]を選択するだけです。実行すると、JUnitのテストが実行され、全体のCRAPが表示されます。全体のレポートメソッドごとの詳細なレポートを表示することもできます。メソッドごとのレポートコラム「CRAPの計算式」Crap4jでは、具体的に各メソッドのサイクロマティック複雑性(comp(m))とユニットテストによるカバレッジ(cov(m))を組み合わせた下記の式により、CRAPを計算します。comp(m)この式は、複雑性が高く、カバレッジが低い場合、値が大きくなります。複雑性が高くなればなるほど、カバレッジの影響が強くなります。複雑性が高いメソッドでは、コードを変更したときの副作用が表れやすいので、きっちりテストケースを作り込んでおく必要があります。Factoryとコードの保守のしやすさを計測するCrap4jを紹介しました。これらのツールをうまく利用すれば、ソフトウェアの品質を効率よく向上させることができます。どちらも手軽に試せるので、一度試してみてはいかがでしょうか。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。