Del via


AI-assistert testredigering med GitHub Copilot (forhåndsversjon)

Notat

Forhåndsversjonsfunksjonene er ikke ment for produksjonsbruk og kan ha begrenset funksjonalitet. Disse funksjonene er tilgjengelige før en offisiell utgivelse, slik at kunder kan få tidlig tilgang og gi tilbakemeldinger.

Å lage omfattende testplaner for Power Platform applikasjoner kan være tidkrevende, spesielt for komplekse scenarier. AI-assisterte redigeringsverktøy som GitHub Copilot kan akselerere denne prosessen betydelig ved å generere testmaler, foreslå testtilfeller og automatisere standardkodeoppretting.

Denne veiledningen forklarer hvordan du bruker GitHub Copilot med Power Platform kildekontrollløsninger for å effektivt lage testmotortestplaner.

Forutsetning

Før du begynner, må du sørge for at du har:

Konfigurere testredigeringsmiljøet

Hvis du vil maksimere effektiviteten til AI-assistert testredigering, kan du kombinere disse verktøyene i en strukturert arbeidsflyt:

  1. Hent kildefilene dine
  2. Initialiser et git-repositorium for versjonskontroll (hvis det ikke allerede er gjort)
  3. Opprett en dedikert testmappe i løsningsrepositoriet
  4. Åpne løsningsmappen i Visual Studio Kode

Brukes GitHub Copilot til testoppretting

GitHub Copilot kan hjelpe deg med å generere ulike testkomponenter basert på din kildestyrte løsning. Slik bruker du funksjonene effektivt:

Bruke eksempeldokumentasjon som kontekst

Test Engine-prøvekatalogen gir en rik kilde til referansemateriale for GitHub Copilot. Du kan hjelpe Copilot med å generere tester av høyere kvalitet ved å:

  • Inkludere samples.md-filen i arbeidsområdet
  • Referere til spesifikke eksempler i ledetekstene dine
  • Gi koblinger til GitHub-eksempelrepositorier

Du kan for eksempel gjøre følgende:

  • Åpne både programkoden og samples.md-filen i VS Code
  • Be Copilot om å lage tester "som ligner på ButtonClicker-prøven" eller "ved å bruke mønstre fra prøven Dataverse "
  • Referer til spesifikke funksjoner fra prøver som samsvarer med dine testbehov

Denne tilnærmingen hjelper Copilot med å forstå Power Platform testmotormønstre og generere mer nøyaktige tester.

Arbeide med GitHub Copilot i agentmodus

Visual Studio Kodens GitHub Copilot chat tilbyr en agentmodus som kan hjelpe deg med å generere tester basert på løsningsfilene dine. Denne modusen lar Copilot få tilgang til og forstå prosjektkonteksten din dypere.

Slik bruker du agentmodus for testgenerering:

  1. I VS Code åpner du GitHub Copilot Chat (Ctrl+Shift+I)
  2. Velg Agent fra Copilot-modusvelgeren
  3. Lag en detaljert melding om testen du vil lage

Eksempler på forespørsler for testgenerering

Prøv å bruke ledetekster som disse for testgenerering:

Mål:
Generer en omfattende testpakke for en lerretsapp ved hjelp av testmotoren Power Apps , modellert etter ButtonClicker-eksemplet.

Omgående:
Generer en test for ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml ved hjelp av eksemplet på https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker som referanse. Opprett forventede saker, kantsaker og unntakstilfeller. Testen skal opprette en YAML-testfil og Power Fx testtrinn, config.json og RunTest.ps1 basert på eksemplet for å gjøre det mulig for meg å kjøre testen.

Mål:
Bygg en detaljert testplan for en modelldrevet app for å sikre at kjernefunksjonalitet og forretningslogikk fungerer som forventet.

Omgående:
Opprett en omfattende testplan for den modelldrevne appen som du finner på ./SolutionPackage/src/Other/Solution.xml. Testen skal validere skjemainnlasting, oppføringsoppretting og kjøring av forretningsregler. Generer test-YAML,trinn Power Fx og et PowerShell-skript for å kjøre testen.

Mål:
Lag en testplan for Dataverse enheter for å bekrefte CRUD-operasjoner gjennom Power Fx handlinger.

Omgående:
Lag en omfattende testplan for mine Dataverse entites. Testen skal utføre handlinger for å opprette, oppdatere, slette Power Fx . Generer test-YAML,trinn Power Fx og et PowerShell-skript for å kjøre testen.

Forstå de genererte testkomponentene

Når GitHub Copilot en test genereres, opprettes vanligvis følgende komponenter:

  • YAML-testplan: Definerer teststrukturen, app-URL-adressen og testtrinnene
  • Power Fx testtrinn: Inneholder testlogikken ved hjelp av Power Fx uttrykk
  • config.json: Konfigurasjon for testutførelsesparametere
  • RunTest.ps1: PowerShell-skript for å utføre testen

Eksempel: Generert teststruktur

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

