Duman testi (smoke test): sürüm teste değer mi sorusunun hızlı yanıtı
Sözlük

Duman testi (smoke test): sürüm teste değer mi sorusunun hızlı yanıtı

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 3 dk okuma

Duman testi (smoke test) nedir, yeni sürümün temel işlevlerini hızla kontrol ederek daha kapsamlı teste değip değmediğine nasıl karar verir? Tanım ve örnek.

Duman testi nedir?

Duman testi (smoke test), yeni bir yazılım sürümü ya da derlemesinde en temel ve en kritik işlevlerin çalışıp çalışmadığını hızlıca kontrol eden sınırlı kapsamlı bir testtir. Amacı hataları bulmak değil, sürümün daha ayrıntılı teste girmeye değer olup olmadığına karar vermektir. Temel işlevler bozuksa ayrıntılı test yapmanın anlamı yoktur; sürüm geliştiriciye geri gönderilir.

Adın kaynağı donanım dünyasından gelir: yeni bir cihaza elektrik verildiğinde duman çıkıyor mu diye bakılır. Yazılımda da benzer şekilde sistem ayağa kalkıyor mu, ana ekranlar açılıyor mu, en önemli iş akışı baştan sona yürüyor mu diye bakılır.

Nasıl çalışır?

Duman testi kısa, sabit ve tekrarlanabilir bir kontrol listesidir. Genellikle şu adımları izler:

  • Uygulama kurulur ya da dağıtılır, başlangıçta hata vermeden açıldığı doğrulanır
  • Kullanıcı girişi gibi ortak kapılar denenir
  • İşin ana akışı bir kez uçtan uca çalıştırılır; örneğin bir e-ticarette ürün arama, sepete ekleme ve ödeme sayfasına ulaşma
  • Veritabanı ve temel bağlantıların çalıştığı kontrol edilir
  • Sonuç net bir kararla biter: geç ya da kal

Bu liste elle de koşulabilir, ancak çoğunlukla otomatikleştirilir ve sürekli entegrasyon hattında her yeni derlemeden sonra otomatik çalıştırılır. Başarısız olursa sonraki test aşamaları hiç başlatılmaz; bu da zaman ve kaynak tasarrufu sağlar.

Küçük bir örnek

Bir bankanın mobil uygulaması için gece derlemesi hazır olsun. Duman testi sırasıyla şunu yapar: uygulamayı açar, test hesabıyla giriş yapar, bakiye ekranını görüntüler ve bir transfer ekranını açar. Herhangi bir adım çöküyorsa derleme reddedilir ve sorumlu ekibe bildirim gider.

Test ekibi, kırık bir derleme üzerinde saatlerce regresyon senaryosu koşturup anlamsız hata kayıtları açmak yerine, haberi dakikalar içinde alır ve bir sonraki derlemeyi bekler. Duman testinin değeri tam burada ortaya çıkar: pahalı testleri boşa harcamaktan korur.

Sanity test ve regresyon testinden farkı

Duman testi geniş ama sığ bir kontroldür: tüm ana alanlara kısaca bakar. Sanity test ise dar ve derindir: belirli bir değişikliğin ya da hata düzeltmesinin yerinde çalışıp çalışmadığını, ilgili bölgede doğrular. Bazı kaynaklar iki terimi birbirinin yerine kullanır; uygulamada kapsam ve amaç farkına bakmak gerekir.

Regresyon testi ise yeni değişikliğin eski işlevleri bozup bozmadığını geniş kapsamlı denetler ve zaman alır. Sıra çoğu zaman şöyledir: önce duman testi, sonra yeni değişikliğe yönelik doğrulama, ardından regresyon. Duman testi kapı bekçisi, regresyon ise ayrıntılı denetimdir.

Nerede kullanılır?

Duman testi, sürekli entegrasyon ve dağıtım hatlarında, her yeni derlemeden sonra, bir ortama dağıtım yapıldıktan hemen sonra ve üretim yayınından sonra hızlı sağlık kontrolü olarak kullanılır. Test mühendisleri, QA ekipleri, DevOps mühendisleri ve geliştiriciler bu testin sahibi olabilir.

İyi bir duman test seti kısa tutulur. Kapsamı genişlerse yavaşlar ve kendi amacını yitirir. Hangi akışların kritik sayılacağı iş sahipleriyle birlikte belirlenmelidir.

Mindset kataloğunda Proje Test ve Doğrulama Süreçleri, test türlerini ve test yürütmeyi proje düzeyinde ele alır; Test Otomasyonu ve QA Temelleri test türleri, kapsam yönetimi ve otomasyon temelleri üzerinde durur; TDD ve Unit Testing Uzmanlığı programı ise kod düzeyindeki test disiplinini işler. Duman testinin otomasyonunu kurmak isteyen QA ve DevOps ekipleri için ikinci program daha doğrudan bir başlangıç noktasıdır.

İlgili Mindset programı

Test Otomasyonu ve QA Temelleri

Sık sorulanlar

Sık sorulan sorular

Duman testi manuel mi yapılır, otomatik mi?

İkisi de mümkündür, ancak otomatik yapılması tercih edilir. Duman testi her yeni derlemede tekrar tekrar koşulduğu için elle yürütmek zaman kaybettirir ve tutarsızlık yaratır. Küçük ekiplerde başlangıçta kısa bir elle kontrol listesi kullanılabilir; sonra kritik akışlar sırayla otomatik betiğe dönüştürülür.

Duman testi başarısız olursa ne olur?

Derleme reddedilir ve ileri test aşamalarına geçilmez. Sorun, sürümü hazırlayan ekibe iletilir; düzeltme yapılınca yeni derleme üzerinde duman testi baştan koşulur. Bu kural, hatalı bir sürümün test ekibinin vaktini harcamasını ve yanlış hata kayıtları üretmesini engeller.

Duman testine hangi senaryolar dahil edilmeli?

Sistem çalışmıyorsa iş yapılamaz diyebileceğiniz kritik akışlar: uygulamanın açılması, giriş, ana işlem akışı ve temel veri bağlantıları. Ayrıntılı iş kuralları, nadir görülen durumlar ve arayüz detayları kapsam dışıdır. Liste ne kadar kısa ve güvenilir olursa o kadar sık koşulur ve o kadar değerli olur.

Duman testi ile sağlık kontrolü (health check) aynı mıdır?

Benzerler ama aynı değildir. Sağlık kontrolü çalışan servisin canlı ve erişilebilir olduğunu sürekli izleyen teknik bir sinyaldir. Duman testi ise bir sürümün temel işlevlerini kullanıcı akışı mantığıyla sınayan bir test aşamasıdır. Dağıtım sonrası ikisi birlikte kullanılabilir.

Duman Testi (Smoke Test) Nedir? Nasıl Yapılır?