FDE Foundations · Modül 4: Yazılım Zanaatı
Müşteri Ortamlarında Test
Kodun, kontrol etmediğin bir ortamda, kurmadığın sistemlere karşı çalışır. Testler o gerçekliği taklit etmeli: gerçek biçimler, gerçek hata modları, maskelenmiş veri.
10 dk okuma
Kazanımlar
- Küçük bir servise uyan test piramidi kurmak
- Gerçek dış sistemlere karşı sözleşme testleri koşmak
- Gerçek (maskelenmiş) müşteri veri biçimlerinden test verisi üretmek
Küçültülmüş piramit
Küçük bir entegrasyon servisi için: eşleme ve iş mantığı çevresinde ünite testleri, yerel bağımlılıklara (konteynerler ya da sahteleri) karşı bir tutam entegrasyon testi ve staging'de koştuğun birkaç uçtan uca duman testi. Bin uçtan uca testi göze alamazsın; iyilerini göze alırsın.
Sözleşme testleri
En riskli sınır, dış sistemin API'sidir. Sözleşme testleri bağımlı olduğun parçaları sabitler: yanıt biçimi, durum kodları, sayfalama davranışı. Yalnız CI'da değil zamanlanmış olarak koş; çünkü dış API'ler haber vermeden kayar. Sözleşme testi kırıldığında entegrasyonun yukarıda kırıldı demektir ve müşteri öğrenmeden sen öğrenirsin.
Gerçekten test verisi
Maskelenmiş örnekleri erken iste: on dağınık fatura, bin temiz faturayı yener. Onlardan test verisi kur, hatalı durumlar dahil: boş dosyalar, yanlış kodlamalar, mükerrerler. Müşterinin gerçek uç durumlarını hiç görmemiş bir ayrıştırıcı, ikinci ayda seni gece uyaran ayrıştırıcıdır.
Test, kodun çalıştığını kanıtlamak değildir. Nasıl kırılacağını prova etmektir.
Mini kontrol
2-3 soruluk isteğe bağlı öz kontrol. Yanıtlar cihazından çıkmaz, saklanmaz ve hiçbir değerlendirmeye sayılmaz.
Alıştırma
Kurgusal bir webhook alıcısı için test planını listeleyin: üç ünite test alanı, iki sözleşme testi, üç uçtan uca durum ve müşteriden isteyeceğiniz beş hatalı test verisi.
Geçme kriterleri
Üç katmanın tümü dolu, sözleşme testleri neyi sabitlediklerini ve sıklıklarını belirtmeli ve test verisi listesi en az üç gerçekten hatalı durum içermelidir.