Beril Tezcan workspace
Yazılım Mühendisi & QA Mühendisi

Beril Tezcan

i2i'de yazılım test mühendisiyim; QA ve test otomasyonu üzerine çalışıyorum. ASP.NET Core ve .NET ile backend geliştirme geçmişim var - ve her gün öğrenmeye, üretmeye ve gelişmeye devam ediyorum.

Software Testing

Tests Are Passing, But Failing in Production

Why a green CI doesn't mean your app is safe
B
Beril Tezcan Yazılım Mühendisi · QA Mühendisi 👁 228 görüntülenme
Tests Are Passing, But Failing in Production
Bağlantı kopyalandı!

Hepimiz bunu yaşadık: CI yeşil, tüm testler geçiyor, "deploy" diyoruz… ve 20 dakika sonra alarm çalıyor. İlk tepki "testler yeterince iyi değil miydi?" oluyor. Ancak genellikle sorun testler değil — test ortamı ile üretim arasındaki görünmeyen farklar.

İşte en sık karşılaştığım dört sessiz fark:

  1. Yapılandırma farkları — Bu genellikle en büyük suçlu. Bağlantı dizeleri, özellik bayrakları, API anahtarları, zaman aşımı değerleri… appsettings.Development.json ile üretimdeki ortam değişkenleri arasındaki tek bir fark davranışı değiştirebilir. Testleriniz "doğru ortamda" çalışmıyorsa, yeşil bir sonuç pek bir şey ifade etmez.
  2. Veri farkları — Test veritabanında 20 temiz kayıt var; üretimde 2 milyon — bazıları null, bazıları on yıllık, bazıları hiç beklemediğiniz formatlarda. Testlerde anında dönen bir sorgu, üretimde 15 saniye sürebilir. Verileriniz üretim gibi görünmüyorsa, performans sorunlarını veya kenar durumlarını asla yakalayamazsınız.
  3. Zaman aşımı ve zamanlama farkları — Yerel olarak her şey milisaniyeler içinde yanıt verir; üretimde bir üçüncü taraf API'si 2 saniye, meşgul bir veritabanı 30 saniye sürebilir. Testlerde asla tetiklenmeyen zaman aşımları, canlıya çıktıktan sonraki ilk hafta kapınızı çalacaktır.
  4. Ölçek ve eşzamanlılık — Her şey tek bir kullanıcıyla çalışır. Ancak 50 eşzamanlı istek aynı satırı güncellemeye çalıştığında her şey değişir. Eşzamanlılık senaryoları yazmadıysanız, meslektaşlarınızdan "ama testler geçti" cümlesini çok duyarsınız.

Peki ne yapmalıyız?

  • Test ortamını bilinçli olarak üretime benzetin: aynı yapılandırma, benzer veri hacmi, gerçekçi donanım.
  • Küçük, temiz veri kümeleri yerine, üretimden anonimleştirilmiş örnekler kullanın.
  • Zaman aşımlarını sıfırlamayın; testlerde de gerçekçi zamanlamalar ile çalışın.
  • Kritik akışlara eşzamanlılık testleri ekleyin ve temel izleme kurun, böylece üretim farkları fark edilmeden kalmaz.

Yeşil testler size güven verir — ancak bu güven, test ortamınızın üretimi ne kadar yakından yansıttığı kadar gerçektir.

Yorumlar

a
ahmet.guden@i2i-systems.com
03.09.2026 12:53
eline sağlık Beril. Çok faydalı bir yazı olmuş.