単体テスト機能だけでは、人の操作を完全に把握してテストできないため、VS2010には自動UI(User Interface)テストという機能が搭載されています。自動UIテストは、ユーザーがアプリケーションを利用した際のキーボードやマウスの動きをキャプチャーします。その記録を再生して、同じ操作を繰り返してテストできる機能です。VS2010で初めて搭載された機能なので、手順を追って使い方を覚えると共に、制約事項についても知っておきましょう。

操作を記録して実行する「自動UIテスト」

 まずは、ソリューションに新しくテストプロジェクトを用意してください。ソリューション エクスプローラーでソリューションのコンテキストメニューから「追加」→「新しいプロジェクト」を選択し、テストプロジェクトのテンプレートから新しくプロジェクトを追加します*3。ここでは、前回の図2で作成したテストプロジェクトを例に説明します。

 ソリューション エクスプローラーにあるテストプロジェクトのコンテキストメニューから「追加」→「コード化されたUIテスト」を選択して、新しいテストを追加します。ラジオボタンがある図6のダイアログが表示されます。そのまま「操作の記録、UIマップの編集、またはアサーションの追加」を選択し、「OK」を押してください。

図6●「コード化されたUIテストのコードの生成」画面
図6●「コード化されたUIテストのコードの生成」画面

 すると図7のように、画面右下にUIテストビルダーが表示されます。ウィンドウ左側にある赤い丸ボタンの「記録の開始」を押した後に、UI操作が必要なテストを実施します。

図7●「コード化されたUIテスト ビルダー」の表示
図7●「コード化されたUIテスト ビルダー」の表示

 例えば(1)先に作成した簡易電卓を起動し、(2)「123+3*6=」と順次クリック、(3)簡易電卓を終了する、という作業を記録するとします。操作が終了したらUIテストビルダーの「記録の一時停止」を選択して、記録操作を終了します。そして、同じウィンドウで「記録されたステップの表示」を選択すれば、図8のように操作で記録された一連の内容を確認できます。

図8●記録された操作の表示
図8●記録された操作の表示
図9●自動UIテストのテストメソッド
図9●自動UIテストのテストメソッド

 ウィンドウの「コードの生成」を選択すれば、(1)~(3)の操作を行う自動UIテストを生成できます。コードの生成ボタンをクリックすると「コード化されたUIテストビルダー」ダイアログが表示されるので、メソッド名を記述します。作成した自動UIテストは、VS2010上では単体テストと同じ扱いで、一つのテストメソッドになります(図9)。

 ただし、テストメソッド内にすべての操作記録が存在するのではなく、ソリューション エクスプローラー上にあるUIMap.uitestの中に、操作を再現するための処理がコードとして書かれています。記録された処理を再生するには、単体テストと同様にテストメソッドのコンテキストメニューから「テストの実行」を選択します。