GitHub Copilot ile yapay zeka destekli test yazma (kullanım dışı)

Not

Test Altyapısı kullanım dışıdır ve gelecek bir sürümde kaldırılacaktır. Power Platform ve Dynamics 365 hizmetlerindeki test otomasyonu özellikleri için Power Platform Playwright örneklerini kullanın.

Uygulamalar için Power Platform kapsamlı test planları oluşturmak, özellikle karmaşık senaryolar için zaman alıcı olabilir. GitHub Copilot gibi yapay zeka destekli yazma araçları, test şablonları oluşturarak, test çalışmaları önererek ve ortak kod oluşturmayı otomatikleştirerek bu süreci önemli ölçüde hızlandırabilir.

Bu kılavuzda, Test Altyapısı test planlarını verimli bir şekilde oluşturmak için Power Platform kaynak denetimi çözümleriyle GitHub Copilot nasıl kullanılacağı açıklanmaktadır.

Önkoşullar

Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:

Test yazma ortamınızı ayarlama

Yapay zeka destekli test yazmanın etkinliğini en üst düzeye çıkarmak için bu araçları yapılandırılmış bir iş akışında birleştirin:

  1. Kaynak dosyalarınızı alın
  2. Sürüm denetimi için bir git deposu başlatın (henüz yapılmadıysa)
  3. Çözüm deponuzda ayrılmış bir test klasörü oluşturun
  4. ** Çözüm klasörünü Visual Studio Code'da açın

Test oluşturma için GitHub Copilot kullanma

GitHub Copilot, kaynak denetimli çözümünüz temelinde çeşitli test bileşenleri oluşturmanıza yardımcı olabilir. Yeteneklerini etkili bir şekilde nasıl kullanacağınız aşağıda açıklanmıştır:

Örnek belgeleri bağlam olarak kullanma

Test Altyapısı örnekleri kataloğu GitHub Copilot için zengin bir başvuru malzemesi kaynağı sağlar. Copilot daha yüksek kaliteli testler oluşturmasına şu şekilde yardımcı olabilirsiniz:

  • samples.md dosyasını çalışma alanınıza dahil etme
  • Bilgi istemlerinizde belirli örneklere atıfta bulunma
  • Örnek GitHub depolarına bağlantılar sağlama

Örneğin, şunları yapabilirsiniz:

  • VS Code'da hem uygulama kodunuzu hem de samples.md dosyasını açın
  • "ButtonClicker örneğine benzer" veya "Dataverse örneğinden desenleri kullanma" testleri oluşturmak için Copilot'a Sor
  • Test gereksinimlerinize uygun örneklerden belirli yeteneklere başvurun

Bu yaklaşım, Copilot'un Power Platform Test Motoru desenlerini anlamasına ve daha doğru testler oluşturmasına yardımcı olur.

Temsilci Modunda GitHub Copilot ile çalışma

Visual Studio Code GitHub Copilot Chat, çözüm dosyalarınıza göre testler oluşturmanıza yardımcı olabilecek bir Agent Modu sunar. Bu mod, Copilot proje bağlamınıza daha derinden erişmesine ve bunları anlamasına olanak tanır.

Test oluşturma için Aracı Modu'nu kullanmak için:

  1. VS Code'da GitHub Copilot Chat 'yi açın (Ctrl+Shift+I)
  2. Copilot modu seçiciden Agent seçin
  3. Oluşturmak istediğiniz test hakkında ayrıntılı bir bilgi istemi oluşturun

Test oluşturma için örnek istemler

Test oluşturma için aşağıdakilere benzer istemleri kullanmayı deneyin:

Hedef:
ButtonClicker örneği sonrasında modellenen Power Apps Test Altyapısı'nı kullanarak tuval uygulaması için kapsamlı bir test paketi oluşturun.

Komut:
Örneği başvuru olarak kullanarak https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml için bir test oluşturun. Beklenen durumları, uç durumları ve özel durumları oluşturun. Test, testi çalıştırmamı sağlamak için örneğe dayalı olarak bir test YAML dosyası ve Power Fx test adımları, config.json ve RunTest.ps1 oluşturmalıdır.

Hedef:
Temel işlevlerin ve iş mantığının beklendiği gibi çalıştığından emin olmak için Model yönetimli bir uygulama için ayrıntılı bir test planı oluşturun.

