Eclipseでテスト ツール探し編
なんか外部テスト項目が数千項目、どんなにがんばっても4桁になるのは確実という死亡通告を受けているのでテスト自動化技術について検討中の御町です。
JUnitの緑バーはよいものですね。
JUnitはあくまでブラックボックス単体テストなんで、JUnitだけではカバレッジがわからんかったり、結合テストには向かなかったりします。というわけでいろいろ調べてみた。
EclEmma
JUnitなどと連携して、テストコードのカバレッジを測定するツールです。
インストールすると、実行ボタン、デバッグボタンの横にカバレッジボタンが出現します。ここからJavaアプリケーションとしてや、JUnitテストとして、TestNGとして実行することで、実行結果のカバレッジを測定します。
実行されなかったコードはハイライトされます。
カバレッジレポートは、HTMLやXML、プレーンテキストでエクスポートできます。
Cobertura
JUnitなどと連携してカバレッジを測定ツールです。Eclipse上で使う場合は、djUnitなどでGUIを付けたほうが使いやすいでしょう。
Coberturaの使い方は、野村総研のjcoverage(Cobertura)利用ガイドが非常にわかりやすいのでおすすめです。IBM develoloperWorksのCoberturaでテスト対象範囲を調べるもおすすめです。
なお、Coberturaは、jcoverage GPL版が放置状態にあるのに耐えられなくなった人々がjcoverageのバグ修正をしたことから生まれました。
djUnit
パッチの当たったjcoverageを同梱しています。
2つめの大きな機能は、Virtual Mock Objectsを利用したテスト。テスト時に、メソッドの戻り値を変更できます。これは、JVMを終了してしまうコードをスキップさせるといった用途がありますが、むろん、使いすぎると正しくテストできなくなります。
TestNG
JUnitは複雑すぎる!と考えた人々が作り出した、自称Next Generationのテストツールですが、JUnit4でJUnitはだいぶ簡潔に書けるようになりました。JUnit4と比較すると、豊富なアノテーション、柔軟さ、多機能さなどが特徴です。あと結合テストも視野に入れているので、JUnitのように「単体テストの集合」ではなく、依存関係なども考慮することができるとか。
単体テストをちょっとやりたいだけなら、JUnitで充分。
FIT
なんかこれすげくね?HTMLで表書いてテストコード書いたら結果レポートが出るという素敵ツール。
日本語に対応していればもっといいのに(Unicode基本の言語ならもしかして可能?)