アプリケーションに時間が許す限り多くの単体テストを設定しようとしていますが、UI レベルのテストの量が不足していることにいつも気付きます。選択肢はたくさんありますが、何から始めればよいかわかりません。
Swing アプリケーションをテストするためのユニット テスト ツールはどれですか? なぜあなたはそれを好きですか?
私たちの側では、 FESTで SWING GUI をテストするために使用します。これは古典的なスイング ロボットのアダプターですが、その使用が劇的に容易になります。
TestNG と組み合わせると、GUI を介して「人間」のアクションをシミュレートする簡単な方法であることがわかりました。
ターゲット アプリケーションにカスタム コンポーネントがある場合は、 Marathonを使用してテストを自動化することを強くお勧めします。
私は、社内でゼロから作成された非常に複雑なカスタム コンポーネントを使用して、アプリケーションを自動化するタスクを与えられました。私は 2 か月に及ぶレビュー プロセスを経て、商用と FOSS の両方で利用可能な 30 近くのテスト ツールのリストから、どのテスト ツールを使用するかを決定しました。
これは、特定のカスタム コンポーネントを正常に自動化できた唯一のテスト ツールでした。IBM の Rational Functional Tester、Microfocus の TestPartner、QF-Test、Abbot & FESTが失敗した場所。
それ以来、アプリケーションのビルドが完了するたびにテストが実行されるように、テストを Cruise Control とうまく統合することができました。
ただし、警告の言葉:
1) JTables を処理する方法の端がかなり荒いです。独自のプロキシ クラスを作成することで、これを回避しました。
2) ドラッグ アンド ドロップ アクションの記録/再生はまだサポートされていません。
Marathon ( http://www.marathontesting.com/Home.html ) を考えてみましょう。テストは Jython で記述されているため、オブジェクトの状態に基づいてあらゆる種類の述語を簡単に記述できます。
QFTestを強くお勧めします。私はこれを商用製品に使用しましたが、ほとんどゼロのコードで非常にうまく機能します(私のアプリでは、いくつかの目的でJavaクライアントAPIを使用する必要があります)。スイングコンポーネントの識別を適切に処理し、GUIの更新にかなり耐性があります(コンポーネントのサイズ変更、再配置、および追加によって、既存のテストが中断されることはありません)。機能を大幅に更新しましたが、テストは引き続き機能します。
高価ですが、数ヶ月で完済すると思います。
QFTestの前に私は試しました:
1)Automatedqa-優れたツールですが、ウィンドウ中心であり、Swingを理解していません。クイックテストプロに似ています。
2)UISpec4J-これに週50時間しっかりと専念した後、私は脆弱性とそれが生成する難解なJavaコードに問題がありました。それを使用するのは非常に骨の折れる作業でした。数百行のJavaをデバッグ/更新して、数十のGUI操作のシーケンスを実行しようとしても私の頭の中でうまくいきませんでした。実際にアプリ自体を書くよりもはるかに複雑なので、テストを書くのを避けてしまいました!
CucumberとSwingerを使用して、Swing GUI アプリケーションの機能受け入れテストを平易な英語で作成することができます。Swinger は、内部で Netbeans のJemmyライブラリを使用してアプリを駆動します。
Cucumber では、次のようなテストを作成できます。
Scenario: Dialog manipulation
Given the frame "SwingSet" is visible
And the frame "SwingSet" is the container
When I click the menu "File/About"
Then I should see the dialog "About Swing!"
Given the dialog "About Swing!" is the container
When I click the button "OK"
Then I should not see the dialog "About Swing!"
このSwinger ビデオ デモを見て、動作を確認してください。
一度QF-TESTをいじる機会がありました。商用ですが、多くの機能を提供します。多分あなたはそれを見ている:http://www.qftest.de/en/index.html
I like Jemmy, the library written to test Netbeans.
パウンダーを試してみてください: http://pounder.sourceforge.net/