Yapay Zekâ Ajanlarıyla Test Odaklı Geliştirme

Yapay Zekâ Ajanlarıyla Test Odaklı Geliştirme

TDD’yi Windsurf ve Claude 3.5 Sonnet gibi AI kodlama ajanlarıyla birleştirmenin en iyi uygulamalarını öğrenin; yazılım geliştirme hattınızı otomatikleştirip sadeleştirin.

TDD (Test Odaklı Geliştirme) Nedir?

TDD’nin merkezinde Kırmızı-Yeşil-Refactor olarak bilinen döngüsel bir süreç yer alır. Döngü, geliştiricinin istenen bir özelliği veya davranışı tanımlayan otomatik bir test vakası yazdığı “Kırmızı” aşamasıyla başlar. Bu test, ilgili kod henüz var olmadığı için bilinçli olarak başta başarısız olacak şekilde yazılır. Bu ilk başarısızlık, testin gerçekten istenen işlevselliği test ettiğini ve kod uygulandığında hataları yakalayabildiğini garanti altına almak için kritiktir.

Ardından gelen “Yeşil” aşamasında, daha önce başarısız olan testi geçirecek minimum miktarda kod yazılır. Bu ilke, geliştiricilerin testle tanımlanan anlık gereksinime odaklanmasını, temiz bir kod tabanı sürdürmesini ve aşırı mühendislikten kaçınmasını teşvik eder.

Son olarak “Refactor” aşamasında, hem test kodunun hem de üretim kodunun yapısı, okunabilirliği ve sürdürülebilirliği iyileştirilir; bu sırada mevcut tüm testlerin geçmeye devam etmesi sağlanır. Refactor işlemi, kod tabanının sağlıklı ve gelecekteki değişikliklere uyarlanabilir kalmasını, mevcut test paketinin ise bu aşamada bir güvenlik ağı işlevi görmesini mümkün kılar.

TDD hattınızı tam otomatikle nasıl hale getirebilirsiniz?

Kodlama sırasında Yapay Zekâ Ajanlarının performansını etkileyen pek çok faktör vardır. LLM modelinden, kodunuzu ve geliştirme hattınızı nasıl yapılandırdığınıza kadar birçok unsur etkilidir. Windsurf ve Claude 3.5 sonnet ile TDD’nin etkili olduğunu gördük. Aşağıda, TDD ile uygulanan örnek bir görev yer almaktadır.

Neye ihtiyacınız var?

Kodlamaya başlamadan önce şunlara ihtiyacımız var:

Yeterli Testler

TDD’ye uygun testlerinizin önceden yazılmış ve probleminizin kapsamının çoğunu mantıklı ve Yapay Zekâ Ajanı için faydalı şekilde kapsadığından emin olun. AI Ajanı için hiçbir şeyi değiştirmeye veya özelleştirmeye gerek yok. Testleriniz ve isimlendirme kurallarınız bir standarda dayanıyorsa daha iyi olur. İlk adımda AI Ajanı, uygulamaya başlamak için bu testleri görecektir.

İşte bir belgenin MongoDB’ye doğru eklenip eklenmediğini test eden bir test örneğim:

MongoDB test example

Arayüzler

Java’da (veya başka bir programlama dilinde) bir Arayüz, sınıfların nasıl görünmesi ve hangi metodları uygulaması gerektiğini tanımlayan bir yapıdır. AI Ajanını daha da yönlendirmek için, doküman ekleyeceğiniz repository’niz için bir Arayüz oluşturmak faydalı olacaktır:

Java interface example Java interface code

Görevin spesifik tanımı

Son olarak, spesifik bir görev tanımına ihtiyacımız var. Genellikle görevi tanımladığınız JIRA veya GitHub işlerini kullanabilirsiniz. Bizimki şöyle:

Task description screenshot

Vibe Coding’e Başlayın

Vibe coding, ihtiyacınızı sade İngilizceyle (veya hatta sesli komutlarla) tarif ettiğinizde, AI’nın sizin için gerçek zamanlı olarak kod üretmesi anlamına gelir. Bu blogda Vibe Coding’e detaylıca değiniyoruz. İşte Windsurf’ta görevi tamamlaması için kullandığım prompt:

Prompt example for Windsurf

Aşağıdaki sorguyu, bir veya birden fazla adlandırılmış sorgu ve Java kodu kombinasyonu olarak uygula.

Belirli bir tarih aralığında, en az X yolculuğu 5’in üstünde puanla tamamlamış ve hiç 3 yıldızın altında puan almamış tüm sürücüleri bul.

