テスト関連プラグイン  vol.1
はじめに <ul><li>テスト(主に単体)で使えるプラグインたちをデモを交えて簡単に紹介 </li></ul><ul><li>役に立つツールがある・・・かも!? </li></ul>
自己紹介 <ul><li>HN </li></ul><ul><ul><li>ykhr だったり ykhr-kokko だったり </li></ul></ul><ul><li>お仕事 </li></ul><ul><ul><li>Java での開発...
もくじ <ul><li>実行系 </li></ul><ul><li>カバレッジ系 </li></ul><ul><li>テスト実行支援系 </li></ul><ul><li>静的テスト系 </li></ul><ul><li>小物系 </li></...
<ul><li>実行系 </li></ul><ul><li>カバレッジ系 </li></ul><ul><li>テスト実行支援系 </li></ul><ul><li>静的テスト系 </li></ul><ul><li>小物系 </li></ul><...
JUnit  プラグイン <ul><li>JUnit 関連にまつわるプラグイン。 </li></ul><ul><li>Eclipse に始めから入ってるし、知らない人はいないよね? </li></ul><ul><li>機能(主なもの) </li...
TestNG <ul><li>TestNG のプラグイン版。 </li></ul><ul><li>http://testng.org/doc/eclipse.html </li></ul><ul><li>機能 </li></ul><ul><ul...
<ul><li>実行系 </li></ul><ul><li>カバレッジ系 </li></ul><ul><li>テスト実行支援系 </li></ul><ul><li>静的テスト系 </li></ul><ul><li>小物系 </li></ul><...
djUnit <ul><li>カバレッジを計測するツール。 </li></ul><ul><li>http://works.dgic.co.jp/djwiki/Viewpage.do?pid=@646A556E6974 </li></ul><ul...
EclEmma <ul><li>カバレッジツール EMMA のプラグイン版。 </li></ul><ul><li>http://www.eclemma.org/ </li></ul><ul><li>ブランチカバレッジの値が出ない( EMMA 自...
<ul><li>実行系 </li></ul><ul><li>カバレッジ系 </li></ul><ul><li>テスト実行支援系 </li></ul><ul><li>静的テスト系 </li></ul><ul><li>小物系 </li></ul><...
Quick JUnit <ul><li>実装コードとテストコードの切り替えを簡単に行うためのプラグイン。 </li></ul><ul><li>http://quick-junit.sourceforge.jp/ </li></ul><ul><l...
Continuous Testing <ul><li>テストケースを保存したタイミングでテストを実行するプラグイン。 </li></ul><ul><ul><li>失敗したテストケースにはエラーのマーカーが付加される。 </li></ul></u...
<ul><li>実行系 </li></ul><ul><li>カバレッジ系 </li></ul><ul><li>テスト実行支援系 </li></ul><ul><li>静的テスト系 </li></ul><ul><li>小物系 </li></ul><...
静的テスト系 <ul><li>静的テストも立派なテスト!というわけで </li></ul><ul><ul><li>Checkstyle </li></ul></ul><ul><ul><li>FindBugs </li></ul></ul><ul...
各ツールの違い(ごく簡単に) <ul><li>Checkstyle </li></ul><ul><ul><li>設計に関する問題、コードのフォーマットに関する問題のチェックが多い。 </li></ul></ul><ul><ul><li>ソースフ...
<ul><li>実行系 </li></ul><ul><li>カバレッジ系 </li></ul><ul><li>テスト実行支援系 </li></ul><ul><li>静的テスト系 </li></ul><ul><li>小物系 </li></ul><...
QuickREx <ul><li>正規表現のテスト用。 </li></ul><ul><li>正規表現のライブラリ(サンプル集みたいなもの)が付いている。 </li></ul>
XPath-Developer  <ul><li>XPath のテスト用。 </li></ul><ul><li>ちょっとしたコード補完もできる。 </li></ul><ul><li>QuickREx と同じプロジェクト。 </li></ul><...
スクラップページ(w <ul><li>Eclipseの機能。 </li></ul><ul><li>回りで使っているという話はあまり聞かない </li></ul><ul><ul><li>ちょっとマイナー? </li></ul></ul><ul><...
<ul><li>実行系 </li></ul><ul><li>カバレッジ系 </li></ul><ul><li>テスト実行支援系 </li></ul><ul><li>静的テスト系 </li></ul><ul><li>小物系 </li></ul><...
Eclipse TPTP <ul><li>\ (^o^) / </li></ul><ul><li>間に合いませんでした  orz </li></ul><ul><li>ごめんなさい  m(_ _)m </li></ul><ul><li>使ったこと...
Eclipse TPTP <ul><li>さくっと調べた感じだと・・・ </li></ul><ul><ul><li>プロファイリング </li></ul></ul><ul><ul><li>ログの分析 </li></ul></ul><ul><ul...
Jumble <ul><li>Mutation Testing(変異テスト)を行うツール。 </li></ul><ul><ul><li>Mutation Testing:テスト対象を書き換えてテストケースを実行し、テストケースがきちんと失敗する...
おまけ <ul><li>ちょっとだけ。 </li></ul>
おまけ1 <ul><li>JUnit Reporter (Choco Project) </li></ul><ul><ul><li>JUnit の実行結果から、 HTML レポートを出力するプラグイン。 </li></ul></ul><ul><...
おまけ2 <ul><li>JUnit 関連のプラグインの拡張ポイント </li></ul><ul><ul><li>org.eclipse.jdt.junit.testRunListeners   </li></ul></ul><ul><ul><...
おわりに <ul><li>テスト関連といっても幅広いので、プラグインはたくさんあります。 </li></ul><ul><li>プラグインを入れすぎると大変なことになります(なりました)。自分の好みのプラグインを選択するべし。 </li></ul...
Upcoming SlideShare
Loading in...5
×

Test Plugins

1,769

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,769
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Test Plugins

  1. 1. テスト関連プラグイン vol.1
  2. 2. はじめに <ul><li>テスト(主に単体)で使えるプラグインたちをデモを交えて簡単に紹介 </li></ul><ul><li>役に立つツールがある・・・かも!? </li></ul>
  3. 3. 自己紹介 <ul><li>HN </li></ul><ul><ul><li>ykhr だったり ykhr-kokko だったり </li></ul></ul><ul><li>お仕事 </li></ul><ul><ul><li>Java での開発 </li></ul></ul><ul><ul><li>ちょっと前まで、テスト関連の研究開発をやってました </li></ul></ul><ul><ul><li>最近、転職しました </li></ul></ul><ul><li>活動 </li></ul><ul><ul><li>http://d.hatena.ne.jp/ykhr-kokko </li></ul></ul><ul><ul><li>Choco Project </li></ul></ul><ul><ul><ul><li>変なものばかり作ってます ( ゚ー゚ ;A </li></ul></ul></ul>
  4. 4. もくじ <ul><li>実行系 </li></ul><ul><li>カバレッジ系 </li></ul><ul><li>テスト実行支援系 </li></ul><ul><li>静的テスト系 </li></ul><ul><li>小物系 </li></ul><ul><li>その他 </li></ul><ul><li>※カテゴリーはかなり適当 </li></ul>
  5. 5. <ul><li>実行系 </li></ul><ul><li>カバレッジ系 </li></ul><ul><li>テスト実行支援系 </li></ul><ul><li>静的テスト系 </li></ul><ul><li>小物系 </li></ul><ul><li>その他 </li></ul>
  6. 6. JUnit プラグイン <ul><li>JUnit 関連にまつわるプラグイン。 </li></ul><ul><li>Eclipse に始めから入ってるし、知らない人はいないよね? </li></ul><ul><li>機能(主なもの) </li></ul><ul><ul><li>テストケースの実行・結果表示 </li></ul></ul><ul><ul><li>テストケースの雛形の作成 </li></ul></ul><ul><ul><li>実行結果の XML 出力( Eclipse3.3 から) </li></ul></ul>
  7. 7. TestNG <ul><li>TestNG のプラグイン版。 </li></ul><ul><li>http://testng.org/doc/eclipse.html </li></ul><ul><li>機能 </li></ul><ul><ul><li>JUnit とほぼ同じ View </li></ul></ul><ul><ul><li>レポートの確認(デフォルトで HTML レポートが出る) </li></ul></ul><ul><li>ところで、 TestNG をプロジェクトで使ったことある人っている? </li></ul><ul><ul><li>ぜひ、話を聞いてみたい。 </li></ul></ul>
  8. 8. <ul><li>実行系 </li></ul><ul><li>カバレッジ系 </li></ul><ul><li>テスト実行支援系 </li></ul><ul><li>静的テスト系 </li></ul><ul><li>小物系 </li></ul><ul><li>その他 </li></ul>
  9. 9. djUnit <ul><li>カバレッジを計測するツール。 </li></ul><ul><li>http://works.dgic.co.jp/djwiki/Viewpage.do?pid=@646A556E6974 </li></ul><ul><li>機能 </li></ul><ul><ul><li>カバレッジ計測->レポート出力・マーカー付加 </li></ul></ul><ul><ul><li>Virtual Mock Object </li></ul></ul><ul><ul><ul><li>モックによるテストをサポートする機能 </li></ul></ul></ul><ul><li>カバレッジ系に入れたが、 Virtual Mock Object の機能もいい。 </li></ul><ul><li>djUnit のテストケースは、そのままでは Ant などから実行できなくなるのが欠点。 </li></ul><ul><ul><li>JUnit タスクを djunit のタスクに変更する必要がある。 </li></ul></ul><ul><ul><li>Maven も動かないかも(未確認)。 </li></ul></ul>
  10. 10. EclEmma <ul><li>カバレッジツール EMMA のプラグイン版。 </li></ul><ul><li>http://www.eclemma.org/ </li></ul><ul><li>ブランチカバレッジの値が出ない( EMMA 自体がブランチを取得していないので)。 </li></ul><ul><li>個人的に、見た目は一番好き。 </li></ul><ul><ul><li>ソースの色分け表示がきれい。 </li></ul></ul><ul><ul><li>1 行のうち、一部しか実行されていない行も区別がつく。 </li></ul></ul>
  11. 11. <ul><li>実行系 </li></ul><ul><li>カバレッジ系 </li></ul><ul><li>テスト実行支援系 </li></ul><ul><li>静的テスト系 </li></ul><ul><li>小物系 </li></ul><ul><li>その他 </li></ul>
  12. 12. Quick JUnit <ul><li>実装コードとテストコードの切り替えを簡単に行うためのプラグイン。 </li></ul><ul><li>http://quick-junit.sourceforge.jp/ </li></ul><ul><li>テストコードを右クリックから実行することもできる。 </li></ul><ul><ul><li>今の Eclipse は同様のことができるけど、昔はできなかったんだっけ? </li></ul></ul><ul><li>ショートカットコマンドも備えている。 </li></ul><ul><ul><li>JUnit プラグインの機能にもショートカットコマンドはあるが、 Alt + Shift + X ってとてつもなく押しにくいと思う。 </li></ul></ul>
  13. 13. Continuous Testing <ul><li>テストケースを保存したタイミングでテストを実行するプラグイン。 </li></ul><ul><ul><li>失敗したテストケースにはエラーのマーカーが付加される。 </li></ul></ul><ul><ul><li>マーカーからテストを再実行できる。 </li></ul></ul><ul><ul><li>実行するテストは任意に指定できる。 </li></ul></ul><ul><li>Eclipse3.1 でしか動かなかった・・・ </li></ul><ul><ul><li>最近、更新されている様子もなく、ちょっと残念。 </li></ul></ul><ul><ul><li>代わりに、テストケースを保存したタイミングでそのテストケースを実行するというプラグインを作ってみました。 </li></ul></ul><ul><ul><ul><li>コードはほとんどコピペという罠。 </li></ul></ul></ul><ul><ul><ul><li>逆に言えば、コピペでここまで作れるという例。 </li></ul></ul></ul>
  14. 14. <ul><li>実行系 </li></ul><ul><li>カバレッジ系 </li></ul><ul><li>テスト実行支援系 </li></ul><ul><li>静的テスト系 </li></ul><ul><li>小物系 </li></ul><ul><li>その他 </li></ul>
  15. 15. 静的テスト系 <ul><li>静的テストも立派なテスト!というわけで </li></ul><ul><ul><li>Checkstyle </li></ul></ul><ul><ul><li>FindBugs </li></ul></ul><ul><ul><li>PMD </li></ul></ul><ul><ul><li>最近は、 Eclipse のコンパイラもけっこういけてる。 </li></ul></ul><ul><ul><ul><li>フォーマッタ、クリーンアップも ( ・∀・ ) イイ </li></ul></ul></ul><ul><ul><li>正直、 Java ファイルを保存するたびに動作するように設定するのはウザい。でも、実装完了するたびに3ツールを動作させるのも(クリックするのが)めんどくさい。 </li></ul></ul><ul><ul><ul><li>( Maven とかで)夜間バッチで実行するとか、1クリックで実行できるような仕組みがあった方がいいと思う。 </li></ul></ul></ul>
  16. 16. 各ツールの違い(ごく簡単に) <ul><li>Checkstyle </li></ul><ul><ul><li>設計に関する問題、コードのフォーマットに関する問題のチェックが多い。 </li></ul></ul><ul><ul><li>ソースファイルに対しチェックを行う。 </li></ul></ul><ul><ul><li>デフォルトの設定で動作させると、たいていエラー出まくり。 </li></ul></ul><ul><li>FindBugs </li></ul><ul><ul><li>API の利用誤りや問題の発生しやすいコードを検出する。 </li></ul></ul><ul><ul><li>クラスファイルに対しチェックを行う。 </li></ul></ul><ul><li>PMD </li></ul><ul><ul><li>FindBugs と同じようなチェック。 </li></ul></ul><ul><ul><li>ソースファイルに対しチェックを行う。 </li></ul></ul><ul><li>1 つのツールにしか存在しないチェックルールもある。 </li></ul><ul><li>本来はチェックの種類を選別するべきだが、デフォルトのまま使用しても効果はあるので、試しに使ってみるのもアリ。 </li></ul><ul><li>上記 3 ツールは、すべて Maven から実行できる。 </li></ul>
  17. 17. <ul><li>実行系 </li></ul><ul><li>カバレッジ系 </li></ul><ul><li>テスト実行支援系 </li></ul><ul><li>静的テスト系 </li></ul><ul><li>小物系 </li></ul><ul><li>その他 </li></ul>
  18. 18. QuickREx <ul><li>正規表現のテスト用。 </li></ul><ul><li>正規表現のライブラリ(サンプル集みたいなもの)が付いている。 </li></ul>
  19. 19. XPath-Developer <ul><li>XPath のテスト用。 </li></ul><ul><li>ちょっとしたコード補完もできる。 </li></ul><ul><li>QuickREx と同じプロジェクト。 </li></ul><ul><ul><li>QuickREx の HP を見ていたらたまたま発見。 </li></ul></ul><ul><ul><li>なかなかよさげだったので、紹介してみました。 </li></ul></ul>
  20. 20. スクラップページ(w <ul><li>Eclipseの機能。 </li></ul><ul><li>回りで使っているという話はあまり聞かない </li></ul><ul><ul><li>ちょっとマイナー? </li></ul></ul><ul><li>テストというとちょっと大げさだけどね。 </li></ul>
  21. 21. <ul><li>実行系 </li></ul><ul><li>カバレッジ系 </li></ul><ul><li>テスト実行支援系 </li></ul><ul><li>静的テスト系 </li></ul><ul><li>小物系 </li></ul><ul><li>その他 </li></ul>
  22. 22. Eclipse TPTP <ul><li>\ (^o^) / </li></ul><ul><li>間に合いませんでした orz </li></ul><ul><li>ごめんなさい m(_ _)m </li></ul><ul><li>使ったことある方いませんか?? </li></ul>
  23. 23. Eclipse TPTP <ul><li>さくっと調べた感じだと・・・ </li></ul><ul><ul><li>プロファイリング </li></ul></ul><ul><ul><li>ログの分析 </li></ul></ul><ul><ul><li>レポートの表示 </li></ul></ul>
  24. 24. Jumble <ul><li>Mutation Testing(変異テスト)を行うツール。 </li></ul><ul><ul><li>Mutation Testing:テスト対象を書き換えてテストケースを実行し、テストケースがきちんと失敗するかを検証する。テストケースがきちんと実装できているかを確認できる。 </li></ul></ul><ul><li>プラグイン版は、実行をラップしてるだけの簡易的なもの。 </li></ul><ul><ul><li>でも、プラグインから実行できるというのは大きいよね。 </li></ul></ul><ul><li>対応しているテストケースは、JUnit3系のみ。 </li></ul>
  25. 25. おまけ <ul><li>ちょっとだけ。 </li></ul>
  26. 26. おまけ1 <ul><li>JUnit Reporter (Choco Project) </li></ul><ul><ul><li>JUnit の実行結果から、 HTML レポートを出力するプラグイン。 </li></ul></ul><ul><ul><li>HTML レポートは、 Ant の JUnitReport タスクと同じものを出力する。 </li></ul></ul><ul><ul><ul><li>Eclipse3.2 系でしか動作しません(更新サボってます)。 </li></ul></ul></ul><ul><ul><li>プラグインは、人様の View に勝手に機能を追加できたりします。 </li></ul></ul>
  27. 27. おまけ2 <ul><li>JUnit 関連のプラグインの拡張ポイント </li></ul><ul><ul><li>org.eclipse.jdt.junit.testRunListeners </li></ul></ul><ul><ul><ul><li>テストの開始、終了が検知できる。 </li></ul></ul></ul><ul><ul><ul><li>Eclipse 3.3 から deprecated となったが、これを使わなくても自分でリスナーを追加できる。 </li></ul></ul></ul><ul><ul><ul><ul><li>JUnitCore#addTestRunListener(TestRunListener) </li></ul></ul></ul></ul><ul><ul><ul><li>テストの結果は取得できない( internal 系を使うと取得できるはず・・・)。 </li></ul></ul></ul><ul><ul><li>org.eclipse.jdt.junit.junitLaunchConfigs </li></ul></ul><ul><ul><ul><li>リファクタリングされた際に、更新する必要のある JUnit ベースの起動構成を登録する??? </li></ul></ul></ul><ul><ul><ul><li>よくわかりませんでした。 </li></ul></ul></ul><ul><li>たいした拡張ポイントではない。 </li></ul>
  28. 28. おわりに <ul><li>テスト関連といっても幅広いので、プラグインはたくさんあります。 </li></ul><ul><li>プラグインを入れすぎると大変なことになります(なりました)。自分の好みのプラグインを選択するべし。 </li></ul><ul><li>足りないものがあれば、案外簡単に作れちゃうのかも!? </li></ul><ul><li>他にもこんなのあるよーという方がいましたら、教えてください。 </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×