Anbefalte fremgangsmåter for AI-assistert testredigering

Vurder avsnittene nedenfor for å få mest mulig ut GitHub Copilot av testopprettingen av testmotoren.

Gi tydelig kontekst i ledetekstene dine

Vær spesifikk om hva du vil teste og inkluder referanser til:

  • De nøyaktige filene som skal testes
  • Eksempeltester som skal brukes som maler
  • Spesifikke testscenarier du vil dekke
  • Eventuelle godkjennings- eller miljøkrav

Bruke testmotoreksempler for kontekst

# samples.md dokumentasjonen katalogiserer alle tilgjengelige prøver fra Test Engine-depotet, som kan være en utmerket referanse når du lager forespørsler om GitHub Copilot. Når du for eksempel tester en lerretsapp med knapper, kan du referere til eksemplet på knappeklikker:

Omgående:
Generer en test for lerretsappen min på ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml ved hjelp av ButtonClicker-eksemplet fra https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker. Testen skal:
1. Kontroller at tellerknappen øker en verdi på skjermen
2. Test grensebetingelser (f.eks. maksverdi)
3. Inkluder OnTestCaseStart og OnTestCaseComplete livssykluskroker
4. Generer config.json med passende miljøvariabler

Denne tilnærmingen hjelper Copilot med å forstå teststrukturen og genererer mer nøyaktige, kontekstuelt relevante tester basert på velprøvde eksempler.

Bruk kildestyrte løsninger som kontekst

Copilot yter best når den kan analysere løsningsstrukturen. Bruk kildekontroll for Power Platform løsninger for å gi denne konteksten. Denne konteksten gjør det mulig for Copilot å:

  • Forstå appens struktur
  • Identifisere kontrollnavn og egenskaper
  • Generer mer nøyaktige testtrinn
  • Referer til de riktige filbanene

Gjennomgå og finjuster genererte tester

Selv om AI-genererte tester gir et utmerket utgangspunkt, vil alltid:

  • Kontrollere at kontrollreferanser samsvarer med programmet ditt
  • Legge til deklarasjoner for forretningskritisk funksjonalitet
  • Sørg for at kantkasser håndteres riktig
  • Valider godkjenningskonfigurasjon

Kombiner med manuell ekspertise

For komplekse testscenarier kan du bruke GitHub Copilot til å:

  • Generer testrammeverket og strukturen
  • Opprette standard valideringsmønstre
  • Foreslå kanttilfeller å vurdere

Deretter kan du utvide domeneekspertisen din for:

  • Forretningsspesifikke valideringsregler
  • Miljøhensyn
  • Spesialiserte testdata

Vanlige testgenereringsmønstre

Denne delen inneholder noen vanlige testgenereringsmønstre:

Teste lerretsapper

For lerretsapper bruker du ledetekster som refererer til App.fx.yaml filen i den kildekontrollerte løsningen:

Omgående:
Generer en test for lerretsappen min på ./SolutionPackage/src/CanvasApps/src/MyExpenseApp/Src/App.fx.yaml som validerer prosessen for innsending av utgifter. Testen skal fylle ut utgiftsfelt, sende skjemaet og kontrollere at bekreftelsesmeldingen vises.

Testing av modelldrevne apper

For modelldrevne apper fokuserer du på enhetsnavigasjon, skjemasamhandlinger og forretningsregler:

Omgående:
Opprett en test for den modelldrevne appen som tester skjemaet Forretningsforbindelse-enhet. Testen skal opprette en ny kontooppføring, validere obligatoriske felt og kontrollere at forretningsregler for beregning av kredittgrense fungerer som de skal.

Testing Dataverse av utvidelser

For Dataverse tester legger du vekt på dataoperasjoner og validering av forretningslogikk:

Omgående:
Generer en Dataverse test som validerer de tilpassede plugin-modulene i løsningen min. Testen skal opprette testposter, utløse plugin-kjøringen og bekrefte at de forventede datatransformasjonene har skjedd.

Prøvespesifikke testmeldinger

For å få den mest nøyaktige testgenereringen kan du referere til spesifikke prøver fra testmotorprøvekatalogen som samsvarer med testbehovene dine. Her er skreddersydde ledetekster for vanlige testscenarioer:

ButtonClicker-eksempelmeldinger

ButtonClicker-eksemplet demonstrerer grunnleggende testing av tellerfunksjonalitet. Bruk disse meldingene:

Omgående:
Generer en test for tellerappen min med en lignende struktur som ButtonClicker-eksemplet. Appen min har knapper som heter «IncrementBtn» og «ResetBtn» med en «CounterLabel» som viser gjeldende antall. Opprett en test som bekrefter at begge knappene fungerer som de skal, og at maksimalt antall er 10.

Omgående:
Opprett en test for knappesamhandlingsappen ved hjelp av ButtonClicker-eksemplet som referanse. Appen min har en «SubmitButton» som bare skal aktiveres når feltene «NameInput» og «EmailInput» er fullført. Generer en testplan med Power Fx trinn for å validere denne virkemåten.