Komut:
./SolutionPackage/src/Other/Solution.xml konumunda bulunan Model yönetimli uygulamam için kapsamlı bir test planı oluşturun. Test, form yüklemesini, kayıt oluşturmayı ve iş kuralı yürütmeyi doğrulamalıdır. Testi çalıştırmak için test YAML dosyasını, Power Fx adımlarını ve bir PowerShell betiğini oluşturun.

Hedef:
Dataverse varlıkları için CRUD işlemlerini Power Fx kullanarak doğrulayabilmek amacıyla bir test planı oluşturun.

Komut:
Dataverse varlıklarım için kapsamlı bir test planı oluşturun. Test, oluşturma, güncelleştirme, silme Power Fx eylemlerini gerçekleştirmelidir. Testi çalıştırmak için test YAML dosyasını, Power Fx adımlarını ve bir PowerShell betiğini oluşturun.

Oluşturulan test bileşenlerini anlama

GitHub Copilot bir test oluşturduğunda genellikle aşağıdaki bileşenleri oluşturur:

  • YAML test planı: Test yapısını, uygulama URL'sini ve test adımlarını tanımlar
  • Power Fx test adımları: İfadeleri kullanarak Power Fx test mantığını içerir
  • config.json: Test yürütme parametreleri için yapılandırma
  • RunTest.ps1: Testi yürütmek için PowerShell betiği

Örnek: Oluşturulan test yapısı

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

Yapay zeka destekli test yazma için en iyi uygulamalar

GitHub Copilot'u Test Motoru testi oluşturma için en iyi şekilde kullanmak amacıyla aşağıdaki bölümleri göz önünde bulundurun.

Bilgi istemlerinizde net bir bağlam sağlayın

Neyi test etmek istediğiniz konusunda net olun ve aşağıdakilere referanslar ekleyin:

  • Test edilecek tam dosyalar
  • Şablon olarak kullanılacak örnek testler
  • Ele almak istediğiniz belirli test senaryoları
  • Herhangi bir kimlik doğrulama veya ortam gereksinimi

Bağlam için Test Engine örneklerinin kullanımı

samples.md belgeleri Test Altyapısı deposundaki tüm kullanılabilir örnekleri kataloglar. Bu, GitHub Copilot için istemler oluştururken mükemmel bir başvuru olabilir. Örneğin, düğmelerle bir tuval uygulamasını test ederken Button Clicker örneğine başvurabilirsiniz:

Komut:
ButtonClicker örneğini kullanarak ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml adresinde Canvas uygulamam için bir https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker test oluşturun. Test şunları yapmalıdır:
1. Sayaç düğmemin ekrandaki bir değeri artırdığını doğrulayın
2. Test sınır koşulları (örneğin, maksimum değer)
3. OnTestCaseStart ve OnTestCaseComplete yaşam döngüsü kancalarını dahil edin
4. Uygun ortam değişkenleriyle config.json oluşturun

Bu yaklaşım, test yapısını Copilot anlamanıza yardımcı olur ve kanıtlanmış örnekler temelinde daha doğru, bağlamsal olarak ilgili testler oluşturur.

Kaynak denetimli çözümleri bağlam olarak kullanma

Copilot çözüm yapınızı analiz ederken en iyi performansı gösterir. Bu bağlamı sağlamak için çözümler için Power Platform kaynak denetimini kullanın . Bu bağlam, Copilot şunları yapmasına olanak tanır:

  • Uygulamanızın yapısını anlayın
  • Denetim adlarını ve özelliklerini tanımlama
  • Daha doğru test adımları oluşturun
  • Doğru dosya yollarına başvurun

Oluşturulan testleri gözden geçirin ve iyileştirin

Yapay zeka tarafından oluşturulan testler mükemmel bir başlangıç noktası sağlarken, her zaman:

  • Kontrol referanslarının uygulamanızla eşleştiğini doğrulayın
  • İş açısından kritik işlevler için doğrulamalar ekleme
  • Uç durumların düzgün bir şekilde işlendiğinden emin olun
  • Kimlik doğrulama yapılandırmasını doğrulama

El ile uzmanlıkla birleştirme

Karmaşık test senaryoları için GitHub Copilot kullanın:

  • Test çerçevesini ve yapısını oluşturun
  • Standart doğrulama desenleri oluşturun
  • Dikkate alınması gereken uç durumlar önerin

