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를 사용하여 앱을 살펴보고 응답합니다.

이 워크플로를 사용하면 한 줄의 테스트 코드를 작성하기 전에 키보드 포커스 누락, 비활성화된 컨트롤, 레이아웃 문제 등의 문제를 파악할 수 있습니다.

자동화된 테스트 작성

대화형으로 앱을 탐색한 후에는 에이전트에게 공식 테스트를 생성하도록 요청합니다. 이 시작 프롬프트를 사용합니다.

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에서 AutomationIds 설정

winapp ui click이(가) 요소를 안정적으로 지정할 수 있도록 XAML에서 AutomationProperties.AutomationId을 설정하세요.

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

에이전트에게 요청하세요: "이 XAML에 있는 모든 대화형 컨트롤에 AutomationId 특성을 추가해 줘."