다음을 통해 공유


AI 지원 테스트 작성(미리 보기) GitHub Copilot

참고

프리뷰 기능은 생산용으로 만들어진 것이 아니므로 기능이 제한될 수 있습니다. 이런 기능은 공식 릴리스 전에 사용할 수 있으므로 고객이 조기에 액세스하고 피드백을 제공할 수 있습니다.

애플리케이션에 대한 포괄적인 테스트 계획을 만드는 일은 시간이 많이 걸릴 수 있으며, 특히 복잡한 시나리오의 경우 더욱 그렇습니다. Power Platform AI 지원 저작 도구는 GitHub Copilot 테스트 템플릿 생성, 테스트 사례 제안, 보일러플레이트 코드 생성 자동화를 통해 이 프로세스를 상당히 가속화할 수 있습니다.

이 가이드에서는 소스 제어 솔루션을 사용하여 테스트 엔진 테스트 계획을 효율적으로 만드는 방법을 설명합니다. GitHub Copilot Power Platform

사전 요구 사항

시작하기 전에 다음 사항을 확인하세요.

테스트 작성 환경 설정

AI 지원 테스트 작성의 효율성을 극대화하려면 다음 도구를 구조화된 워크플로에 결합하세요.

  1. 소스 파일을 받으세요
    • 소스 제어에서 환경이나 솔루션을 복제합니다. Power Platform
    • Power Platform pac solution export pac solution unpack을 사용하여 파일로 솔루션을 내보내고 압축을 풉니다. ...
  2. 버전 제어를 위해 git 저장소를 초기화합니다(아직 완료되지 않은 경우)
  3. 솔루션 저장소에 전용 테스트 폴더를 만듭니다.
  4. Visual Studio 코드에서 솔루션 폴더를 엽니다.

테스트 생성에 사용 GitHub Copilot

GitHub Copilot 소스 제어 솔루션을 기반으로 다양한 테스트 구성 요소를 생성하는 데 도움이 될 수 있습니다. 이 기능을 효과적으로 사용하는 방법은 다음과 같습니다.

샘플 문서를 컨텍스트로 사용

테스트 엔진 샘플 카탈로그 는 GitHub Copilot참고 자료의 풍부한 소스를 제공합니다. 다음을 통해 Copilot이 더 높은 품질의 테스트를 생성하는 데 도움을 줄 수 있습니다.

  • 작업 공간에 samples.md 파일 포함하기
  • 프롬프트에서 특정 샘플 참조
  • 샘플 GitHub 저장소에 대한 링크 제공

이렇게 시작할 수 있는 작업의 예는 다음과 같습니다.

  • VS Code에서 애플리케이션 코드와 samples.md 파일을 모두 엽니다.
  • Copilot에게 "ButtonClicker 샘플과 유사한" 테스트나 "샘플의 패턴을 사용하여" 테스트를 생성하도록 요청하세요. Dataverse
  • 테스트 요구 사항과 일치하는 샘플의 특정 기능을 참조하세요.

이러한 접근 방식은 Copilot이 테스트 엔진 패턴을 이해하고 더 정확한 테스트를 생성하는 데 도움이 됩니다. Power Platform

에이전트 모드에서 작업하기 GitHub Copilot

Visual Studio Code의 GitHub Copilot Chat은 솔루션 파일을 기반으로 테스트를 생성하는 데 도움이 되는 에이전트 모드 를 제공합니다. 이 모드를 사용하면 Copilot이 프로젝트 컨텍스트에 더 깊이 접근하고 이해할 수 있습니다.

테스트 생성을 위해 에이전트 모드를 사용하려면:

  1. VS Code에서 채팅을 엽니다(Ctrl+Shift+I) GitHub Copilot
  2. Copilot 모드 선택기에서 Agent 를 선택하세요.
  3. 만들고 싶은 테스트에 대한 자세한 프롬프트를 작성하세요.

테스트 생성을 위한 예시 프롬프트

테스트 생성을 위해 다음과 같은 프롬프트를 사용해 보세요.

목표:
ButtonClicker 샘플을 모델로 한 Power Apps 테스트 엔진을 사용하여 캔버스 앱에 대한 포괄적인 테스트 모음을 생성합니다. ...

즉각적인:
https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker 참조로 샘플을 사용하여 ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml에 대한 테스트를 생성합니다. 예상되는 사례, 예외 사례, 예외 사례를 만듭니다. 테스트에서는 테스트 YAML 파일을 만들고 Power Fx 샘플을 기반으로 테스트 단계, config.json, RunTest.ps1을 만들어서 테스트를 실행할 수 있어야 합니다.

목표:
모델 기반 앱에 대한 자세한 테스트 계획을 수립하여 핵심 기능과 비즈니스 로직이 예상대로 작동하는지 확인하세요.

