私たちは大規模なプロジェクトの初期段階にあり、何らかの形の自動UIテストが役立つ可能性があると判断しましたが、これがどのように機能するかを正確に分類していません...
主な目標は、アプリの基本的なインストールと実行を自動化することです。そのため、開発者が大きな破損を引き起こした場合(たとえば、アプリがインストールされない、ネットワークが接続されない、ウィンドウが表示されないなど)、テスター壊れたビルドのインストールと構成に時間を浪費する(そしてイライラする)必要はありません
二次的な目標は、反復的なタスクを処理するときにテスターを支援することです。
私の質問は、誰がこれらの種類のテストを作成する必要があるかということです。私たちのチームの暗黙の前提は、テスターがそれを行うというものでしたが、ネットで読んだすべてのことは、開発者が一種の「拡張単体テスト」としてそれらを作成することを常に暗示しているようです。
いくつかの考え:
コントロールIDやクラスなどを知っていて、アプリがどのように機能しているかをよりよく把握していることを考えると、開発者はこれを行うのにはるかに適しているようです。
テスターには、アプリがどのように機能しているかがわからないという利点があるため、はるかに便利なテストを作成できます。
IronRubyとWhiteを使用していくつかの初期スクリプトを作成しました。これは本当にうまく機能し、文字通り何でもできるほど強力ですが、UIテストを書くためのコードを書くことができる必要があります
私たちが試したすべての自動UIテストツール(TestCompleteなど)は非常に複雑で壊れやすいようです。テスターはそれらを使用できますが、約100倍の時間がかかり、常に「偶発的な複雑さ」に直面しています。 UIテストツールが原因です。
私たちのテスターはコーディングできません。彼らはかなり賢いですが、テスターが単純なルビースクリプトを書く可能性があることを示唆したとき、私が得たのは面白い外観でした(スクリプトは混乱した混乱よりも約100倍簡単に読み書きできますが)自動UIテストツールの標準と思われるボタンとデータグリッド)。
開発者とテスターの両方のチームでUIオートメーションを試した他の人からのフィードバックに心から感謝します。誰が何をしましたか、そしてそれはうまくいきましたか?前もって感謝します!
編集:問題のアプリケーションは、WCFを使用してサーバーに接続するC#WPF「リッチクライアント」アプリケーションです。