AI-assisteret testskrivning med GitHub Copilot (frarådes)

Bemærk

Testprogrammet frarådes og fjernes i en fremtidig version. Brug Power Platform Playwright-eksempler til funktioner til testautomatisering i Power Platform og Dynamics 365-tjenester.

Det kan være tidskrævende at oprette omfattende testplaner for Power Platform programmer, især i komplekse scenarier. Ai-assisterede oprettelsesværktøjer som f.eks. GitHub Copilot kan fremskynde denne proces betydeligt ved at generere testskabeloner, foreslå testcases og automatisere oprettelsen af standardkode.

I denne vejledning forklares det, hvordan du bruger GitHub Copilot med power platform-versionsstyringsløsninger til effektivt at oprette testprogramtestplaner.

Forudsætninger

Før du begynder, skal du sikre dig, at du har:

Konfiguration af dit testoprettelsesmiljø

Hvis du vil maksimere effektiviteten af AI-assisteret testoprettelse, skal du kombinere disse værktøjer i en struktureret arbejdsproces:

  1. Hent dine kildefiler
  2. Initialisere et git-lager til versionskontrol (hvis det ikke allerede er gjort)
  3. Opret en dedikeret testmappe i dit løsningslager
  4. Åbn løsningsmappen i Visual Studio Code

Brug GitHub Copilot til oprettelse af test

GitHub Copilot kan hjælpe dig med at generere forskellige testkomponenter baseret på din kildestyrede løsning. Sådan bruger du dens muligheder effektivt:

Brug af eksempeldokumentation som kontekst

Kataloget med Test Engine-eksempler indeholder en omfattende kilde til referencemateriale til GitHub Copilot. Du kan hjælpe Copilot med at generere test af højere kvalitet ved at:

  • Medtage filen samples.md i dit arbejdsområde
  • Referere til specifikke eksempler i dine prompter
  • Leverer links til eksempel GitHub lagre

Du kan f.eks.:

  • Åbn både din programkode og filen samples.md i VS Code
  • Spørg Copilot til at oprette test, der "ligner ButtonClicker-eksemplet" eller "bruger mønstre fra Dataverse-eksemplet"
  • Referer til specifikke funktioner fra prøver, der matcher dine testbehov

Denne fremgangsmåde hjælper Copilot med at forstå mønstre i Power Platform-testprogrammet og generere mere nøjagtige test.

Arbejde med GitHub Copilot i agenttilstand

Visual Studio Code GitHub-Copilot Chat tilbyder en Agent-tilstand der kan hjælpe med at generere test, der er baseret på dine løsningsfiler. Denne tilstand gør det muligt for Copilot at få adgang til og forstå projektkonteksten dybere.

Sådan bruger du agenttilstand til testgenerering:

  1. Åbn GitHub-Copilot Chat (Ctrl+Skift+I) i VS Code
  2. Vælg Agent i Copilot-tilstand vælgeren
  3. Lav en detaljeret prompt om den test, du vil oprette

Eksempler på prompter til testgenerering

Prøv at bruge prompter som disse til testgenerering:

Mål:
Opret en omfattende testpakke til en lærredsapp ved hjælp af Power Apps-testprogrammet, der er modelleret efter eksemplet ButtonClicker.

Prompt:
Opret en test for ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml ved hjælp af eksemplet på https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker som reference. Opret forventede sager, grænsesager og undtagelsessager. Testen skal oprette en YAML-testfil og Power Fx testtrin, config.json og RunTest.ps1 baseret på eksemplet, så jeg kan køre testen.

Mål:
Byg en detaljeret testplan for en modelbaseret app for at sikre, at kernefunktionalitet og forretningslogik fungerer som forventet.

Prompt:
Opret en omfattende testplan for min modelbaserede app, der findes på ./SolutionPackage/src/Other/Solution.xml. Testen skal validere formularindlæsning, oprettelse af poster og udførelse af forretningsregler. Opret test-YAML,trin Power Fx og et PowerShell-script for at køre testen.

Mål:
Opret en testplan til Dataverse-enheder for at bekræfte CRUD-operationer via Power Fx handlinger.

Prompt:
Lav en omfattende testplan for mine Dataverse enheder. Testen skal udføre oprettelses-, opdaterings- og slettehandlinger Power Fx . Opret test-YAML,trin Power Fx og et PowerShell-script for at køre testen.

Forstå de genererede testkomponenter

Når GitHub Copilot genererer en test, oprettes der typisk følgende komponenter:

  • YAML-testplan: Definerer teststrukturen, appens URL-adresse og testtrin
  • Power Fx testtrin: Indeholder testlogikken ved hjælp af Power Fx udtryk
  • config.json: Konfiguration af testudførelsesparametre
  • RunTest.ps1: PowerShell-script til udførelse af testen

Eksempel: Genereret teststruktur

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

Bedste praksis for AI-assisteret testoprettelse

