paint-brush
Yazılım Testi için ChatGPT'den Yararlanmaile@ratikeshmisra
4,473 okumalar
4,473 okumalar

Yazılım Testi için ChatGPT'den Yararlanma

ile Ratikesh4m2023/09/16
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

Son 2 yılda, yapay zekadaki, özellikle Yüksek Lisans'lardaki (Büyük Dil Modelleri) ilerlemenin, geleneksel sorunları daha verimli bir şekilde çözdüğü ortaya çıktı. Yüksek Lisans'ların yaratabileceği bu tür etkilerden biri, yazılım testlerimizi otomatikleştirmeye yönelik yardımdır. Çoğu yazılım ekibi için otomasyon hiçbir zaman SDLC döngüsünün birinci sınıf vatandaşı olmadı ve ekipler test senaryolarını otomatikleştirmek için çabalıyor.
featured image - Yazılım Testi için ChatGPT'den Yararlanma
Ratikesh HackerNoon profile picture
0-item
1-item

Geçtiğimiz 2 yılda, yapay zekadaki, özellikle de LLM'lerdeki (Büyük Dil Modelleri) ilerlemenin, geleneksel sorunları daha verimli bir şekilde çözdüğü ortaya çıktı ve LLM'lerin yaratabileceği bu tür etkilerden biri, yazılım testlerimizi otomatikleştirmeye yardımcı olmaktır. Çoğu yazılım ekibi için otomasyon hiçbir zaman SDLC döngüsünün birinci sınıf vatandaşı olmadı ve ekipler " Test Otomasyon Borcunu " oluşturan test senaryolarını otomatikleştirmek için mücadele ediyor. Test otomasyonundaki bu boşluk nedeniyle, kalite ekipleri bu test senaryolarını manuel olarak doğrulamak ve yazmak için çok fazla zaman harcıyor ve sonuç olarak mühendislik ekibinin nakliye hızı yavaşlıyor.


Kod karmaşıklığı nedeniyle Manuel Test için zaman değişimi


Böyle bir eziyeti önlemek için mevcut olan tek kaçış yolu, test senaryolarını üstün bir hızda otomatikleştirmektir ancak çoğu zaman bunu yapamıyoruz çünkü:


  • Ölçeklenebilir kodu yazmak için manuel QA ekipleri arasında otomasyon deneyiminin olmaması.
  • Otomasyonu başlatmanın maliyeti ( mühendislik yönetimi ve kalite güvencesinden gereken bant genişliği açısından ), otomatikleştirilmesi gereken test senaryolarının çok büyük birikmiş olması nedeniyle çok yüksektir.
  • Test senaryoları için düşük kaliteli dokümantasyon ve regresyon ve akıl sağlığı paketinin uygun şekilde bakımının yapılmaması.
  • Ürün şirketlerinin çoğu özellik geliştirmeye odaklandığı için istikrar ve kalite arka plana atılıyor.
  • Test senaryolarının insan tarafından değerlendirilmesi, makine değerlendirmesine tercih edilir.


Yukarıda bahsedilen tüm sorunların, yazılım ekiplerinin bunlarla nasıl başa çıkması gerektiğine dair ayrı bir makale gerektirmesine rağmen, bu bölümde QA mühendislerinin BDD'de (davranış odaklı test) yardımcı pilotları olarak ChatGPT veya LLM'lerden nasıl yararlanabilecekleri hakkında konuşacağız.

BDD ve otomasyonu için GPT3.5'in kullanılması


BDD nedir?


Davranış odaklı geliştirme (BDD), bir uygulamanın, kullanıcının onunla etkileşimde bulunurken deneyimlemeyi beklediği davranış etrafında belgelendiği ve tasarlandığı Çevik bir yazılım geliştirme metodolojisidir. Bu tartışmanın bağlamı için bir YC web sitesinde BDD tabanlı testi uygulayalım ve YC hacker haberlerinin giriş sayfasını başlangıç noktası olarak ele alalım.


YC Hacker Haberleri Giriş Sayfası


Yukarıda belirtilen sayfa için beklenen davranış şudur:

" Bir kullanıcı oturum açmayı denediğinde ve https://news.ycombinator.com/login?goto=news adresinde geçerli kimlik bilgilerini girdiğinde ve oturum aç tuşuna bastığında, kullanıcıyı hacker haber web sitesine yönlendirmelidir ".


