1 puan yazan GN⁺ 2024-02-25 | 1 yorum | WhatsApp'ta paylaş

Meta'nın yeni LLM tabanlı test üreticisi, geliştirmenin geleceğine göz atma fırsatı sunuyor

  • Meta, "Automated Unit Test Improvement using Large Language Models at Meta" başlıklı bir makale yayımladı.
  • Bu makale, yapay zekanın geliştirme hızını artırmak ve yazılımdaki hataları azaltmak için nasıl kullanılabileceğini gösteriyor.
  • LLM'leri geliştirici iş akışına entegre ederken, mevcut kod kapsamını iyileştiren doğru ve eksiksiz yazılım iyileştirme önerileri sunuyor.

Ana noktalar

  • TestGen-LLM, 'Assured LLM-based Software Engineering' (Assured LLMSE) yaklaşımını kullanıyor.
  • Birden fazla LLM, prompt ve hiperparametre kullanarak kod iyileştirme önerileri üretiyor ve en iyi öneriyi seçen bir ansambl yaklaşımı benimsiyor.
  • TestGen-LLM, özellikle mevcut insan yazımı testleri iyileştirmek için tasarlandı.

İstatistikler

  • Instagram'ın Reels ve Stories ürün değerlendirmelerinde, TestGen-LLM'in ürettiği test vakalarının %75'i sorunsuz derlendi, %57'si güvenilir şekilde geçti ve %25'i kapsamı artırdı.
  • TestGen-LLM, uygulandığı tüm sınıfların %10'unda iyileştirme sağlayabildi ve geliştiriciler test iyileştirme önerilerinin %73'ünü kabul ederek prodüksiyona aldı.
  • Meta mühendislerinin Instagram'ın test kapsamını artırmak için test ürettiği bir "test-a-thon" sırasında, TestGen-LLM testlerinin eklediği kod satırı sayısının medyanı 2,5 oldu.

Uygulanabilir içgörüler

  • Bu, LLM'lerle geliştirici üretkenliğini ve yazılım güvenilirliğini verimli biçimde artırmanın iyi bir örneği.
  • LLM'lerin gerçek değeri, beklenmedik edge case'leri bulup yakalamakta yatıyor.
  • LLM'leri prodüksiyonda kullanmak için orkestrasyon, pipeline ve işleme gerekiyor.

TestGen-LLM nasıl çalışıyor

  • TestGen-LLM, Meta'nın dahili LLM'i tarafından üretilen aday çözümlere bir dizi anlamsal filtre uygulayarak yalnızca en değerli testleri koruyor.
  • Filtre 1: derlenebilirlik, Filtre 2: çalıştırma (testin geçip geçmediği), Filtre 3: kararsızlık, Filtre 4: kapsam iyileştirmesi.
  • Bu işleme filtreleri, test paketinin iyileştirilmesini garanti ediyor.

Sonuç

  • Bu makale, birçok geliştiricinin zaten LLM kullandığı yazılım güvenilirliği alanında LLM ilerlemesini takip etmek için iyi bir yöntem.
  • LLM'ler giderek daha karmaşık yazılım sistemlerinde hata bulup test edebilecek.

GN⁺ görüşü

  • Bu yazı, yapay zekanın yazılım geliştirmenin geleceğini nasıl etkileyebileceğine dair ilgi çekici içgörüler sunuyor.
  • TestGen-LLM gibi araçlar, geliştiricilerin işini otomatikleştirmede ve verimliliği artırmada büyük yardımcı olabilir.
  • Bu tür teknolojik gelişmeler, yazılım geliştirmenin karmaşıklığını azaltma, kaliteyi artırma ve geliştiricilerin zamanından tasarruf etme yönünde ilerliyor.