Ardından, aşağıdakiler için alan uzmanlığınızla artırın:

  • İşletmeye özel doğrulama kuralları
  • Çevresel hususlar
  • Özel test verileri

Yaygın test oluşturma desenleri

Bu bölüm bazı yaygın test oluşturma desenlerini içerir:

Canvas Uygulamalarını Test Etme

Tuval uygulamaları için, kaynak denetimli çözümünüzdeki App.fx.yaml dosyasına referans veren istemleri kullanın.

Komut:
./SolutionPackage/src/CanvasApps/src/MyExpenseApp/Src/App.fx.yaml dosyasında tuval uygulamam için gider gönderme işlemini doğrulayan bir test oluştur. Test, gider alanlarını doldurmalı, formu göndermeli ve onay iletisinin görüntülendiğini doğrulamalıdır.

Model yönetimli uygulamaları test etme

Model yönetimli uygulamalar için varlık gezintisine, form etkileşimlerine ve iş kurallarına odaklanın:

Komut:
Model yönetimli uygulamam için Hesap varlık formunu test eden bir test oluşturun. Testin yeni bir firma kaydı oluşturması, gerekli alanları doğrulaması ve kredi limiti hesaplaması için iş kurallarının doğru çalıştığını doğrulaması gerekir.

Dataverse Uzantılarını Test Etme

Dataverse testleri için, veri işlemleri ve iş mantığı doğrulamasına öncelik verin.

Komut:
Çözümümdeki özel eklentileri doğrulayan bir Dataverse test oluşturun. Test, test kayıtları oluşturmalı, eklenti yürütmesini tetiklemeli ve beklenen veri dönüşümlerinin gerçekleştiğini doğrulamalıdır.

Örneğe özel test istemleri

En doğru test oluşturmayı elde etmek için, Test Altyapısı örnekleri kataloğundan test gereksinimlerinize uyan belirli örneklere başvurun. Yaygın test senaryoları için uyarlanmış istemler şunlardır:

ButtonClicker örnek istemleri

ButtonClicker örneği , temel sayaç işlevselliği testini gösterir. Şu istemleri kullanın:

Komut:
Sayaç uygulamam için ButtonClicker örneğine benzer bir yapıya sahip bir test oluşturun. Uygulamamda, geçerli sayıyı görüntüleyen bir "CounterLabel" ile "IncrementBtn" ve "ResetBtn" adlı düğmeler olsun. Her iki düğmenin de düzgün çalıştığını ve en fazla sayının 10 olduğunu doğrulayan bir test oluşturun.

Komut:
ButtonClicker örneğini başvuru olarak kullanarak düğme etkileşim uygulamam için bir test oluşturun. Uygulamamda yalnızca "NameInput" ve "EmailInput" alanları tamamlandığında etkinleştirilmesi gereken bir "SubmitButton" var. Bu davranışı doğrulamak için adımlar içeren Power Fx bir test planı oluşturun.

BasicGallery ve NestedGallery örnekleri, galeri etkileşimlerinin nasıl test edileceğini gösterir:

Komut:
"TitleLabel", "PriceLabel" ve "SelectButton" denetimlerini içeren ürün öğelerine sahip bir "Ürünler" galerisine sahip olduğum galeri uygulamam için bir test oluşturun. Öğeleri seçebildiğimi ve doğru ayrıntıların bir "DetailPanel" içinde göründüğünü doğrulamak için BasicGallery örnek yapısını kullanın.

Veri işlemleri istemleri

Örnek Dataverse , veri işlemleri testini gösterir:

Komut:
Örnek deseni Dataverse kullanarak CRM uygulamam için bir test oluşturun. Yeni bir İlgili Kişi kaydı oluşturup oluşturamayacağımı sınayın, güncelleştirin ve ardından değişikliklerin devam ettiğini doğrulayın. Hem UI testlerini hem de doğrudan Dataverse işlemleri dahil edin.

AI test komutları

Yapay zeka destekli işlevselliği test etmek için AI İstemi örneğine başvurun:

Komut:
AI Prompt örneğini temel alan duygu analizi uygulamam için bir test oluşturun. Uygulamamda "FeedbackInput" metin kutusu var ve AI Builder kullanarak bunu pozitif, negatif veya nötr olarak sınıflandırır. Farklı girdilerin kabul edilebilir eşikler içinde beklenen çıktıları ürettiğini doğrulayan bir test oluşturun.

İleri teknikler

