UIオートメーションテストのベストプラクティスは、できる限り少ないことです。UIは頻繁に変更されるため、自動化を常に更新する必要があります。一般に、UIオートメーションなしで自動テストを実行できるように製品コードを構造化することをお勧めします。
つまり、UIオートメーションを常に削除できるわけではありません。あなたはオフィスについて言及しているので、私はあなたがWindows用にコーディングしていて、.Netを使用していると仮定しています。私は現在の仕事でかなりしています。これが私が学んだことのいくつかです。
1).Net 3.0で導入されたUIAutomationライブラリを見てください。それらは、自動化のための広範囲で非常にシンプルな使用ライブラリーを提供します。(http://msdn.microsoft.com/en-us/library/ms753107.aspx)
2)UISpyをダウンロード(http://msdn.microsoft.com/en-us/library/ms727247.aspx)
3)製品のUIを自動化します。
3a)WPFの場合は、すべてにAutomationIDを設定します。
3b)独特のコントロールとウィンドウクラス名(ソースコードクラス名ではなく、UIクラス名)を作成してください。意味がわからない場合は、UI Spyをロードして、ウィンドウを確認してください。異なるアプリ間でいくつのウィンドウが#32770のクラス名を持っているかに注意してください。これは、Windowsダイアログボックスのクラス名です。ダイアログを拡張し、独自の名前を設定しないウィンドウは、デフォルトでこれに設定されます。これは、UIオートメーションの観点から、あらゆる種類の悲しみを引き起こします。
4)Thread.Sleep()ステートメントを避けます。代わりにウェイター(UIAutomationのドキュメントを参照)を使用してみてください。
5)テストコードとUIオートメーションコードを混在させないでください。UIオートメーションを実行するための個別のライブラリを作成します。テストからこれらのライブラリを呼び出します。UIが変更されると、オートメーションの更新がはるかに簡単になります。
6)イベントを発生させるアクションを実行する前に、常にUIイベントのリスナーを登録します。実際には、これはスレッドを操作することを意味します。
6a)例:ボタンをクリックしてウィンドウを開いた後、Window Openedイベントの待機を開始しないでください。ウィンドウは、ウェイターが登録される前に開いて、イベントを取得しない場合があります。
7)開いたばかりのウィンドウが必要なウィンドウであるとは決して想定しないでください。Windowsであらゆる種類のウィンドウが予期せず開く場合があります。
私はさらに続けることができますが、これは少し長くなっています。