Overvej følgende afsnit for at få mest muligt ud af GitHub Copilot til oprettelse af testprogram.

Giv en klar kontekst i dine prompter

Vær specifik omkring, hvad du vil teste, og inkluder referencer til:

  • De nøjagtige filer, der skal testes
  • Eksempler på tests, der kan bruges som skabeloner
  • Specifikke testscenarier, du vil dække
  • Eventuelle godkendelses- eller miljøkrav

Brug af testprogrameksempler til kontekst

Dokumentationen samples.md katalogiserer alle tilgængelige eksempler fra testmotorlageret, hvilket kan være en glimrende reference, når du opretter prompter om GitHub Copilot. Når du f.eks. tester en canvas-app med knapper, kan du henvise til Button Clicker-eksamplet:

Prompt:
Opret en test for min lærredapp på ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml ved hjælp af ButtonClicker-eksemplet fra https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker. Prøven skal:
1. Kontroller, at min tællerknap øger en værdi på skærmen
2. Prøvningsgrænsebetingelser (f.eks. maks. værdi)
3. Inkluder OnTestCaseStart og OnTestCaseComplete livscyklus hooks
4. Generer config.json med passende miljøvariabler

Denne fremgangsmåde hjælper Copilot med at forstå teststrukturen og genererer mere nøjagtige, kontekstafhængigt relevante test baseret på dokumenterede eksempler.

Brug kildestyrede løsninger som kontekst

Copilot fungerer bedst, når den kan analysere din løsningsstruktur. Brug kildekontrolelement til Power Platform løsninger til at angive denne kontekst. Denne kontekst gør det muligt for Copilot at:

  • Forstå din apps struktur
  • Identificere kontrolelementnavne og egenskaber
  • Generer mere nøjagtige testtrin
  • Referere til de korrekte filstier

Gennemgå og finjuster genererede tests

Selvom AI-genererede tests giver et fremragende udgangspunkt, skal du altid:

  • Kontrollér, at kontrolreferencer stemmer overens med dit program
  • Tilføj påstande for forretningskritisk funktionalitet
  • Sørg for, at kantsager håndteres korrekt
  • Valider godkendelseskonfiguration

Kombiner med manuel ekspertise

I komplekse testscenarier skal du bruge GitHub Copilot til at:

  • Generer testrammen og strukturen
  • Oprette standardvalideringsmønstre
  • Foreslå kantsager at overveje

Udvid derefter med din domæneekspertise for:

  • Virksomhedsspecifikke valideringsregler
  • Miljøhensyn
  • Specialiserede testdata

Almindelige testgenereringsmønstre

Dette afsnit indeholder nogle almindelige testgenereringsmønstre:

Test af lærredapps

I forbindelse med lærredapps skal du bruge prompter, der refererer til App.fx.yaml filen i din kildestyrede løsning:

Prompt:
Opret en test til min Canvas-app i ./SolutionPackage/src/CanvasApps/src/MyExpenseApp/Src/App.fx.yaml, som validerer processen for at indsende udgifter. Testen skal udfylde udgiftsfelter, sende formularen og kontrollere, at bekræftelsesmeddelelsen vises.

Test af modelbaserede apps

For modelbaserede apps skal du fokusere på objektnavigation, formularinteraktioner og forretningsregler:

Prompt:
Opret en test for min modelbaserede app, der tester kontoentitetsformularen. Testen skal oprette en ny kontopost, validere påkrævede felter og kontrollere, at forretningsregler for beregning af kreditmaksimum fungerer korrekt.

Test af Dataverse-udvidelser

I forbindelse med Dataverse test skal du lægge vægt på datahandlinger og validering af forretningslogik:

Prompt:
Generer en Dataverse test, der validerer de brugerdefinerede plugins i min løsning. Testen skal oprette testposter, udløse udførelsen af plugin'et og bekræfte, at de forventede datatransformationer er sket.

Stikprøvespecifikke testprompter

For at få den mest nøjagtige testgenerering skal du henvise til specifikke prøver fra testprogrammets eksempelkatalog, der passer til dine testbehov. Her er skræddersyede prompter til almindelige testscenarier:

ButtonClicker-eksempler på prompter

Eksemplet med ButtonClicker demonstrerer grundlæggende test af tællerfunktionalitet. Brug disse meddelelser:

Prompt:
Generer en test for min tællerapp med en lignende struktur som ButtonClicker-eksemplet. Min app har knapper med navnet "IncrementBtn" og "ResetBtn" med en "CounterLabel", der viser det aktuelle antal. Opret en test, der bekræfter, at begge knapper fungerer korrekt, og at det maksimale antal er 10.

Prompt:
Opret en test for min knapinteraktionsapp ved hjælp af ButtonClicker-eksemplet som reference. Min app har en "SubmitButton", der kun skal aktiveres, når felterne "NameInput" og "EmailInput" er udfyldt. Opret en testplan med Power Fx trin til at validere denne funktionsmåde.

