Test Metodolojileri & Teori
Test Metodolojileri & Teori

Sanity Testi ve Smoke Testi Arasındaki Farklar

Yazılım test süreçleri; bir uygulamanın kalitesini, performansını ve güvenliğini doğrulamak için kullanılan, birçoğu ISTQB standartlarında tanımlanmış düzinelerce farklı test türünü barındıran geniş bir deryadır. Fonksiyonel testlerden performans testlerine, güvenlikten kullanılabilirliğe kadar uzanan bu geniş yelpazede, günlük geliştirme ve sürüm süreçlerinde rolleri gereği en çok yan yana anılan iki spesifik test türü öne çıkar: Sanity Test ve Smoke Test.

Her iki tür de yazılım kalitesini güvence altına alan büyük test stratejisinin kritik birer parçası olsa da, hizmet ettikleri hedefler ve uygulandıkları yöntemler tamamen farklıdır. Bu yazıda, sıkça karıştırılan bu iki test türünün farklarını ve test piramidindeki yerlerini detaylı bir şekilde inceleyeceğiz.

Smoke Test(Duman Testi) Nedir?

Smoke test, yazılımın bir bütün olarak temel işlevselliğinin kontrol edilmesi amacıyla yapılan yüzeysel bir testtir. Bu test genellikle yeni bir yazılım derlemesi (build) alındığında, kodun test ortamına kabul edilip edilmeyeceğini belirlemek için gerçekleştirilir. Yazılımın ana işlevlerinin düzgün çalışıp çalışmadığına yönelik hızlı bir doğrulama sağlar; eğer Smoke testi başarısız olursa derleme reddedilir ve geliştirme ekibine geri gönderilir.

Smoke Testinin Özellikleri:

  • Yüzeysel Kontrol: Uygulamanın kritik yollarının (en temel işlevlerin) test edilmesi.

  • Hızlı Doğrulama: Genel işlevlerin çalışıp çalışmadığını hızlıca belirleme.

  • Geniş Kapsam: Sistemin derinliğine inmeden, uçtan uca tüm ana hatları kontrol etme.

  • Dokümantasyon: Genellikle önceden hazırlanmış, belirli yazılı test senaryolarına dayanır.

Bir örnek vermek gerekirse; bir e-ticaret web sitesinde ana sayfanın açılması, arama çubuğunun çalışması, ürünlerin sepete eklenmesi ve ödeme sayfasına ulaşılması gibi temel işlevlerin çalışıp çalışmadığını kontrol etmek Smoke testi kapsamına girer.

Sanity Test(Mantıklılık Testi) Nedir?

Sanity test, bir yazılım değişikliğinden veya hata düzeltmesinden (bug fix) sonra yazılımın belirli bölgelerinin düzgün çalışıp çalışmadığını doğrulayan spesifik bir testtir. Büyük regresyon testi paketlerinin bir alt kümesi (subset) olarak kabul edilir. Düzeltilen bir hatanın ardından, ilgili alanın ve bu hatadan etkilenmesi muhtemel yakın modüllerin kararlılığını ölçmek için yapılan detaylı bir incelemedir.

Sanity Testinin Özellikleri:

  • Derinlemesine İnceleme: Belirli özelliklerle veya hatalarla ilgili işlevlerin detaylı kontrolü.

  • Kısmi ve Dar Kapsam: Tüm sistemi değil, sadece değişiklik yapılan belirli bölümleri doğrulama.

  • Hata Düzeltme Sonrası Kullanım: Bir hata düzeltildikten sonra bu düzeltmenin etkili olup olmadığını ve sistemi bozup bozmadığını sağlama.

  • Dokümantasyon: Genellikle resmi bir dokümantasyona bağlı kalmadan, hızlı ve doğaçlama ile yürütülür.

Örneğin; bir kullanıcının şifre sıfırlama işlemi sırasında yaşadığı bir hata düzeltildiğinde; bu süreçteki veri girişi, aktivasyon linkinin doğruluğu ve e-posta gönderimi gibi sadece o sürece özel işlevlerin derinlemesine kontrol edilmesi Sanity testi olarak adlandırılır.

Unutmamak gerekir ki, Smoke test ve Sanity testi yazılım test süreçlerinin sadece iki küçük istasyonudur. Başarılı ve sürdürülebilir bir kalite stratejisi; Birim (Unit), Entegrasyon (Integration), Sistem, Regresyon, Kabul (UAT) ve Performans testleri gibi birçok farklı disiplinin bir arada, uyum içinde çalışmasıyla mümkündür.

Smoke testi genel işlevselliği doğrulayarak sistemin test edilebilir olduğunu bize kanıtlarken; Sanity testi nokta atışı kontrollerle ara düzeltmelerin kalitesini ölçer. Diğer tüm test türleriyle birlikte bu iki aracı da doğru zamanda ve doğru hatlarda kullanmak, yazılımdaki potansiyel riskleri en aza indirerek canlı ortam kalitesini maksimuma çıkaracaktır.

Bağlantılı Yazılar

Sanity Testi ve Smoke Testi Arasındaki Farklar