Electron file-export davası
Gerçek bir vaka. Electron tabanlı bir not uygulamasına “kullanıcı notlarını dışa aktar” özelliği eklendi. Birim testlerin tümü yeşildi. Üretimde beş ayrı kusur çıktı:- Renderer ile preload arasında dosya yolu formatı uyumsuz (Windows ile POSIX karışmış).
- IPC üzerinden progress bar tetiklenmiyor — kullanıcı otuz saniye boyunca uygulamanın donduğunu sanıyor.
- Büyük dışa aktarımlarda bellek sızıntısı.
- Paketlenmiş ortam izinleri geliştirme ortamından farklı.
- İstisnalar katmanlar arası yayılmıyor; sessiz başarısızlık.
Tez
Yalnız uçtan uca test, sistem düzeyi kusurların olmadığını kanıtlayabilir. Üstüne, uçtan uca test ajanın davranışını da değiştirir.Doğrulayıcı, üretici tarafından okunan bir sözleşmedir. Ajan farklı doğrulamaya bakarak farklı kod yazar.
Test yeterlilik gradiyenti
TEST YETERLİLİK GRADİYENTİ
Birim test sistem sınırlarına mimari olarak kördür.
ATLANAN SEVİYE = NOT COMPLETE
KATMAN PİRAMİDİ
Lint + Type
en geniş kapsam, en hızlı
~2 sn
Unit + Integration
bileşen içi davranış
~8 sn
E2E
en dar, en kapsamlı
~15 sn
geniş, ucuzkapsam ←————→ kanıtdar, pahalı, kanıtlayıcı
ELECTRON FILE-EXPORT · KUSUR YAKALAMA
Yalnız birim
sınırlar mock’lanmış · kör
✕0/5
Birim + entegrasyon
süreç ve paketleme hâlâ dışarıda
✕1/5
Birim + entegrasyon + e2e
tüm sınırlar gerçek · kanıt
✓5/5
13 saniyelik fark, beş üretim kusurunu açıklar.
Birim testin mimari körlüğü
Birim test üç şeyi göremez:- Bileşen sınırını: çünkü sınırı mock’lar.
- Süreç sınırını: ana-renderer, IPC, child process; hepsi mock arkasında.
- Paketleme sınırını: kod imzalama, sandbox, OS izinleri test koşumunda yok.
Test Yeterliliği Gradiyenti
Mimari sınırları test edilebilir kılmak
Test öncesi bir adım vardır: mimari sınırlar yazılı olmalı. Aksi halde düzenek hangi sınırı doğrulayacağını bilemez. Örnek katmanlı domain mimarisi:Doğrulama Hiyerarşisi
AGENTS.md veya docs/testing-standards.md’nin tepesinde duran blok:
Pratik
Mimari kısıtı lint kuralına dönüştürmek
ERROR / WHY / FIX hata mesajı
E2E test başarısızlığı ajan tarafından okunabilir olmalı:Eval harness primitifleri
Inspect AI üç primitif üzerinde durur: solver (üretici stratejisi), scorer (çıktıyı puanlayan), sandbox (Docker/Kubernetes ile izole koşum) (Inspect AI). Düzeneğin e2e katmanı, scorer + sandbox’ın yerel karşılığıdır: izole bir ortam, deterministik bir puanlayıcı, sürüm-arası karşılaştırılabilir bir skor. OpenAI’ın eval-skills yazısı bu süreci trace → check → skor olarak özetler: prompt, yakalanan koşum, küçük bir kontrol kümesi, zaman içinde karşılaştırılabilir bir puan; minimum on-yirmi prompt ve en az bir “tetiklenmemeli” negatif kontrol (OpenAI Developers, “Eval Skills”). Düzeneğin e2e suite’i bu tarifin proje-ölçeği halidir.Review Feedback Promotion
İnsanın PR’ı incelerken yazdığı her tekrar eden yorum, gelecekteki bir e2e testin tohumudur. Aynı yorumu üç kez yazmışsan, dördüncüde otomatikleştir:Davranışı değiştiren ikinci etki
Birim testlere bakan ajan farklı kod yazar; e2e testlere bakan ajan daha bütünlüklü kod yazar. Çünkü doğrulama biçimi neyin “kabul edilebilir” olduğunu yeniden tanımlar. Anthropic’in trajectory vs outcome ayrımı burada bir kez daha çalışır: ajan transcript’i süslemekten vazgeçtiğinde, çünkü süslü transcript skor üretmiyor — outcome üretiyor. Düzenek Mühendisliği (Harness Engineering) içinde e2e suite varsa, ajan onu okuyup ona göre yazar. Suite yoksa ajan mock’larla yetinir ve “bitti” der.Sayılarla
Aynı Electron projesi, aynı sekiz görev:
On üç saniyelik fark, üretim hatalarının tamamını açıklar.
Karşılaştırma için: SWE-bench Verified beş yüz görev üzerinde aynı prensibi koşar — her görevde repo’nun kendi test paketi doğrulayıcıdır. Doğrulama yöntemi mühendisin kullandığı yönteme ne kadar yakınsa, skor o kadar anlamlıdır.
Pratik kontrol listesi
-
docs/architecture.mdmimari sınırları yazılı. - En az bir mimari sınır custom lint kuralıyla uygulanıyor.
-
AGENTS.mdiçinde Validation Hierarchy bloku var; atlama = NOT COMPLETE. -
make checklint → unit → integration → e2e sırasıyla koşar; bir kapı düşerse durur. - E2E test başarısızlıkları ERROR / WHY / FIX formatında.
- E2E suite izole bir sandbox’ta koşar (Docker veya eşdeğeri).
- Tekrar eden review yorumları yeni e2e testlere veya lint kurallarına terfi ediliyor.
- CI yalnız
make checkçağırır; ajan da yalnızmake checkçağırır.