Eksemplerne BasicGallery og NestedGallery viser, hvordan du tester galleriinteraktioner:

Prompt:
Opret en test for min galleriapp, hvor jeg har et "Produkter"-galleri med produktelementer, der indeholder "TitleLabel", "PriceLabel" og "SelectButton"-kontroller. Brug eksempelstrukturen i BasicGallery til at kontrollere, at jeg kan vælge elementer, og at de korrekte detaljer vises i et "DetailPanel".

Prompter til datahandlinger

Eksemplet Dataverse demonstrerer test af datahandlinger:

Prompt:
Opret en test til min CRM-app ved hjælp af eksempelmønsteret Dataverse . Test, at jeg kan oprette en ny kontaktpost, opdatere den og derefter kontrollere, at ændringerne fortsætter. Medtag både UI-test og direkte Dataverse operationer.

Prompter til AI-test

Hvis du vil teste AI-drevet funktionalitet, skal du se eksemplet AI-prompt:

Prompt:
Opret en test for min synspunktsanalyseapp baseret på eksemplet på AI-prompt. Min app har tekstfeltet "FeedbackInput" og bruger AI Builder til at klassificere den som positiv, negativ eller neutral. Opret en test, der validerer forskellige input, der producerer forventede output inden for acceptable tærskler.

Avancerede teknikker

Dette afsnit indeholder eksempler på avancerede promptfunktioner.

Oprettelse af testsuiter med flere miljøer

Du kan bede Copilot om at generere test, der fungerer på tværs af flere miljøer:

Prompt:
Opret en testpakke til min app, der kan køre i DEV-, TEST- og PROD-miljøer med relevante konfigurationsvariabler for hvert miljø.

Generering af datasimulerede scenarier

Til isoleret test ved hjælp af connector-mocking:

Prompt:
Opret en test med modellerede connectorsvar til min app, der bruger den Office 365 Outlook connector. Testen skal simulere modtagelse af e-mails og validere appens behandlingslogik.

Test af AI-funktioner og håndtering af ikke-deterministiske resultater

Når du arbejder med AI-drevne applikationer, introducerer testning unikke udfordringer, da AI-output kan variere lidt mellem kørsler, selv med identiske input. Denne ikke-deterministiske adfærd kræver særlige testmetoder.

Forståelse af ikke-deterministisk testning

Ikke-deterministisk test omfatter validering af output, der legitimt kan variere på tværs af testkørsler:

  • AI-modeloutput: Svar fra AI-modeller som GPT eller brugerdefinerede AI Builder-komponenter
  • Konfidensscorer: Numeriske evalueringer, der kan svinge inden for acceptable intervaller
  • Genereret indhold: Tekst eller anbefalinger produceret af AI-systemer

Brug af Preview.AIExecutePrompt til deterministisk test af AI-funktioner

Testprogrammet indeholder Preview.AIExecutePrompt , der muliggør deterministisk validering af AI-svar. Denne fremgangsmåde giver dig mulighed for at:

  • Udfør AI-prompter i testscenarier
  • Fortolk og valider de strukturerede svar
  • Verificer, at kritiske output lever op til forventningerne på trods af potentielle variationer

Eksempel: Evaluering af bedømmelse med AI Builder

Følgende eksempel demonstrerer brug af Preview.AIExecutePrompt funktionen til at teste et AI-drevet klassificeringssystem:

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}
  ))

I dette eksempel:

  • Testen udfører en AI-prompt mod "PromptEvaluator"-modellen
  • Den passerer en kontekst og et spørgsmål til evaluering
  • Den validerer, at den returnerede bedømmelse stemmer overens med den forventede værdi
  • Det giver klar feedback om testsucces eller fiasko

Du kan udforske den komplette implementering i eksemplet på AI-prompt fra PowerApps TestEngine-lageret .

Inkorporering af AI-bevidst test

Når du bruger GitHub Copilot til at generere test til AI-drevne programmer:

Prompt:
Generér en test for min AI-drevne app, der bruger AI Builder formularbehandling. Medtag testtrin, der validerer AI-resultaterne med passende tolerance for ikke-deterministiske output.

Fejlfinding og finjustering

Hvis GitHub Copilot genererer test, der ikke opfylder dine behov:

  • Afgræns din prompt: Vær mere specifik omkring, hvad du vil teste
  • Giv eksempler: Link til specifikke testeksempler, der matcher din ønskede stil
  • Opdel komplekse tests: Anmod om generering af mindre, fokuserede testkomponenter
  • Iterate: Brug Copilot svar til at tilpasse den næste prompt

Udforsk testprogrammets funktioner
Gennemse kataloget over eksempler på testprogram
Få mere at vide om Power Fx testfunktioner
Forstå YAML-testformatet
Udforsk godkendelsesmuligheder
Training: Oprettelse af programmer med GitHub-Copilot-agent-tilstand