즉각적인:
./SolutionPackage/src/Other/Solution.xml에 있는 모델 기반 앱에 대한 포괄적인 테스트 계획을 만듭니다. 테스트에서는 양식 로드, 레코드 생성, 비즈니스 규칙 실행을 검증해야 합니다. 테스트 YAML, Power Fx 단계 및 PowerShell 스크립트를 생성하여 테스트를 실행합니다.

목표:
Dataverse 엔터티의 CRUD 작업을 동작을 통해 검증하기 위한 테스트 계획을 구성합니다. Power Fx

즉각적인:
내 Dataverse 엔티티에 대한 포괄적인 테스트 계획을 만듭니다. 테스트는 생성, 업데이트, 삭제 Power Fx 작업을 수행해야 합니다. 테스트 YAML, Power Fx 단계 및 PowerShell 스크립트를 생성하여 테스트를 실행합니다.

생성된 테스트 구성 요소 이해

테스트를 생성할 때 일반적으로 다음 구성 요소를 생성합니다. GitHub Copilot

  • YAML 테스트 계획: 테스트 구조, 앱 URL 및 테스트 단계를 정의합니다.
  • Power Fx 테스트 단계: 표현식을 사용하여 테스트 논리를 포함합니다. Power Fx
  • config.json: 테스트 실행 매개변수에 대한 구성
  • RunTest.ps1: 테스트를 실행하는 PowerShell 스크립트

예: 생성된 테스트 구조

MyAppTests/
├── MyAppTest.fx.yaml     # Power Fx test steps
├── MyAppTest.yml         # Test plan definition
├── config.json           # Test configuration
└── RunTest.ps1           # Test execution script

AI 지원 테스트 작성을 위한 모범 사례

테스트 엔진 테스트 생성을 최대한 활용하려면 다음 섹션을 고려하세요. GitHub Copilot

프롬프트에서 명확한 맥락을 제공하세요

테스트하고 싶은 내용을 구체적으로 밝히고 다음에 대한 참조를 포함하세요.

  • 테스트할 정확한 파일
  • 템플릿으로 사용할 샘플 테스트
  • 다루고 싶은 특정 테스트 시나리오
  • 인증 또는 환경 요구 사항

컨텍스트를 위한 테스트 엔진 샘플 사용

samples.md 문서에는 테스트 엔진 저장소에서 사용 가능한 모든 샘플이 정리되어 있으며, 이는 프롬프트를 작성할 때 훌륭한 참고 자료가 될 수 있습니다. GitHub Copilot 예를 들어, 버튼이 있는 캔버스 앱을 테스트할 때 버튼 클리커 샘플을 참조할 수 있습니다.

즉각적인:
https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker의 ButtonClicker 샘플을 사용하여 ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml에서 Canvas 앱에 대한 테스트를 생성합니다. 테스트는 다음과 같아야 합니다.
1. 카운터 버튼이 화면에서 값을 증가시키는지 확인하세요.
2. 테스트 경계 조건(예: 최대값)
3. OnTestCaseStart 및 OnTestCaseComplete 라이프사이클 후크 포함
4. 적절한 환경 변수를 사용하여 config.json을 생성합니다.

이러한 접근 방식은 Copilot이 테스트 구조를 이해하고 검증된 사례를 기반으로 더욱 정확하고 상황에 맞는 테스트를 생성하는 데 도움이 됩니다.

소스 제어 솔루션을 컨텍스트로 사용

Copilot은 솔루션 구조를 분석할 때 가장 좋은 성능을 발휘합니다. 이러한 맥락을 제공하기 위해 솔루션에 대한 소스 제어를 사용하세요. Power Platform 이 컨텍스트에서는 Copilot이 다음을 수행할 수 있습니다.

  • 앱의 구조를 이해하세요
  • 컨트롤 이름과 속성 식별
  • 더 정확한 테스트 단계 생성
  • 올바른 파일 경로를 참조하세요

생성된 테스트를 검토하고 개선합니다.

AI가 생성한 테스트는 훌륭한 시작점을 제공하지만 항상 다음을 염두에 두십시오.

  • 제어 참조가 애플리케이션과 일치하는지 확인하세요.
  • 비즈니스에 중요한 기능에 대한 어설션 추가
  • 예외 상황이 적절하게 처리되는지 확인하세요.
  • 인증 구성 검증

수동 전문 지식과 결합

복잡한 테스트 시나리오의 경우 다음을 사용합니다. GitHub Copilot :

  • 테스트 프레임워크와 구조 생성
  • 표준 검증 패턴 생성
  • 고려해야 할 예외 사례를 제안합니다.

그런 다음 도메인 전문 지식을 추가하여 다음을 수행합니다.

  • 비즈니스별 검증 규칙
  • 환경적 고려 사항
  • 특수 테스트 데이터