Not:
Bu görevi çözmek için tek bir sorgu bulmak zorunda değilsin (Java kodu ve adlandırılmış sorguların kombinasyonunu kullanabilirsin), ancak ORM-performansını aklında bulundurmalısın, yani çok fazla varlığın olması durumunda çözümünün makul derecede hızlı olduğundan emin ol. Tartışma sırasında, kötü yazılmış sorgularla ne tür problemlerin ortaya çıkabileceğini açıklayabilmelisin.

@Ass1_2_2Test.java#L35-60 bunlar ilgili testlerdir. @DriverDAO.java#L34-63 içinde uygulanmıştır.

Dosyaların belirtilmesi, vibe coding sırasında en önemli unsurdur. Şimdi arkanıza yaslanın ve AI Ajanının sihrini izleyin. Sınıfı uyguladı, testleri çalıştırdı ve testlerin geçmesi için yineleme yaptı:

AI Agent coding flow

Sıkça sorulan sorular

Test Odaklı Geliştirme (TDD) nedir?

Test Odaklı Geliştirme (TDD), gerçek koddan önce otomatik testlerin yazıldığı bir yazılım geliştirme yaklaşımıdır. Süreç, Red-Green-Refactor döngüsünü takip eder: başarısız bir test yazmak (Kırmızı), testi geçecek kodu uygulamak (Yeşil) ve ardından kodu, tüm testler geçerken iyileştirmek (Refactor).

Yapay Zekâ Ajanları TDD hattını nasıl otomatikleştirebilir?

Windsurf gibi Yapay Zekâ Ajanları, özellikle Claude 3.5 Sonnet gibi modellerle birlikte kullanıldığında, kod üretimi, test çalıştırma ve yinelemeli iyileştirme süreçlerini otomatikleştirerek TDD sürecini daha hızlı ve verimli hale getirebilir.

Yapay Zekâ Ajanları ile TDD otomasyonu için ön koşullar nelerdir?

Yapay Zekâ Ajanları ile TDD'yi otomatikleştirmek için kapsamlı testlere, açıkça tanımlanmış arayüzlere ve spesifik görev tanımlarına ihtiyacınız vardır. Standartlaştırılmış test isimlendirmeleri ve açık dokümantasyon, AI Ajanını en iyi sonuçlar için yönlendirmeye yardımcı olur.

Vibe Coding nedir?

Vibe Coding, geliştiricilerin gereksinimleri sade İngilizce (veya sesli komutla) ifade ettiği ve AI'nın kodu gerçek zamanlı olarak ürettiği, tüm testler geçene ve çözüm gereksinimleri karşılayana kadar iterasyon yaptığı yapay zekâ destekli bir yaklaşımdır.

Yasha, Python, Java ve makine öğrenimi konusunda uzmanlaşmış yetenekli bir yazılım geliştiricisidir. Yasha, yapay zeka, prompt mühendisliği ve sohbet botu geliştirme konularında teknik makaleler yazar.

Yasha Boroumand
Yasha Boroumand
CTO, FlowHunt

Yapay Zekâ Ajanlarıyla Geliştirmenizi Hızlandırın

FlowHunt'ın AI akış mühendisleri ve kodlama ajanlarının geliştirme sürecinizi maksimum verimlilik ve yenilik için nasıl otomatikleştirebileceğini keşfedin.

Daha fazla bilgi

Anında Markdown Tablo Oluşturucu
Anında Markdown Tablo Oluşturucu

Anında Markdown Tablo Oluşturucu

Girdiğiniz verilerden tam biçimlendirilmiş markdown tablolarını zahmetsizce oluşturun; dokümantasyon, sunumlar ve not alma için mükemmel bir çözüm. Yapay zeka d...

3 dakika okuma
Bunu mu Demek İstediniz (DYM)
Bunu mu Demek İstediniz (DYM)

Bunu mu Demek İstediniz (DYM)

'Bunu mu Demek İstediniz' (DYM) özelliğinin NLP'de kullanıcı girişlerindeki yazım hatalarını veya yanlış yazılmış kelimeleri nasıl tespit edip düzelttiğini ve a...

8 dakika okuma
NLP Did You Mean +5
Turing Testi
Turing Testi

Turing Testi

Turing Testi, yapay zekâ alanında temel bir kavramdır ve bir makinenin insan davranışından ayırt edilemeyecek derecede zeki davranış sergileyip sergileyemeyeceğ...

5 dakika okuma
AI Turing Test +3