Bu bölümde, gelişmiş bilgi istemi özelliklerine ilişkin örnekler verilmektedir.

Çok ortamlı test paketleri oluşturma

Copilot birden çok ortamda çalışan testler oluşturmasını isteyebilirsiniz:

Komut:
Uygulamam için her ortam için uygun yapılandırma değişkenleriyle DEV, TEST ve PROD ortamlarında çalışabilen bir test paketi oluşturun.

Veri simülasyon senaryoları oluşturma

Bağlayıcı simülasyonu ile yalıtılmış testler için:

Komut:
Uygulamam için Office 365 Outlook bağlayıcısını kullanan sahte bağlayıcı yanıtlarıyla bir test oluşturun. Test, e-posta almayı simüle etmeli ve uygulamanın işleme mantığını doğrulamalıdır.

Yapay zeka yeteneklerini test etme ve belirleyici olmayan sonuçları işleme

Yapay zeka destekli uygulamalarla çalışırken, yapay zeka çıkışları aynı girdilerle bile çalıştırmalar arasında biraz farklılık gösterebileceğinden, test etmek benzersiz zorluklar ortaya çıkarır. Bu deterministik olmayan davranış, özel test yaklaşımları gerektirir.

Deterministik olmayan testleri anlama

Deterministik olmayan test, test çalıştırmaları arasında yasal olarak farklılık gösterebilecek çıktıların doğrulanmasını içerir:

  • AI Model Çıkışları: GPT veya özel AI Builder bileşenleri gibi yapay zeka modellerinden gelen yanıtlar
  • Güvenilirlik Puanları: Kabul edilebilir aralıklarda dalgalanma gösterebilecek sayısal değerlendirmeler
  • Oluşturulan İçerik: Yapay zeka sistemleri tarafından üretilen metin veya öneriler

Yapay zeka özelliklerinin deterministik testi için Preview.AIExecutePrompt kullanma

Test Altyapısı, yapay zeka yanıtlarının deterministik doğrulamasını sağlayan Preview.AIExecutePrompt'u sağlar. Bu yaklaşım şunları yapmanızı sağlar:

  • Test senaryolarında yapay zeka istemlerini yürütün
  • Yapılandırılmış yanıtları ayrıştırın ve doğrulayın
  • Potansiyel değişikliklere rağmen kritik çıktıların beklentileri karşıladığını doğrulayın

Örnek: AI Builder ile derecelendirme değerlendirmesi

Aşağıdaki örnek, yapay zeka destekli bir derecelendirme sistemini test etmek için işlevin Preview.AIExecutePrompt kullanılmasını gösterir:

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

Bu örnekte:

  • Test, "PromptEvaluator" modeline karşı bir AI istemi yürütür
  • Değerlendirme için bir bağlam ve bir soruyu aktarır
  • Döndürülen derecelendirmenin beklenen değerle eşleştiğini doğrular
  • Test başarısı veya başarısızlığı hakkında net geri bildirim sağlar

TestEngine deposundaki PowerAppsAI Prompt örneğinde uygulamanın tamamını keşfedebilirsiniz.

Yapay zekaya duyarlı testleri dahil etme

Yapay zeka destekli uygulamalar için testler oluşturmak üzere GitHub Copilot kullanırken:

Komut:
Yapay zeka destekli uygulamam için AI Builder form işleme kullanan bir test oluşturun. Deterministik olmayan çıktılar için uygun toleransla AI sonuçlarını doğrulayan test adımlarını dahil edin.

Sorun giderme ve iyileştirme

GitHub Copilot gereksinimlerinizi karşılamayen testler oluşturursa:

  • İsteminizi hassaslaştırın: Neyi test etmek istediğiniz konusunda daha spesifik olun
  • Örnekler sağlayın: İstediğiniz stile uyan belirli test örneklerine bağlantı verin
  • Karmaşık testleri parçalara ayırın: Daha küçük ve odaklanmış test bileşenleri oluşturulmasını talep edin
  • Iterate: Sonraki isteminizi daraltmak için Copilot yanıtlarını kullanın

Test Altyapısı özelliklerini keşfedin
Test Altyapısı örnekleri kataloğuna göz atın
Power Fx test işlevleri hakkında bilgi edinin
YAML test biçimini anlama
Kimlik doğrulama seçeneklerini keşfedin
Training: GitHub Copilot aracısı moduyla uygulama oluşturma