Daha önce TDD (Test Driven Development) yaptınız mı?
TDD’de çalışma mekanizması kabaca şöyle işler:
Önce bir test yazarsınız. Test çalışmaz, çünkü henüz kodda karşılığı yoktur. Sonra testi çalışır hale getirene kadar implementasyonu yaparsınız. Ardından yeni bir test yazarsınız. O da çalışmaz. Onu çalışır hale getirecek kodu yazarsınız. Böylece sürekli çalışmayan testler yeni kodu doğurur.
Testler kodun arkasından değil, kod testlerin arkasından gelir.
Malum, artık kod yazmıyoruz :)
O zaman TDD de yapamayız mı?
Tam tersine.
Yapay zeka ajanlarına TDD yaptırabiliriz.
Reçetesi şöyle:
Bir projeye başlamadan önce aklınıza gelen tüm onay/kabul kriterlerini bir dosyada tanımlayın.
Örneğin:
Given: Kullanıcı login olmak için kullanıcı adı ve şifresini girer.
When: Login tuşuna basar.
And: Girdiği şifre hatalıdır.
Then: Giriş engellenir ve kullanıcıya hata mesajı gösterilir.
Bu şekilde aklınıza gelen tüm kabul kriterlerini tanımlayın. Ardından yapay zeka ajanına şunu söyleyin:
Her kabul kriteri için bir E2E testi oluştur. Örneğin Cypress ile.
Ajan muhtemelen size: “Fakat bu testler mevcut implementasyonda çalışmayacak.” diyecektir.
Cevabınız:
“Zaten istediğim bu. Testleri oluştur. Sonra bütün testler yeşil olana kadar implementasyonu geliştir.”
İşte bu noktadan itibaren çalışma şekli değişiyor.
Artık yapay zekaya: “Şu özelliği geliştir.” demiyorsunuz.
Ona çalışması gereken testleri veriyorsunuz.
Ajanin görevi ise sistemi bu testleri geçecek hale getirmek oluyor.
→Test (red)
→ Implementasyon
→ Test (green)
→ Yeni test (red)
→ Yeni implementasyon
→ Test (green)
Yani TDD ortadan kalkmadı. Sadece artık testi geçecek kodu biz yazmıyoruz. TDD yapan bir yapay zeka ajanımız var.