Teste assistido por IA para aplicativos Windows

Os comandos winapp ui e a habilidade winui-ui-testing permitem que seu agente de IA inspecione, interaja e valide a interface do usuário do seu aplicativo automaticamente — descrevendo o que vê em linguagem natural para que você possa iterar sem precisar escrever código de teste primeiro.

Comandos de inspeção da interface do usuário

A habilidade winui-ui-testing está incluída no plugin winui@awesome-copilot. Se você instalou o plug-in durante a instalação, nenhuma instalação adicional será necessária.

Command O que faz
winapp ui inspect Exibe a árvore de acessibilidade do aplicativo em execução
winapp ui screenshot Captura uma captura de tela da janela do aplicativo
winapp ui click <selector> Clica em um botão ou seleciona um item
winapp ui invoke <selector> Invoca a ação padrão em um controle
winapp ui search <text> Pesquisa a árvore de elementos por nome ou AutomationId
winapp ui set-value <selector> <value> Define o valor de um TextBox ou ComboBox

Peça ao seu agente para testar o aplicativo

  1. Execute o aplicativo:
    dotnet run
    
  2. Faça ao seu agente uma pergunta de linguagem natural, como:

    "Olhe para o aplicativo em execução e me diga se o botão Salvar é acessível quando o formulário está vazio."

  3. O agente usa winapp ui inspect e winapp ui screenshot para examinar o aplicativo e responder.

Esse fluxo de trabalho permite que você capture problemas – falta de foco do teclado, controles desabilitados, problemas de layout – antes de escrever uma única linha de código de teste.

Escrever testes automatizados

Depois de explorar o aplicativo interativamente, peça ao agente para gerar testes formais. Use este prompt inicial:

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.

Os testes gerados usam winapp ui comandos como a camada de interação, para que sejam executados sem uma estrutura de automação de interface do usuário separada.

Definir AutomationIds em seu XAML

Para que winapp ui click direcione elementos de forma confiável, defina AutomationProperties.AutomationId em seu XAML:

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

Pergunte ao agente: "Adicionar atributos AutomationId a todos os controles interativos neste XAML".

Executar testes em CI

Você pode executar winapp ui comandos em um fluxo de trabalho GitHub Actions. Os testes exigem uma sessão gráfica; use um runner do Windows com runs-on: windows-latest.

name: UI tests
on: [push, pull_request]
jobs:
  ui-test:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup .NET
        uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '9.0.x'
      - name: Install winapp CLI
        run: winget install --id Microsoft.WinAppCLI --silent --accept-package-agreements --accept-source-agreements --disable-interactivity
      - name: Build
        run: dotnet build
      - name: Run UI tests
        run: dotnet test --filter Category=UITest

Note

Os winapp ui comandos interagem com a árvore de acessibilidade ao vivo de um processo em execução. Os testes devem iniciar o aplicativo como parte da configuração do teste (ou em uma etapa TestInitialize) e fechá-lo na finalização.

Verificar a acessibilidade automaticamente

O winapp ui inspect comando gera a árvore de acessibilidade completa – nomes de elementos, tipos, estados e AutomationIds. Peça ao agente para revisá-lo quanto a lacunas de acessibilidade:

Run "winapp ui inspect" on the running app and identify any issues:
- Controls without accessible names
- Missing keyboard focus order
- Buttons or links that aren't reachable by Tab
Report findings as a prioritized list, most critical first.

Esse prompt funciona bem como uma avaliação inicial de acessibilidade antes de usar uma ferramenta formal de auditoria. Para obter uma lista de verificação de acessibilidade completa, consulte a visão geral de acessibilidade para aplicativos Windows.