Eksemplene på BasicGallery og NestedGallery viser hvordan du tester gallerisamhandlinger:

Omgående:
Generer en test for galleriappen min der jeg har et «Produkter»-galleri med produktelementer som inneholder «TitleLabel», «PriceLabel» og «SelectButton»-kontroller. Bruk eksempelstrukturen i BasicGallery til å bekrefte at jeg kan velge elementer og at de riktige detaljene vises i et "DetailPanel".

Spørsmål om dataoperasjoner

Eksemplet Dataverse demonstrerer testing av dataoperasjoner:

Omgående:
Opprett en test for CRM-appen ved hjelp av eksempelmønsteret Dataverse . Test at jeg kan opprette en ny kontaktoppføring, oppdatere den og deretter kontrollere at endringene vedvarer. Inkluder både UI-tester og direkte Dataverse operasjoner.

Spørsmål om AI-testing

Hvis du vil teste AI-drevet funksjonalitet, kan du se eksemplet AI-forespørsel:

Omgående:
Generer en test for sentimentanalyseappen basert på AI-forespørselseksemplet. Appen min har en "FeedbackInput"-tekstboks og brukes AI Builder til å klassifisere den som positiv, negativ eller nøytral. Opprett en test som validerer ulike inndata, og gir forventede utdata innenfor akseptable terskler.

Avanserte teknikker

Denne delen inneholder eksempler på avanserte ledetekstfunksjoner.

Opprette testsuiter for flere miljøer

Du kan be Copilot om å generere tester som fungerer på tvers av flere miljøer:

Omgående:
Generer en testpakke for appen min som kan kjøres i DEV-, TEST- og PROD-miljøer med riktige konfigurasjonsvariabler for hvert miljø.

Generere scenarioer for forhåndsvisning av data

For isolert testing med kontaktsmocking:

Omgående:
Opprett en test med falske koblingssvar for appen min som bruker Office 365 Outlook-koblingen. Testen skal simulere mottak av e-post og validere appens behandlingslogikk.

Testing av AI-funksjoner og håndtering av ikke-deterministiske resultater

Når du arbeider med AI-drevne applikasjoner, introduserer testing unike utfordringer siden AI-utdata kan variere litt mellom kjøringer, selv med identiske inndata. Denne ikke-deterministiske oppførselen krever spesielle testtilnærminger.

Forstå ikke-deterministisk testing

Ikke-deterministisk testing innebærer validering av utdata som legitimt kan variere på tvers av testkjøringer:

  • AI-modellutganger: Svar fra AI-modeller som GPT eller tilpassede AI Builder komponenter
  • Konfidensscore: Numeriske evalueringer som kan variere innenfor akseptable områder
  • Generert innhold: Tekst eller anbefalinger produsert av AI-systemer

Bruke Preview.AIExecutePrompt for deterministisk testing av AI-funksjoner

Testmotoren gir Preview.AIExecutePrompt som muliggjør deterministisk validering av AI-svar. Denne tilnærmingen lar deg:

  • Kjør AI-forespørsler i testscenarioer
  • Analyser og valider de strukturerte svarene
  • Verifisere at kritiske resultater oppfyller forventningene til tross for potensielle variasjoner

Eksempel: Vurderingsevaluering med AI Builder

Følgende eksempel demonstrerer bruk av Preview.AIExecutePrompt funksjonen til å teste et AI-drevet klassifiseringssystem:

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 eksemplet:

  • Testen utfører en AI-forespørsel mot «PromptEvaluator»-modellen
  • Den passerer en kontekst og et spørsmål for evaluering
  • Den validerer at den returnerte vurderingen samsvarer med den forventede verdien
  • Det gir klar tilbakemelding om testsuksess eller fiasko

Du kan utforske den fullstendige implementeringen i AI Prompt-eksemplet fra PowerApps TestEngine-repositoriet .

Inkorporering av AI-bevisst testing

Når du bruker GitHub Copilot til å generere tester for AI-drevne applikasjoner:

Omgående:
Generer en test for den AI-drevne appen som bruker AI Builder skjemabehandling. Inkluder testtrinn som validerer AI-resultatene med passende toleranse for ikke-deterministiske utdata.

Feilsøking og forbedring

If GitHub Copilot genererer tester som ikke oppfyller behovene dine:

  • Finjuster forespørselen: Vær mer spesifikk om hva du vil teste
  • Gi eksempler: Link til spesifikke testeksempler som samsvarer med ønsket stil
  • Bryt ned komplekse tester: Be om generering av mindre, fokuserte testkomponenter
  • Gjenta: Bruk Copilots svar for å avgrense neste forespørsel

Utforsk testmotorfunksjoner
Bla gjennom katalogen over prøvemotoreksempler
Finn ut mer om Power Fx testfunksjoner
Forstå YAML-testformatet
Utforsk autentiseringsalternativer
Opplæring: Bygge programmer med GitHub Copilot agentmodus