Test Metodolojileri & Teori
Test Metodolojileri & Teori

Yazılım Test Seviyeleri: Birim, Entegrasyon, Sistem ve Kabul Testi

Yazılım Test Seviyeleri Nedir?

Yazılım geliştirme sürecinin en kritik aşamalarından biri test aşamasıdır. Bu aşama, ürünün kalitesini, güvenilirliğini ve işlevselliğini garanti etmek amacıyla hiyerarşik bir sıra izleyen çeşitli test seviyelerini içerir. Hataların erkenden yakalanması, geliştirme maliyetlerini düşürürken kullanıcı memnuniyetini artırır.

İşte yazılım dünyasında kabul görmüş 4 temel yazılım test seviyesi:

1. Birim Testi (Unit Testing)

Birim testi, yazılımın mantıksal olarak ayrıştırılabilen en küçük parçalarının (fonksiyon, metot veya sınıf) doğruluğunu kontrol etmek amacıyla yapılan testlerdir.

  • Kim Tarafından Yapılır: Genellikle yazılım geliştiriciler (Developers) tarafından kodlama aşamasında yazılır.

  • Amaç: Her bir kod bloğunun dış dünyadan bağımsız bir şekilde, kendisinden beklenen girdiye doğru çıktıyı verdiğini doğrulamaktır.

Önemli Noktalar:

  • Hızlı Geri Bildirim: Kod henüz lokal ortamdayken çalıştığı için hatalar saniyeler içinde fark edilir.

  • Düşük Maliyet: Hata bulma ve düzeltme maliyetinin en düşük olduğu seviyedir.

  • Otomasyon Dostu: CI/CD süreçlerinin ilk ve en yoğun adımını oluşturur.

2. Entegrasyon Testi (Integration Testing)

Birim testlerinden başarıyla geçen modüllerin ve bileşenlerin, birbirleriyle olan etkileşimlerini ve veri alışverişlerini değerlendiren testlerdir.

  • Kim Tarafından Yapılır: Geliştiriciler veya QA (Kalite Güvence) mühendisleri tarafından gerçekleştirilir.

  • Amaç: Farklı birimlerin bir araya geldiğinde veri kaybı, arayüz uyuşmazlığı veya iletişim hatası yaşayıp yaşamadığını tespit etmektir (Örn: Bir mikroservisin veritabanına veya API'ye doğru bağlanıp bağlanmadığı).

Önemli Noktalar:

  • Sistem bileşenleri arasındaki veri akışını ve protokolleri kontrol eder.

  • Modüller arası entegrasyon hatalarının erken keşfedilmesini sağlar.

  • Yukarıdan Aşağıya (Top-Down) veya Aşağıdan Yukarıya (Bottom-Up) gibi farklı stratejilerle uygulanabilir.

3. Sistem Testi (System Testing)

Sistem testi, tüm yazılım bileşenlerinin birleştirildiği ve bütünsel bir ürün (end-to-end) olarak ele alındığı aşamadır. Bu aşamada yazılım, işlevsel ve işlevsel olmayan (performans, güvenlik, erişilebilirlik) gereksinimlere göre test edilir.

  • Kim Tarafından Yapılır: Bağımsız QA / Test Takımları tarafından yürütülür.

  • Amaç: Sistemin bir bütün olarak iş gereksinimlerini ve teknik spesifikasyonları karşılayıp karşılamadığını doğrulamaktır.

Önemli Noktalar:

  • Kara Kutu (Black-Box): Kodun iç yapısına bakılmaksızın, tamamen uçtan uca senaryolar üzerinden test edilir.

  • Hem fonksiyonel (işlevsel) hem de fonksiyonel olmayan (yük, stres, güvenlik) test senaryolarını kapsar.

  • Gerçek kullanıcı ortamına en yakın simülasyon bu aşamada kurulur.

4. Kabul Testi (Acceptance Testing)

Kabul testi, sistemin canlı ortama (production) çıkmaya hazır olup olmadığını ve iş hedeflerini karşılayıp karşılamadığını belirlemek amacıyla yapılan son aşamadır.

  • Kim Tarafından Yapılır: Son kullanıcılar, ürün sahipleri (Product Owner) veya müşteri temsilcileri tarafından gerçekleştirilir.

  • Amaç: Yazılımın, nihai kullanıcının ihtiyaçlarına ve iş sözleşmelerine uygunluğunu onaylayarak "dağıtıma hazırdır" onayını almaktır.

Önemli Noktalar:

  • UAT (User Acceptance Testing): Kullanıcı geri bildirimlerine ve gerçek iş senaryolarına dayanır.

  • Alfa ve Beta Testleri: Yazılımın sınırlı bir kitleye (Alfa için iç ekip, Beta için gerçek kullanıcılar) açılarak test edilmesi bu seviyeye dahildir.

  • Ürünün piyasaya sürülmesi öncesindeki son yasal ve ticari güvencedir.

Bu dört test seviyesi, yazılım geliştirme sürecinin vazgeçilmez bileşenleridir. Yazılım kalitesi, birim testlerinden kullanıcı kabul testine kadar olan her aşamada sağlanmalıdır.

Bağlantılı Yazılar