Delphi2009アプリのテストハーネスを作成しています。ロジックのテストはかなり簡単です。フォームが正しく機能することを確認することは、もう少し複雑です。実際のユーザー入力をシミュレートし、フォームを開いて、ユーザーが特定の項目を入力して特定の場所をクリックしていると思わせ、正しく反応することを確認する方法が必要です。私はこれを行う方法があると確信しています、私はそれが何であるかを知らないだけです。誰かがそれを行う方法を知っていますか?
8 に答える
DUnitにはGUITesting.pasがあり、テストを拡張して、クリック、キー、およびテキストをフォームのコントロールに送信できますが、それだけです。
昨年、CodeGear 開発者が社内で使用していたZombie GUI テスト フレームワークについて言及されていましたが、Steve が Falafel に移籍して以来、何も言及されていませんでした。
TestComplete は良い選択です。GUI テストのもう 1 つの商用オプションはSmarteScriptです。
.netには、WinアプリケーションをGUIテストするためのNUnitFormsがあります。しかし、デルファイのオープンソースはわかりません。
Test Completeはデルファイフォームをテストできますが、無料ではありません。
これには2つの部分があります。1つはGUIを自動化する方法、もう1つはGUIが機能しているかどうかを「テスト」する方法です。
最初に:WindowsのGUIを自動化するには、AutoITを使用してみてください。Windowsインターフェースの制御、キーボード入力イベントの送信などのための無料ツールです。http://www.autoitscript.com/autoit3/
第二に、テストは大きな分野であり、私はあなたに旋風のツアーを提供しようとはしません。しかし、GUIを駆動して結果をテストするメカニズムは、AutoITの組み込みのBasicのような言語を使用するか、RubyやTestUnit(rubysの組み込みの単体テストフレームワーク)などの言語と組み合わせて使用することで処理できます。
Deliphi固有のものがなく、迅速なソリューションが必要な場合は、AutoItのような簡単に習得できるスクリプトソリューションを試してください。もう少し洗練されたスクリプトについては、Rubyを使用したスクリプトGUIテストをご覧ください。
ただし、GUIを介して機能をテストしすぎないように注意してください。このようなテストは、失敗する可能性が非常に高いためです。GUIテストが多すぎる場合は、設計を再考する必要があります。GUIからロジックを切り離し、xUnitフレームワークを使用してロジックを直接テストします。
また、 Windowsフォームのテスト自動化に関する同様の質問もご覧ください。
DUnitにはいくつかのGUIテスト機能があるようです:delphiextreme.com
あなたの質問に対する正確な答えではありませんが、 Martin FowlerによるGUIアーキテクチャに関する非常に優れたページ(もちろんIMHO)があり、最後のエントリとして「Humble View」アーキテクチャを取り上げています。これは、特にテスト駆動ソフトウェア開発を対象としています。調べる価値があります。
もちろん、これは、すべてのコントロールが正しく配線され、必要なすべてのイベントを処理するかどうかをテストするタスクには役立ちませんが、テストが必要なGUIコードの量を最小限に抑えるのに役立つはずです。
OpenCTFはあなたにぴったりです。
見積もり:
OpenCTF は、フォーム (またはデータモジュール) 内のすべてのコンポーネントの自動チェックを実行する Embarcadero Delphi® 用のテスト フレームワーク アドオンです。
多くのコンポーネントが繰り返しテストに合格する必要がある大規模なプロジェクトの自動品質チェックを構築する簡単な方法を提供します。
OpenCTF テストを DUnit テスト スイートに追加するには、数行のコードしか必要ありません。独自のカスタム コンポーネント テストを作成するのに数秒しかかかりません。
OpenCTF は、DUnit オープン ソース テスト フレームワークに基づいており、特殊なテスト クラスとヘルパー関数によって拡張されています。
こちらからダウンロードしてください。