Titrek testler (flaky tests)

Titrek bir test aynı kod için farklı sonuçlar verir. API testindeki yaygın nedenler zamanlama — asenkron bir iş bitmeden doğrulama yapmak —, testler arasında paylaşılan durum, önceki çalıştırmalardan kalan veri, gerçek ağ çağrıları, tohumsuz rastgele veri ve o anki tarih ya da saat dilimine bağımlılıktır.

Nasıl çalışır

Titreklik, hata yeniden üretilene kadar aynı commit’i tekrar çalıştırıp neyin farklı olduğunu karşılaştırarak teşhis edilir. Varyasyon kaynağını kaldırarak düzeltilir: sabit bir süre yerine bir koşulu bekleyin, her teste kendi verisini verin, üreticileri tohumlayın, saatleri dondurun ve canlı bağımlılıkları kontrol ettiğiniz bir fake ya da sandbox ile değiştirin.

Yaygın yanılgı

Otomatik yeniden denemenin titrek bir testi düzelttiği sanılır. Yeniden denemeler belirtiyi saklar, nedeni bırakır; üründeki gerçek aralıklı hataları da saklar — bir yarış durumu (race condition) tam olarak titrek bir test gibi görünür. Yeniden deneyip unutmak yerine karantinaya alın ve düzeltin.

Burada deneyin

POST /protocol/v1/jobs 202 döner ve iş, GET /protocol/v1/jobs/{id} her yoklandığında ilerler — uyumak yerine bir koşulu beklemeyi çalışmak için iyi bir yer. Durumun sızmaması için çalıştırmalar arasında sandbox’ı sıfırlayın.

İlgili

Kaynaklar

Diğer terimler

Bu sayfayı İngilizce okuyun

Tüm sözlük maddeleri · Test teknikleri · 39 mock REST API’nin tamamı

Son güncelleme