Bölüm 19 / 33

Test, Kalite ve Hata Yönetimi

Yazılımın doğruluğunu, güvenilirliğini ve değişikliklere dayanıklılığını ölçen test ve kalite kavramları.

87 kavram3 uygulama
Bu bölümdeki örnekler

3 canlı örnek — seçerek incele

İlgili kavramlar: Unit Test, Assertion, CI

Canlı örnek

Test sonuçları

Unit TestAssertionCI
  • ✓ cart.total hesaplar
  • ✓ auth reddeder geçersiz token
  • ✗ checkout boş adreste hata verir
  • Yazılımın beklenen davranışı sağlayıp sağlamadığını sistematik olarak doğrulama.

  • Girdi, adım, beklenen sonuç ve ön koşullardan oluşan test senaryosu.

  • Kullanıcı veya sistem davranışını yüksek seviyede açıklayan test durumu.

  • İlişkili testlerin birlikte çalıştırılan grubu.

  • Kapsam, ortam, yöntem, risk ve sorumlulukları belirleyen test belgesi.

  • Testlerin çalışması için kullanılan kontrollü örnek veri.

  • Test başarılı olduğunda oluşması gereken sonuç.

  • Test çalıştığında gerçekten oluşan sonuç.

  • Gerçek sonucun beklenen sonuçla uyumlu olması.

  • Gerçek sonucun beklenen sonuçtan farklı olması.

  • Tek fonksiyon veya sınıf gibi küçük kod birimini izole test eder.

  • Birden fazla bileşen, veritabanı veya servis arasındaki iletişimi test eder.

  • Kullanıcı akışını arayüzden backend ve veritabanına kadar bütün olarak test eder.

  • Tam sistemin işlevsel ve işlev dışı gereksinimlerini test eder.

  • Ürünün iş veya kullanıcı kabul kriterlerini karşıladığını doğrular.

  • Yeni değişikliğin daha önce çalışan özellikleri bozmadığını kontrol eder.

  • Yayın sonrası temel işlevlerin genel olarak çalıştığını hızlı kontrol eder.

  • Belirli düzeltme veya küçük değişikliğin mantıklı biçimde çalıştığını kontrol eder.

  • Testçinin öğrenme, tasarlama ve uygulamayı aynı anda yaptığı serbest test.

  • Test adımlarının insan tarafından uygulanması.

  • Testlerin kod veya araçlarla otomatik çalıştırılması.

  • Tekrarlanan testlerin güvenilir, hızlı ve raporlanabilir şekilde otomatikleştirilmesi.

  • Çok unit, daha az integration ve az sayıda E2E test öneren dağılım modeli.

  • Statik analiz ve integration testlerine yüksek ağırlık veren test dağılım yaklaşımı.

  • Testi hazırlık, işlem ve doğrulama adımlarına ayıran yapı.

  • Davranış testini başlangıç, eylem ve sonuç biçiminde ifade eden yapı.

  • Gerçek değerin beklenen koşulu sağladığını doğrulayan test ifadesi.

  • Bağımlılığın beklenen çağrı ve sonuçlarını taklit eden test nesnesi.

  • Test için önceden belirlenmiş cevap döndüren basit bağımlılık.

  • Gerçek bileşenin daha basit ancak çalışan test uygulaması.

  • Fonksiyon çağrılarını ve argümanlarını kaydeden test aracı.

  • Test öncesinde hazırlanan sabit veri veya ortam.

  • Test için esnek ve anlamlı örnek nesneler üreten yardımcı.

  • Gerçek bağımlılık yerine kullanılan mock, stub, fake veya spy genel adı.

  • Testin başka test veya dış sistem durumundan etkilenmemesi.

  • Aynı koşullarda her zaman aynı sonucu veren test.

  • Kod değişmediği hâlde bazen geçen bazen kalan kararsız test.

  • Testlerin kod satırı, branch veya fonksiyonların ne kadarını çalıştırdığını gösteren ölçüm.

  • Çalıştırılan kod satırlarının oranı.

  • Koşulların farklı doğru/yanlış yollarının ne kadar test edildiği.

  • Test kalitesini ölçmek için koda küçük kasıtlı hatalar ekleyip testlerin yakalamasını kontrol eder.

  • İki servis arasındaki request/response sözleşmesinin uyumunu test eder.

  • API sağlayıcısının tüketici beklentilerini sözleşme testleriyle doğrulaması.

  • Endpoint status, body, header ve iş kurallarını test eder.

  • Arayüz bileşenleri ve kullanıcı etkileşimlerini doğrular.

  • Arayüz ekran görüntülerini önceki sürümle piksel veya yapısal karşılaştırır.

  • Klavye, semantik ve WCAG kriterlerine uyumu test eder.

  • Sistemin hız, kapasite ve kaynak tüketimini ölçer.

  • Beklenen kullanıcı veya istek yükü altındaki davranışı ölçer.

  • Sistemi normal kapasitesinin üzerine çıkarıp kırılma noktasını bulur.

  • Ani trafik artışına sistemin tepkisini ölçer.

  • Uzun süreli yük altında bellek sızıntısı ve performans bozulmasını araştırır.

  • Belirli işin performansını tekrarlanabilir biçimde ölçer.

  • p50, p95 veya p99 gibi isteklerin belirli yüzdesinin altında kaldığı süre.

  • Kimlik, yetki, girdi ve yapılandırma zafiyetlerini test eder.

  • Gerçek saldırı teknikleriyle güvenlik açığı arayan kontrollü test.

  • Kodu çalıştırmadan hata, kalite ve güvenlik kurallarına karşı analiz eder.

  • Kodun yazım, hata ve stil kurallarını otomatik kontrol eder.

  • Değer ve fonksiyon türlerinin uyumunu derleme veya analiz aşamasında kontrol eder.

  • Başka geliştiricinin değişikliği doğruluk, güvenlik ve sürdürülebilirlik açısından incelemesi.

  • Coverage, güvenlik veya hata sayısı gibi eşik sağlanmadan merge/deploy engeli.

  • Yazılımın beklenen davranıştan sapmasına neden olan hata.

  • Gereksinim veya tasarımla uygulama arasındaki kusur.

  • Hatanın ortam, adım, beklenen ve gerçek sonuçlarla kaydı.

  • Hatanın tekrar oluşması için izlenecek kesin adımlar.

  • Hatanın kullanıcı ve sistem üzerindeki etki düzeyi.

  • Hatanın ne kadar hızlı ele alınması gerektiği.

  • Hatanın görünür belirtisinin arkasındaki asıl neden.

  • Sorunun temel nedenini sistematik yöntemlerle bulma.

  • Nedeni derinleştirmek için art arda neden sorusunu kullanan analiz.

  • Daha önce çalışan özelliğin yeni değişiklik nedeniyle bozulması.

  • Production'daki kritik hata için hızlı yayınlanan düzeltme.

  • Asıl hata düzelene kadar sorunu geçici aşma yöntemi.

  • Hataları doğrulama, önceliklendirme ve sorumluya atama süreci.

  • Varlığı bilinen ve çözümü henüz yayınlanmamış hata.

  • Son testlerden geçmek üzere yayın adayı olarak işaretlenen sürüm.

  • Gerçek iş kullanıcılarının sistemi kabul kriterlerine göre test etmesi.

  • Testlerin production'dan ayrılmış olarak çalıştırıldığı ortam.

  • Test verisini production verisinden ayrı tutan veritabanı.

  • Test sonrası oluşturulan verilerin silinmesi veya başlangıç durumuna dönmesi.

  • Tekrarlanabilir testler için önceden hazırlanmış başlangıç verisi.

  • Çalışan, geçen, kalan ve atlanan testlerin sonucu.

  • Push veya pull request sırasında otomatik çalışan testler.

  • Bileşen veya veri çıktısını kaydedilmiş önceki çıktıyla karşılaştırır.

  • Belirli örnekler yerine çok sayıda otomatik girdi üzerinde değişmez özellikleri doğrular.

  • Dağıtık sistem dayanıklılığını ölçmek için kontrollü arızalar oluşturma disiplini.

  • Yedek, failover ve geri yükleme süreçlerinin gerçekten çalıştığını doğrular.

Bölüm uygulamaları

Bu bölümü bitirmeden önce şunları deneyin veya açıklayın.

  1. Login, ürün oluşturma, checkout ve ödeme webhook'u için unit, integration ve E2E test ayrımını yapın.
  2. Bir hata raporunu tekrar adımları, ortam, severity, priority ve ekran görüntüsüyle standartlaştırın.
  3. Staging ortamında smoke test ve production sonrası health/smoke kontrol listesi hazırlayın.