1 yorum

 
GN⁺ 2024-02-25
Hacker News görüşleri
  • Test kodunu LLM'lerle (büyük dil modelleri) yazmanın, implementasyonun önüne geçme eğilimi göstermesi ilginç bulunuyor. Testler, sistemin nasıl çalışması gerektiğini açıklama işlevi gördüğü için bunun insanlar tarafından tanımlanması gereken kısım olduğu görüşü var. Ancak LLM'ler, açıkça belirtilmemiş alanları işaret etmede faydalı olabilir ve bu alanlar için birim testleri önermek LLM'lerin uygun bir kullanım şekli olabilir.
  • Meta'nın TestGen-LLM'inin ürettiği test vakalarının çoğunun yalnızca 2,5 satırlık ek kod kapsamı sağladığı, buna karşılık bir test vakasının tam 1326 satırı kapsadığı blog yazısına yönelik eleştiri var. Bunun istisnai bir durum olduğu, makalenin de çoğu test vakasının beklenen kod kapsamının çok altında kaldığını açıkça belirttiği söyleniyor. Makalenin yazarları bunu "jackpot" olarak nitelendiriyor ve bu tür bir sonucun genel olmadığını netleştiriyor.
  • İyi test yazmanın zor olduğu görüşü var. Kod kapsamı tek başına her zaman iyi bir şey değildir ve fazla test yazmak programı katılaştırabilir. LLM kullanarak testleri yeniden üretmek ilerleme gibi görünebilir, ancak bu sonuçta yalnızca bir değişiklik algılama programı üretmek olabilir.
  • TestGen-LLM hakkındaki makalenin özetinin gerçek içerikle örtüşmediğine dikkat çekiliyor. Özet, test vakaları için başarı oranından söz ederken, asıl rapor test sınıfları için başarı oranını ele alıyor; bu ise çok farklı bir ifade. Sonuç bölümünde de bu fark yanlış yansıtılıyor.
  • Gelecekte LLM tarafından üretilmiş kodu bakımını yapmak zorunda kalacak geliştiricilere acıyanlar var. Bu tür kodların yönetilmesinin zor olacağı yönünde kaygılar dile getiriliyor.
  • LLM tarafından üretilen test kodunun geliştiriciler için düşmanca bir ortam yaratabileceği endişesi var. Her seferinde bakımı zor olan LLM üretimi test kodunu onaylatmak zorunda kalınabilecek bir durumdan söz ediliyor. Test yazımı hızlanabilir, ancak bakımın mutlaka kolaylaşacağı anlamına gelmez. Testler, kod tasarımını gözden geçirmeye yardımcı olur ve test yazmak kolay değilse tasarım iyi olmayabilir. Testler otomatik güvence sağlar ve olası hataları önlemeye yardımcı olur, ancak kapsam arttıkça yatırımın getirisi azalır. LLM'ler ancak deneyimli bir geliştirici neyin test edilmesi gerektiğini zaten biliyorsa zaman kazandırabilir.
  • GPT-4 kullanarak bir TypeScript modülü için birim testleri üretmeyi denemiş ve bunun gerçekten çalışan testler verdiğini söyleyen bir deneyim paylaşılmış.
  • Yapay zekanın hangi testlerin yazılması gerektiğini nasıl bilebileceği sorgulanıyor. Yapay zekanın yazılım geliştirmeye yardımcı olmasının en iyi yolunun, programcı koda dair sorular sorduğunda yanıt vermesi olduğu; bazen buna kod önerilerinin eşlik edebileceği, bazen de etmeyebileceği ifade ediliyor. Yapay zekanın kodu anlamaya ve nasıl iyileştirileceğini kavramaya yardımcı olması gerektiği savunuluyor.
  • Yapay zeka kodu hakkındaki görüşlerin, gerçek araçları kullanıp iyi bilinen bir kod tabanında üretilen çıktıları incelemeye dayanan pratik deneyim olmadan çok değerli olmayacağı görüşü var. Yapay zeka kodu oldukça politik bir konu ve birçok kişinin güçlü fikirleri bulunuyor. Yine de bunu gerçekten deneme isteği olduğu belirtiliyor. Bu teknolojilerin geliştirme maliyeti çok yüksek olduğu için, yapay zeka araçları ciddi ölçüde iyileşmezse bu maliyeti haklı çıkarmanın zor olabileceği söyleniyor. Buna rağmen gelecekte başarılabilecekler konusunda iyimserlik korunuyor.
  • Makalenin sesli kitap özeti bağlantısının paylaşıldığı belirtiliyor.