Windows アプリの AI 支援テスト

winapp uiコマンドとwinui-ui-testingスキルを使用すると、AI エージェントはアプリの UI を自動的に検査、操作、検証できます。これは、テスト ハーネス コードを最初に記述せずに反復処理できるように、自然言語で表示される内容を記述します。

UI 検査コマンド

winui-ui-testing スキルは、winui@awesome-copilot プラグインに含まれています。 セットアップ中にプラグインをインストールした場合、追加のインストールは必要ありません。

Command それが何をするか
winapp ui inspect 実行中のアプリのアクセシビリティ ツリーをダンプします
winapp ui screenshot アプリ ウィンドウのスクリーンショットをキャプチャします
winapp ui click <selector> ボタンをクリックするか、項目を選択します。
winapp ui invoke <selector> コントロールに対して既定のアクションを呼び出します。
winapp ui search <text> 要素ツリーを名前または AutomationId で検索します
winapp ui set-value <selector> <value> TextBox または ComboBox の値を設定します。

エージェントにアプリのテストを依頼する

  1. アプリを実行します:
    dotnet run
    
  2. 次のような自然言語の質問をエージェントに問い合わせてください。

    "実行中のアプリを見て、フォームが空のときに [保存] ボタンに到達できるかどうかを確認してください。"

  3. エージェントは、 winapp ui inspectwinapp ui screenshot を使用してアプリを調べて応答します。

このワークフローでは、1 行のテスト コードを記述する前に、キーボード フォーカスの不足、無効なコントロール、レイアウトの問題などの問題をキャッチできます。

自動テストを記述する

対話形式でアプリを探索したら、正式なテストを生成するようにエージェントに依頼します。 このスターター プロンプトを使用します。

Write an xUnit UI test for my WinUI 3 app that:
1. Launches the app with dotnet run
2. Verifies the main window title is "My App"
3. Clicks the button with AutomationId "SaveButton"
4. Verifies a success message appears
Use the winapp ui commands for element interaction.

生成されたテストでは、対話レイヤーとして winapp ui コマンドが使用されるため、別の UI オートメーション フレームワークなしで実行されます。

XAML で AutomationId を設定する

winapp ui click が要素を確実に対象にできるようにするには、XAML で AutomationProperties.AutomationId を設定します。

<Button AutomationProperties.AutomationId="SaveButton"
        Content="Save" />
<TextBox AutomationProperties.AutomationId="TitleInput" />

エージェントに「この XAML のすべての対話型コントロールに AutomationId 属性を追加する」と尋ねます。