BDD yönergelerine göre yukarıdaki davranış, olası bir test senaryosu olabilecek Salatalık sözdizimi/adımları olarak yazılabilir ve salatalık bir çerçeve olarak kullanılarak aynı Salatalık otomatikleştirilebilir ve bu davranış artık insan müdahalesine ihtiyaç duymaz . Bununla birlikte, yukarıdaki bölümde tartıştığımız sorun nedeniyle, QA ekibi genellikle aynı şeyi otomatikleştirmede sıkıntı çekiyor, ancak birkaç komut yazarak ve QA ekiplerimizin Gherkin adımlarını ve otomasyonunu iptal etmesi için bir iş akışı oluşturarak LLM'lerin gücünden yararlanabiliriz. salatalık çerçevesinde daha hızlı.



Kornişon Söz Dizimi Oluşturma İş Akışı

Kornişon söz dizimi oluşturmaya yönelik iş akışı


Örneğin aşağıdaki resimde, doğal dilde sunulan davranış için salatalık sözdizimini oluşturma istemini kullanarak GPT modelinde nasıl ince ayar yapabileceğinizi gösterdim.


ChatGPT, sunulan bir davranış için ilgili Gherkin Sözdiziminin çıktısını verir



Gherkin Sözdiziminden salatalık uyumlu kod oluşturmaya yönelik iş akışı

GPT kullanarak Kornişon adımlarıyla Salatalık uyumlu kod oluşturma


1. Adım: Tasarlanma istemi


Aşağıda, sağlanan HTML kodunu ve Gherkin adımlarını kullanarak uygun otomasyonu sağlamak üzere ince ayar yapmak için ChatGPT konsoluna yazabileceğiniz istem bulunmaktadır. Son çıktı olarak, QA'lar tarafından olduğu gibi kopyalanıp yapıştırılabilen, salatalık tarafından ihtiyaç duyulan adım tanımı biçiminde kod oluşturmayı istedik.



Salatalık tabanlı otomasyonu oluşturmak için GPT'de ince ayar yapma istemi


Adım 2: Otomasyon için temel olarak kullanılması gereken ilgili HTML'nin enjekte edilmesi.

Aşağıda gösterildiği gibi ince ayar yaptıktan sonra ChatGPT, salatalık için adım tanımları oluşturmak için kullanabileceği ilgili HTML ve Salatalık adımlarını ister.


Otomasyon için kullanılması gereken HTML feed'i


Adım3: Adım tanımının oluşturulması


Bunun sonucunda GPT, sağlanan HTML'den DOM yapısını anlayacak ve sizden ilgili Gherkin sözdizimini isteyecektir. Yukarıdaki durum için, olduğu gibi geçebileceğimiz Salatalığı zaten oluşturduk:


 Feature: User Login Redirect Scenario: User logs in with valid credentials Given the user is on the login page of "https://news.ycombinator.com/login?goto=news" When the user enters valid credentials and presses the login button Then the user should be redirected to the "hacker news" website


Nihai çıktı


Son olarak, iş akışına ve belirtilen istem uyarınca, yukarıdaki Kornişon adımları ve bahsedilen senaryo için adım tanım dosyasını oluşturur; bu, sözde davranışın otomasyonunu hızlandırmak için küçük kalite kontrolünden sonra QA'lar tarafından salatalık çerçevesinde kopyalandığı gibi olabilir. test etmek.


Oluşturulan salatalık adım tanımı

Yardımcı pilotların yaşı

Yapay zekanın ortaya çıkışı ve yardımcı pilotların ortaya çıkmasıyla birlikte insanlar üretkenliklerinde bir artış görecek. Temel ve rutin görevleri yapay zekaya devrederek inovasyonun sınırlarını daha da zorlayabilecekler. Ancak yine de onları yaptığımız işin asistanı olarak görmemiz gerektiğini düşünüyorum ve teknoloji, pazarlama, satış ve müşteri başarı ekipleri iş akışlarında yüksek lisansların gücünden yararlanmaya çalışırken onları kullanma zekası yine de insanlarda yer alacaktır. aynı şey QA mühendisleri tarafından da yapılabilir, böylece üretkenliklerini daha da artırabilirler ve yazılımın kalitesini ve istikrarını sağlama çalışmalarını heyecan verici hale getirebilirler!