SwingのGUI Testingツールを調査した
JavaのGUIに関するテストを行うツールには、どのようなものがあるのか調べてみた。
- Abbot Java GUI Test Framework - 画面操作をXMLで記録していく、java.awt.Robotを利用するタイプのもの。
- FEST Swing - IBM developerWorks Japanで紹介されているTestNG-Abbotはプロジェクトが終了したようで、このプロジェクトが後継のようだ。ただし、FESTとAbbotには関連は無く、org.fest.swing.core.Robotという独自のインタフェースをimplementsすることでGUI操作を再生、記録するように見える[追記: Abbot由来のソースコードが含まれていることを確認]。全てJavaコードで記述する必要あり?
- Marathon - 画面操作をJPythonあるいはJRubyで記録していく。Robotは用いていないようにみえる。テストはカスタム化されたJUnitで実行。
- jfcUnit - XMLでイベントを記録する系統。昔から名前は聞いたことがある気がするが、長い間開発は止まっているようだ。
- SwingUnit - 日本の方が開発されているようだ。
- jemmy
- Jacareto
- Pounder
- [追記]WindowTester Pro – Marathonと同じく、ユーザが操作した過程をイベントとして記録していく方式?Eclipse専用ツール?
その他、SWTのテストではEclipseのTPTPが利用できるらしい。商用プロダクトについては下記「参考」のtestingfaq.org参照。
low-levelなeventを記録できる、というのをメリットとして挙げているツールがいくつかあったが、実際に、これがメリットになるのかは不明だと思う。ウィンドウをどの座標に動かしただとかというような情報が必要になるテストケースは、実際のところ不要であることが大半なのではないかと思う。
Marathonでは、regular recodingというモードがデフォルトで、上記のような詳細なイベントを記録するにはraw recodingというモードが選択可能であるようだ。こちらの方が、記録されたイベントの取捨選択にかかるコストが少なくなるのでは無いかと思われる。
しかしながら、ユニットテスト的に用いるのか、受け入れテスト(acceptance test)的に使うのか等シチュエーションによって、適したツールは変わってくるのではないか。
参考:
« JMC(Java Media Components) - Javaで動画再生 | トップページ | NetBeansでcoverage reportを行う »
この記事へのコメントは終了しました。
« JMC(Java Media Components) - Javaで動画再生 | トップページ | NetBeansでcoverage reportを行う »
コメント