12.4. Dağıtık Sistemlerde Test
Bir dağıtık sistemi test etmek, bir monoliti test etmekten temelde daha zordur; çünkü hatalar etkileşimlerde yaşar — yük altında tetiklenen zaman aşımı, iki kez gelen mesaj, geride kalan replika — ve bunların hiçbiri servisler izole test edildiğinde ortaya çıkmaz. Bu bölüm, servis sınırlarında entegrasyon ve sözleşme testini, uçtan uca testi ve kararsızlığını (flakiness), asenkron ve nihai tutarlı akışları test etmeyi, staging aslına uygunluğunu, yük testini ve birim testlerin asla bulamayacağı tutarlılık ihlallerini avlayan doğruluk testini (Jepsen, deterministik simülasyon) kapsar.
İncelenen Konular
Section titled “İncelenen Konular”- 12.4.1. Entegrasyon Testi: Servis Sınırları ve Sözleşme Doğrulama: Servis sınırlarında entegrasyon testini ve servisler arası sözleşme doğrulamayı kapsar.
- 12.4.2. Uçtan Uca Test: Kapsam ve Kararsızlık Dengesi: Uçtan uca testi ve kapsam ile güveni aşındıran kararsızlık arasındaki dengeyi açıklar.
- 12.4.3. Olay Güdümlü Sistemleri Test Etmek: Asenkron Akışlar ve Nihai Tutarlılık: Sonuçların çağrı döndükten sonra geldiği asenkron akışları ve nihai tutarlılığı test etmeyi kapsar.
- 12.4.4. Staging Aslına Uygunluğu: Test Ortamın Ne Kadar Gerçekçi?: Staging aslına uygunluğunu açıklar: bir test ortamının prodüksiyon davranışını ne kadar gerçekçi yeniden ürettiği.
- 12.4.5. Test Verisi Yönetimi: Sentetik Veri, Anonimleştirme ve Tohumlama: Test verisi yönetimini kapsar: gerçekçi test senaryoları için sentetik veri, anonimleştirme ve tohumlama.
- 12.4.6. Yük ve Performans Testi: k6, Locust ve Kapasite Doğrulama: Prodüksiyondan önce kapasiteyi doğrulamak için k6 ve Locust ile yük ve performans testini açıklar.
- 12.4.7. Doğruluk Testi: Jepsen ve Deterministik Simülasyon: Tutarlılık ihlallerini avlayan Jepsen ve deterministik simülasyon ile doğruluk testini kapsar.