일반적인 테스트 생성 패턴

이 섹션에는 몇 가지 일반적인 테스트 생성 패턴이 포함되어 있습니다.

캔버스 앱 테스트

캔버스 앱의 경우 소스 제어 솔루션의 App.fx.yaml 파일을 참조하는 프롬프트를 사용하세요.

즉각적인:
./SolutionPackage/src/CanvasApps/src/MyExpenseApp/Src/App.fx.yaml에서 Canvas 앱에 대한 테스트를 생성하여 비용 제출 프로세스를 검증합니다. 테스트에서는 비용 필드를 채우고, 양식을 제출하고, 확인 메시지가 나타나는지 확인해야 합니다.

모델 기반 앱 테스트

모델 기반 앱의 경우 엔터티 탐색, 양식 상호 작용 및 비즈니스 규칙에 중점을 둡니다.

즉각적인:
계정 엔터티 양식을 테스트하는 모델 기반 앱에 대한 테스트를 만듭니다. 테스트에서는 새로운 계좌 레코드를 생성하고, 필수 필드의 유효성을 검사하고, 신용 한도 계산을 위한 비즈니스 규칙이 올바르게 작동하는지 확인해야 합니다.

확장 프로그램 테스트 Dataverse

테스트의 경우 데이터 작업과 비즈니스 로직 검증을 강조합니다. Dataverse

즉각적인:
내 솔루션의 사용자 정의 플러그인을 검증하는 테스트를 생성합니다. Dataverse 테스트에서는 테스트 레코드를 생성하고, 플러그인 실행을 트리거하고, 예상한 데이터 변환이 발생했는지 확인해야 합니다.

샘플별 테스트 프롬프트

가장 정확한 테스트 생성을 얻으려면 테스트 요구 사항과 일치하는 테스트 엔진 샘플 카탈로그 에서 특정 샘플을 참조하세요. 일반적인 테스트 시나리오에 대한 맞춤형 프롬프트는 다음과 같습니다.

ButtonClicker 샘플 프롬프트

ButtonClicker 샘플 은 기본적인 카운터 기능 테스트를 보여줍니다. 다음 프롬프트를 사용하세요.

즉각적인:
ButtonClicker 샘플과 비슷한 구조로 카운터 앱에 대한 테스트를 생성합니다. 내 앱에는 "IncrementBtn"과 "ResetBtn"이라는 버튼이 있고, 이 버튼에는 현재 카운트를 표시하는 "CounterLabel"이 있습니다. 두 버튼이 모두 제대로 작동하는지, 최대 개수가 10인지 확인하는 테스트를 만듭니다.

즉각적인:
ButtonClicker 샘플을 참조하여 버튼 상호작용 앱에 대한 테스트를 만듭니다. 내 앱에는 "NameInput"과 "EmailInput" 필드가 완료되었을 때만 활성화되어야 하는 "SubmitButton"이 있습니다. 이 동작을 검증하기 위한 단계를 담은 테스트 계획을 생성하세요. Power Fx

BasicGalleryNestedGallery 샘플은 갤러리 상호작용을 테스트하는 방법을 보여줍니다.

즉각적인:
"TitleLabel", "PriceLabel", "SelectButton" 컨트롤이 포함된 제품 항목이 있는 "제품" 갤러리가 있는 갤러리 앱에 대한 테스트를 생성합니다. BasicGallery 샘플 구조를 사용하여 항목을 선택할 수 있는지, 그리고 "DetailPanel"에 올바른 세부 정보가 표시되는지 확인합니다.

데이터 작업 프롬프트

Dataverse 샘플 은 데이터 작업 테스트를 보여줍니다.

즉각적인:
Dataverse 샘플 패턴을 사용하여 CRM 앱에 대한 테스트를 만듭니다. 새로운 연락처 레코드를 만들고 업데이트한 다음 변경 사항이 지속되는지 테스트합니다. UI 테스트와 직접 작업을 모두 포함합니다. Dataverse

AI 테스트 프롬프트

AI 기반 기능을 테스트하려면 AI 프롬프트 샘플을 참조하세요.

즉각적인:
AI 프롬프트 샘플을 기반으로 감정 분석 앱에 대한 테스트를 생성합니다. 내 앱에는 "FeedbackInput" 텍스트 상자가 있고 이를 사용하여 AI Builder 긍정적, 부정적, 중립적 의견으로 분류합니다. 허용 가능한 임계값 내에서 다양한 입력이 예상 출력을 생성하는지 검증하는 테스트를 만듭니다.

고급 기술

이 섹션에서는 고급 프롬프트 기능의 예를 제공합니다.

다중 환경 테스트 모음 만들기

Copilot에서 여러 환경에서 작동하는 테스트를 생성하도록 요청할 수 있습니다.

