【UIA】UI Automation を用いたユーザーインターフェイスのテスト - 序

■■■
2010.09.27 追記:
Visual Studio 2010 Premium, Ultimate にて 自動 UI テストが新機能として搭載されました。こちらを使うと、UI Automation に対応したアプリケーションの UI テストを、単体テストフレームワークとして実施可能です。テストしたい UI 動作のレコーディングおよび、検証(アサーション)の設定を GUI で行い、単体テストコードを自動生成してくれます。
参考:
https://blogs.msdn.com/b/tomohn/archive/2010/09/16/essense-of-tfs-vol-15-ui-automation-testing-with-team-foundation-server-2010.aspx
■■■

※今回は、UI Automation の紹介です。次回に UI テストでの活用方法をご紹介します♪
※本投稿の下部に追記があります。

皆さん、UI Automation というのは、ご存知でしょうか?
UI Automation は、GUI の支援技術(Assistive Technology)の機能や製品の実装と自動テスト フレームワークのための共通したライブラリ群になります。

詳細については、下記をご覧ください:

長沢的に、一言でいうと、 「GUI を外部のプログラムなどから操作することができる技術」 です。これが Windows プラットフォーム間の共通のモデルで提供されるため、障害者をサポートする支援技術の開発や UI のテストの自動化ツールの開発などで役立てることができます。

これを用いて、たとえば、データを入力し、ボタンをクリックしたら、結果がどう返ってきてほしい(UI がどう変化してほしい)といったテストを行うことができるようになると期待されます。

それができるわけです。単体テストでは、クラスライブラリなどのメソッド単位でのテストについては申し分ないのですが、UI が絡んだ動作のテストで実施するには、なかなか難しい面があります。もっといってしまうと、イベントハンドラに直接ビジネスロジックが記述された VB 5.0/6.0 でよくおこなわれていた記述の仕方だとそのロジックのテストが行いづらいわけです(private なメンバーですしね)。VS2008 の単体テスト機能では、private なメンバーのテストを行えますが、これは UI のテストではなく、あくまでも内部のビジネスのロジックに対するテスト(の一部)になります。たとえば、実際に受け渡しされる EventArgs などがロジック上に絡んでいるとテストできないですね。

実は、このあたりも、昨年末から本年頭まで実施していた MSDN オフラインセミナー 全国ツアーでは、披露していました(開催地区によっては披露できなかったところもあります。ごめんなさい)。

次回の投稿では、UI Automation を単体テストコードの中で呼び出すことで、GUI アプリケーションを操作して、UI のテストを行うひとつのやり方をご紹介します。お楽しみに♪
明日は、名古屋へ Go! なため、投稿は今週中にはと思っています・・・。

以下追記(2008.03.18 22:00):
# すっかり忘れて投稿してしまいました (^^;

UI Automation ですが、先日開催された MIX08 にてSilverlight 2 のサポートが発表されました!
詳細はこちらをご覧ください(英語)。

Accessibility ですが、今後のアプリケーションの在り方として、欠かすことができないものになってきています。ぜひこの辺りについてもキャッチアップしていただければと思います。
# もちろん、長沢もまだまだキャッチアップできていません (^^;

 

ながさわともはる