Swing ベースのアプリケーションに最適なテスト ツールは何ですか?[閉まっている]
質問
アプリケーションに対して時間の許す限り多くの単体テストを設定しようとしますが、UI レベルのテストの量が常に不足していることに気づきます。選択肢はたくさんありますが、どれから始めればよいのか分かりません。
Swing アプリケーションをテストするために推奨される単体テスト ツールは何ですか?なぜあなたはそれを好きですか?
解決
私たちの側では、SWING GUI をテストするために使用します。 祭り. 。これは古典的なスイングロボットのアダプターですが、劇的に使いやすくなります。
TestNG と組み合わせると、GUI を通じて「人間の」アクションをシミュレートする簡単な方法であることがわかりました。
他のヒント
ターゲットアプリケーションが カスタムコンポーネント, 、ぜひお勧めします マラソン テストを自動化します。
私はいくつかのアプリケーションを自動化するタスクを与えられました。 非常に 複雑なカスタム コンポーネントは社内で最初から作成されます。私は 2 か月にわたるレビュー プロセスを経て、商用および FOSS の両方で利用可能な 30 近くのテスト ツールのリストから、どのテスト ツールを使用するかを決定しました。
それは のみ 特定のカスタム コンポーネントを正常に自動化できるテスト ツール。IBM の Rational Functional Tester、Microfocus の TestPartner、QF-Test、Abbot & FEST 失敗した.
それ以来、テストをクルーズ コントロールと正常に統合し、アプリケーションの各ビルドの完了時にテストが実行されるようにすることができました。
ただし、警告の言葉:
1) JTable の処理方法がかなり大雑把です。私は独自のプロキシ クラスを作成することでこの問題を回避しました。
2) ドラッグ アンド ドロップ アクションの記録/再生はまだサポートされていません。
マラソンを検討してください(http://www.marathontesting.com/Home.html)--テスト これらは Jython で記述されているため、オブジェクトの状態に基づいてあらゆる種類の述語を簡単に作成できます。
QF-TESTを一度いじってみる機会がありました。商用ですが、多くの機能を提供します。たぶんあなたはそれを見たことがあります: http://www.qftest.de/en/index.html
使ってみることができます キュウリ そして スインガー Swing GUI アプリケーションの機能受け入れテストを平易な英語で作成するためのツールです。スインガーは Netbeans を使用します ジェミー アプリを駆動するためのライブラリを内部に配置します。
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!"
これをみて スインガービデオデモ 実際にそれを見てみましょう。
QFTest を強くお勧めします。私はこれを商用製品に使用しましたが、ほぼゼロのコードで非常にうまく機能します (私のアプリでは、いくつかの目的で Java クライアント API を使用する必要があります)。Swing コンポーネントの識別を適切に処理し、GUI の更新にもかなり寛容です (コンポーネントのサイズ変更、位置変更、追加によって既存のテストが中断されることはありません)。機能を大幅に更新しましたが、テストはまだ機能しています。
高いですが、数ヶ月もすれば元が取れると思います。
QFTest の前に次のことを試しました。
1) Automatedqa - 優れたツールですが、Windows 中心であり、Swing を理解していません。クイックテストプロに似ています。
2) UISpec4J - これに週 50 時間を費やした後、脆弱性とそれが生成する難解な Java コードに問題がありました。これを使用するのは非常に困難でした。数十の GUI 操作を実行しながら、数百行の Java をデバッグ/更新しようとするのは、私の脳には無理でした。テストの作成は実際にアプリ自体を作成するよりもはるかに複雑なので、最終的にはテストを作成することを避けました。
パウンダーを試してください: http://pounder.sourceforge.net/
私は、Netbeans をテストするために書かれたライブラリである Jemmy が好きです。
答えではなく、推敲です。
録音と再生を望むのは間違っています。チームには、コードを作成する前にテストを作成できる必要があります。それ以外の場合、プログラマーは作業を終了し、テスターがテストを記録するために急いでいる間待機します (問題を発見すると修正によって中断されます)。
BDD/TDD/ATDD の種類のセットアップでは、UI 要素名などを指定して、まだ書かれていないコードのテストをスクリプト化できる何らかのツールが実際に必要です。
非ウォーターフォール テストに使用できるツールはありますか?