즉각적인:
각 환경에 적합한 구성 변수를 사용하여 DEV, TEST, PROD 환경에서 실행할 수 있는 앱에 대한 테스트 모음을 생성합니다.

데이터 모의 시나리오 생성

커넥터 모킹을 사용한 격리된 테스트의 경우:

즉각적인:
Office 365 Outlook 커넥터를 사용하는 앱에 대한 모의 커넥터 응답으로 테스트를 만듭니다. 테스트에서는 이메일 수신을 시뮬레이션하고 앱의 처리 논리를 검증해야 합니다.

AI 기능 테스트 및 비결정적 결과 처리

AI 기반 애플리케이션을 사용하는 경우 테스트 과정에서 고유한 과제가 발생합니다. 입력이 동일하더라도 실행 간에 AI 출력이 약간씩 다를 수 있기 때문입니다. 이러한 비결정적 동작에는 특별한 테스트 접근 방식이 필요합니다.

비결정적 테스트 이해

비결정적 테스트에는 테스트 실행에 따라 합법적으로 달라질 수 있는 출력의 검증이 포함됩니다.

  • AI 모델 출력: GPT 또는 사용자 지정 AI Builder 구성 요소와 같은 AI 모델의 응답
  • 신뢰 점수: 허용 범위 내에서 변동될 수 있는 수치적 평가
  • 생성된 콘텐츠: AI 시스템이 생성한 텍스트 또는 추천

AI 기능의 결정론적 테스트를 위해 Preview.AIExecutePrompt 사용

테스트 엔진은 AI 응답의 결정론적 검증을 가능하게 하는 Preview.AIExecutePrompt 를 제공합니다. 이 접근 방식을 사용하면 다음이 가능합니다.

  • 테스트 시나리오 내에서 AI 프롬프트 실행
  • 구조화된 응답을 구문 분석하고 검증합니다.
  • 잠재적인 변화에도 불구하고 중요한 출력이 기대치를 충족하는지 확인하십시오.

예: 평가 평가 AI Builder

다음 예제에서는 Preview.AIExecutePrompt 함수를 사용하여 AI 기반 평가 시스템을 테스트하는 방법을 보여줍니다.

EvaluateTestQuestionPrompt(Prompt: TestQuestion): TestResult =
  With({
    Response: ParseJSON(
      Preview.AIExecutePrompt("PromptEvaluator",
      {
        Context: "You are a helpful agent asking about external customer service questions.",
        Question: Prompt.Question
      }).Text)
  },If(
    IsError(AssertNotError(Prompt.ExpectedRating=Response.Rating, Prompt.Question & ", Expected " & Prompt.ExpectedRating & ", Actual " & Response.Rating)),
    {PassFail: 1, Summary: Prompt.Question & ", Expected " & Prompt.ExpectedRating & ", Actual " & Response.Rating}, {PassFail: 0, Summary: "Pass " & Prompt.Question}
  ))

이 예에서는 다음이 적용됩니다.

  • 테스트는 "PromptEvaluator" 모델에 대해 AI 프롬프트를 실행합니다.
  • 평가를 위한 맥락과 질문을 전달합니다.
  • 반환된 평가가 예상 값과 일치하는지 확인합니다.
  • 테스트 성공 또는 실패에 대한 명확한 피드백을 제공합니다.

-TestEngine 저장소의 PowerAppsAI Prompt 샘플 에서 전체 구현을 살펴볼 수 있습니다.

AI 인식 테스트 통합

AI 기반 애플리케이션에 대한 테스트를 생성하는 데 GitHub Copilot 사용하는 경우:

즉각적인:
AI Builder 양식 처리를 사용하는 AI 기반 앱에 대한 테스트를 생성합니다. 비결정적 출력에 대한 적절한 허용 범위를 두고 AI 결과를 검증하는 테스트 단계를 포함합니다.

문제 해결 및 개선

귀하의 요구 사항을 충족하지 않는 테스트가 생성되는 경우: GitHub Copilot

  • 프롬프트를 더욱 구체적으로 정의하세요.: 테스트하려는 내용을 더욱 구체적으로 지정하세요.
  • 예시 제공: 원하는 스타일과 일치하는 특정 테스트 샘플에 대한 링크
  • 복잡한 테스트 분해: 더 작고 집중적인 테스트 구성 요소 생성 요청
  • 반복: Copilot의 응답을 사용하여 다음 프롬프트를 개선하세요.

테스트 엔진 기능 탐색
테스트 엔진 샘플 카탈로그를 탐색하세요
테스트 함수에 대해 알아보세요. Power Fx
YAML 테스트 형식 이해
인증 옵션 살펴보기
교육: 에이전트 모드를 사용한 애플리케이션 빌드 GitHub Copilot