🧬 Test Verisi Üretimi

Test Verisi Üretimi: Claude'dan equivalence-partitioning test verisi istemek, bir terziden olası her ölçüden bir tane sipariş etmek yerine her beden kategorisinden (XS/S/M/L/XL)

Claude'dan equivalence-partitioning test verisi istemek, bir terziden olası her ölçüden bir tane sipariş etmek yerine her beden kategorisinden (XS/S/M/L/XL) bir kıyafet istemeye benzer — mekanizma birebir örtüşür: equivalence partitioning sonsuz olası girdiyi zaten temsili sınıflara indirger, ve bir LLM, sınıfları isimlendirdiğin an "her sınıftan inandırıcı bir örnek" oluşturmakta mükemmeldir, ama gerçek iş kuralını (bu alan için "geçerli" sayılan aralık nedir) belirtmezsen sınıfları doğru icat edemez. Üzerinde durulmaya değer soru şu: Claude bir saniyede bin tane sahte kimlik-şeklinde sayı üretebiliyorsa, bunun yerine test için production'dan 10 GERÇEK müşteri kaydı almak neden hâlâ tehlikeli? Çünkü gerçek bir kayıt, paylaşılan bir test ortamında veya bir bug raporu ekran görüntüsünde sızarsa gerçek sonuçlar doğurur, oysa sadece geçerli GÖRÜNEN (doğru hane sayısı, doğru checksum şekli) iyi biçimlendirilmiş bir SAHTE kayıt sıfır gizlilik maruziyetiyle tamamen aynı kod yolunu çalıştırır. Java karşılaştırması: bu, Java Faker kütüphanesinin sadece test scope'unda gelmesinin, gerçek bir çalışanın adını bir unit test fixture'ına gömmek yerine Faker.name().fullName() üretmesinin ardındaki aynı akıl yürütmedir. QA tarafındaki bedel: gerçek müşteri kişisel verisiyle doldurulmuş bir test veritabanı — "test" ortamında bile olsa — bir denetimde keşfedilmeyi bekleyen bir uyumluluk olayıdır, oysa LLM veya Faker tarafından üretilmiş benzeri verilerle doldurulmuş bir tanesi sıfır düzenleyici maruziyetle aynı test kapsamını taşır.

İstek Üzerine Sınır ve Equivalence Verisi

Equivalence class'ları ve sınır değerlerini prompt'ta açıkça isimlendir — örneğin, "yaş alanı: 18-65 geçerli, 18'in altı ve 65'in üstü geçersiz, sınır tam olarak 18 ve 65." Claude bundan sonra daha önce hiç görmediği bir alan için hangi sınırların önemli olduğunu tahmin etmek yerine her sınıftan bir örnek üretir.

Akıl yürütme: neden her şey için Java Faker kullanmayalım? Faker deterministiktir, hızlıdır ve JENERİK alanlar (isimler, adresler, e-postalar) için savaş testinden geçmiştir — her otomatik CI koşumunda ona başvur. Claude, VERİ ŞEKLİNİN kendisinin Faker çağrının kodlamadığı bir domain hükmü gerektirdiği durumlarda daha iyidir — örneğin "belirli bir iş kuralı yüzünden %40'ın üzerinde farklı davranan bir indirim alanı için 5 satırlık sınır değer üret" gibi. Genel kural: hacim ve CI hızı için Faker, hangi değerlerin önemli olduğunun tek seferlik TASARIMI için Claude — sonra bunları Faker'a veya sabit bir veri setine bağlarsın.

Adım Adım: Sınır Değerden Test Verisine

Sınıfları isimlendir

Geçerli/geçersiz equivalence class'lar ve tam sınır sayıları prompt'ta açıkça belirtilir.

Rastgele bir sayı yığını yerine, her sınıftan bir temsilci değer istenir.

JSON, CSV veya SQL INSERT belirtilir — sonuç doğrudan ihtiyacın olan yere düşer.

Gerçek kişisel veri var mı kontrol et

Çıktı taranır: her değer format olarak geçerli ama açıkça kurgusal mı?

Hacim için Faker, tasarım için Claude

Sınıflar onaylandıktan sonra hacimli/CI versiyonu Faker ile üretilir; Claude tek seferlik tasarım kararları için kalır.

Bir kuraldan güvenli, sınır-değerli test verisine giden akışı doğru sıraya diz.