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.
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ü:
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 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.
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ışı
Ö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.
Gherkin Sözdiziminden salatalık uyumlu kod oluşturmaya yönelik iş akışı
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.
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.
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.
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!