Temel Test ve Duman Testi: Başlıca Farklar, Örnekler ve Her Birinin Ne Zaman Kullanılacağı

⚡ Kısa Özet

Mantıksal Yeterlilik Testi ve Duman Testi Bunlar, derleme sonrası sistem kararlılığını ve rasyonelliğini doğrulamaya odaklanan iki temel yazılım test yöntemidir. Her ikisi de, test döngüsünün başlarında kararsız veya kusurlu derlemeleri belirleyerek gereksiz kalite güvence çalışmalarını önlemeyi amaçlar.

  • Foundational Konsepti: Duman testi, yazılım derlemesinin hemen ardından kritik işlevleri doğrulayarak genel yapı istikrarını teyit eder.
  • Sağduyu Doğrulaması: Sağlamlık Testi, küçük kod veya işlev güncellemelerinden sonra mantıklılığı doğrulamaya odaklanır.
  • Yürütme Rolü: Duman testleri geliştiriciler veya test uzmanları tarafından yapılır; sağlamlık testleri ise genellikle yalnızca test uzmanları tarafından gerçekleştirilir.
  • Test Hiyerarşisi: Duman testi, kabul testinin bir alt kümesidir; sağlamlık testi ise gerileme testinin kapsamındadır.
  • Kapsam Kapsamı: Duman testi, uygulamanın tamamını değerlendirir; sağlamlık testi ise kapsamı belirli modüllerle sınırlandırır.
  • Verimlilik Stratejisi: En iyi uygulama, sağlamlık doğrulamasından önce duman testleri yapmayı içerir.

Sağlamlık Testi ve Duman Testi Karşılaştırması

Duman Testi ve Sağlamlık Testi: Karşılaştırma Tablosu

Görünüş Duman Testi Akıl Sağlığı Testi
Birincil Hedef Derleme kararlılığını doğrulayın Değişikliklerin işlevselliğini doğrulayın.
kapsam Geniş kapsamlı (tüm başvuru) Dar (belirli modüller)
derinlik Yüzeysel test Derinlemesine test (hedefli)
Tarafından gerçekleştirilen Geliştiriciler veya Test Uzmanları Sadece test kullanıcıları
Durum Oluştur İlk/kararsız sürümler Nispeten istikrarlı yapılar
Dökümanlar Senaryosu yazılmış ve belgelenmiş Genellikle doğaçlama
Test Alt Kümesi Kabul testleri Gerileme testi
Otomasyon Şiddetle tavsiye Manuel veya otomatik olabilir.
Duman Testi ve Akıl Sağlığı Testi
Duman Testi ve Akıl Sağlığı Testi

Yazılım Oluşturma Nedir?

Sadece tek bir kaynak kod dosyasından oluşan basit bir bilgisayar programı geliştiriyorsanız, çalıştırılabilir bir dosya oluşturmak için bu tek dosyayı derlemeniz ve bağlamanız yeterlidir. Bu işlem oldukça basittir. Ancak genellikle durum böyle değildir. Tipik bir yazılım projesi yüzlerce hatta binlerce kaynak kod dosyasından oluşur. Bu kaynak dosyalarından çalıştırılabilir bir program oluşturmak karmaşık ve zaman alıcı bir iştir. Çalıştırılabilir bir program oluşturmak için "derleme" yazılımı kullanmanız gerekir ve bu işleme "Yazılım Derleme" denir.

Duman Testi Nedir?

Duman testi, yazılım derlemesinden sonra yazılımın kritik işlevlerinin düzgün çalıştığını doğrulamak için yapılan bir yazılım test tekniğidir. Ayrıntılı fonksiyonel veya regresyon testleri yapılmadan önce gerçekleştirilir. Duman testinin temel amacı, kusurlu bir yazılım uygulamasını reddetmek ve böylece QA ekibinin bozuk bir yazılım uygulamasını test etmek için zaman kaybetmesini önlemektir.

Duman testinde, seçilen test senaryoları sistemin en kritik işlevselliğini veya bileşenini kapsar. Amaç kapsamlı test yapmak değil, yazılım uygulamasının temel işlevlerinin doğru çalıştığından emin olmaktır. Örneğin, tipik bir duman testi, uygulamanın başarıyla başlatıldığını, grafik kullanıcı arayüzünün (GUI) yanıt verdiğini vb. doğrular.

Akıl Sağlığı Testi Nedir?

Sağlamlık testi, kodda veya işlevsellikte küçük değişiklikler içeren bir yazılım sürümü alındıktan sonra, hataların giderildiğinden ve bu değişiklikler nedeniyle başka sorunların ortaya çıkmadığından emin olmak için yapılan bir yazılım testi türüdür. Amaç, önerilen işlevselliğin kabaca beklendiği gibi çalıştığını belirlemektir. Sağlamlık testi başarısız olursa, daha derinlemesine testlere zaman ve kaynak harcamaktan kaçınmak için sürüm reddedilir.

Amaç, kapsamlı işlevselliği doğrulamak değil, geliştiricinin yazılımı üretirken bir miktar akılcılık (mantık) uyguladığını belirlemektir. Örneğin, bilimsel hesap makineniz 2 + 2 = 5 sonucunu veriyorsa, sin 30 + cos 50 gibi gelişmiş işlevleri test etmenin bir anlamı yoktur.

Terimlerin Tarihçesi ve Kökeni

"Duman testi" terimi, donanım ve elektronik endüstrisinden kaynaklanmaktadır. Mühendisler yeni bir devre kartını ilk kez çalıştırdıklarında, duman çıkıp çıkmadığını gözlemlerlerdi; bu, temel bir hatanın anlık bir göstergesiydi. Duman çıkmazsa, temel testlere devam edilebilirdi. Bu kavram, 1980'lerde yazılım test uzmanları tarafından ilk derleme doğrulamasını tanımlamak için benimsenmiştir.

Öte yandan, "mantıklılık testi", belirli değişikliklerin "mantıklı" veya rasyonel olup olmadığını kontrol etmeyi ifade eder. Bu terim, yazılımın değişikliklerden sonra mantıklı ve akılcı bir şekilde davrandığını doğrulamayı vurgular; esasen "Bu mantıklı mı?" sorusunu sorar.

Duman Testi, Sağlamlık Testi ve Regresyon Testi Karşılaştırması

Bu üç test türünün birlikte nasıl çalıştığını anlamak, etkili bir kalite güvence stratejisi için çok önemlidir:

  • Duman Testi Öncelikle bu işlem yapılır; bu, yapının test edilebilecek kadar kararlı olduğunu doğrular.
  • Akıl Sağlığı Testi (Uygulanabilir olduğunda) aşağıdaki adımlar izlenir; bu, belirli değişikliklerin veya düzeltmelerin doğru şekilde çalıştığını doğrular.
  • Gerileme testi En kapsamlı olanıdır; yeni değişikliklerin mevcut işlevselliği bozmadığından emin olunmasını sağlar.

Bunu bir huni gibi düşünün: Duman testi, kararsız sürümleri hızla filtreleyen geniş açıklıktır; sağlamlık testi, odağı belirli değişikliklere daraltır; ve regresyon testi, tüm sistemin kapsamlı bir şekilde incelenmesini sağlar.

Gerçek Dünya Senaryosu: E-Ticaret Uygulaması

Alışveriş sepetindeki bir hatanın düzeltildiği yeni bir sürüm alan bir e-ticaret sitesini ele alalım:

Duman Testi: Kalite kontrol ekibi öncelikle web sitesinin yüklendiğini, kullanıcıların giriş yapabildiğini, ürünlerin doğru şekilde görüntülendiğini, aramanın çalıştığını ve ödeme işleminin başlatıldığını doğrular. Bu işlem yaklaşık 15-30 dakika sürer.

Akıl Sağlığı Testi: Duman testi başarılı olduktan sonra, test uzmanları özellikle alışveriş sepeti işlevine odaklanırlar: ürün ekleme, miktarları güncelleme, ürün çıkarma ve hesaplamaları doğrulama. Bu hedefli test yaklaşık 30-60 dakika sürer.

Her iki test de başarılı olursa, ekip uygulamanın karmaşıklığına bağlı olarak birkaç saat veya gün sürebilecek tam regresyon testine geçer.

Duman Testi mi Yoksa Sağlamlık Testi mi Kullanılmalı?

Duman testi şu durumlarda kullanılır:

  • Yeni bir yazılım sürümü test ortamına dağıtıldı.
  • Giriş yapma, gezinme ve veri akışı gibi kritik işlevleri hızlıca doğrulamanız gerekiyor.
  • Yapının daha detaylı testler için yeterince kararlı olup olmadığını belirlemek.
  • Otomatik derleme doğrulaması için CI/CD işlem hatlarına entegrasyon

Aşağıdaki durumlarda sağlamlık testi kullanın:

  • Küçük kod değişiklikleri, hata düzeltmeleri veya özellik geliştirmeleri uygulanır.
  • Belirli değişikliklerin beklendiği gibi çalıştığını doğrulamak.
  • Önceki testlerden elde edilen verilere göre, sistem zaten nispeten istikrarlı durumda.

Avantajlar ve Sınırlamalar

Avantajlar

  • Kritik sorunların hızlı tespiti: Her iki yöntem de testlerin durmasına neden olabilecek sorunları hızla tespit eder.
  • Kaynak verimliliği: Ekipler, temelden hatalı olan sürümlerin detaylı testleriyle vakit kaybetmezler.
  • Erken hata tespiti: Sorunları sürecin başlarında tespit etmek, genel onarım maliyetlerini düşürür.
  • Daha hızlı yayın döngüleri: Etkin kontrol mekanizmaları, daha hızlı yineleme ve dağıtım sağlar.

Sınırlamalar

  • Sınırlı kapsam: Her iki test türü de uygulamanın tamamını kapsamlı bir şekilde ele almamaktadır.
  • Gizli hataları gözden kaçırabilirsiniz: Entegrasyon sorunları veya uç durumlar tespit edilemeyebilir.
  • Tam testlerin yerini tutmaz: Bunlar hızlı filtre görevi görürler, regresyon testinin yerini tutmazlar.

Uygulama için En İyi Uygulamalar

Duman Testi İçin:

  • Her derleme için duman testlerini otomatikleştirin ve bunları CI/CD işlem hattınıza entegre edin.
  • Duman testi paketini yalnızca kritik işlevlere odaklı tutun, çok büyümesine izin vermeyin.
  • Kritik özellikler eklendiğinde veya değiştirildiğinde duman testlerini güncelleyin.

Sağlamlık Testi İçin:

  • Sağlamlık test senaryoları oluşturmadan önce her zaman değişiklik dokümantasyonunu inceleyin.
  • Test çalışmalarını, değiştirilen alanlara ve bunlara hemen bitişik işlevlere odaklayın.
  • Beklenmedik sorunları ortaya çıkarmak için keşifsel test tekniklerini kullanın.

Kaçınılması Gereken Genel Hatalar

  • İki test türünü karıştırmak: Duman testi geniş kapsamlı ve yüzeyseldir; sağlamlık testi ise dar kapsamlı ve derinlemesinedir.
  • Zaman kazanmak için duman testi yapılmaması: Bu durum genellikle istikrarsız yapılar üzerinde boşa harcanan çabalara yol açar.
  • Duman testlerini çok kapsamlı hale getirmek: Bu, hızlı doğrulamanın amacını ortadan kaldırır.
  • Başarısızlıkların ardından ilerlemek: Test türlerinden herhangi biri başarısız olursa, durun ve devam etmeden önce sorunları giderin.

Duman ve Akıl Sağlığı Testi İçin Önerilen Araçlar

  • Selenium Web Sürücüsü: Web uygulaması test otomasyonu için sektör standardı
  • TestNG/JUnit: Otomatik testleri düzenlemek ve yürütmek için test çerçeveleri.
  • Jenkins/GitHub İşlemleri: Otomatik derleme ve test yürütme için CI/CD araçları
  • Cypress: Modern, geliştirici dostu uçtan uca test çerçevesi
  • Postman/Emin olabilirsiniz: Arka uç testlerine yönelik API test araçları

SSS

Sağlamlık testi, son kod değişikliklerinin veya hata düzeltmelerinin yeni sorunlar yaratmadan doğru şekilde çalıştığını doğrular. Örneğin, bir giriş modülü güncellendikten sonra, test uzmanları kullanıcı kimlik doğrulamasının ve yönlendirmesinin hala beklendiği gibi çalıştığını doğrular.

Duman testi, derleme istikrarını sağlamak için kritik uygulama iş akışlarını kontrol eder. Örneğin, bir e-ticaret sitesinin yüklendiğini, ürünlerin doğru şekilde görüntülendiğini ve ödeme işleminin başlatıldığını doğrulamak, derlemenin daha derin testler için hazır olduğunu teyit eder.

Duman testi geniş kapsamlı ve yüzeyseldir, sistemin genel olarak test için hazır olduğunu doğrular. Sağlamlık testi ise dar kapsamlı ve derinlemesinedir, kararlı bir sürümdeki küçük güncellemelerden sonra belirli düzeltmeleri veya yeni işlevleri doğrular.

Kodda yapılan küçük değişiklikler, yamalar veya hata düzeltmelerinden sonra, hedeflenen işlevselliği doğrulamak için temel doğrulama testleri yapılır. Bu testler, geriye dönük uyumluluk veya entegrasyon testlerine zaman ayırmadan önce değişikliklerin amaçlandığı gibi çalıştığından emin olmayı sağlar.

Her yeni derleme dağıtımından sonra duman testi yapılmalıdır. Bu test, temel özelliklerin çalıştığını ve uygulamanın kapsamlı otomatik veya manuel testlere geçebilecek kadar kararlı olduğunu doğrular.

Evet, otomasyon çerçeveleri ve CI/CD sistemleri her ikisini de paralel olarak çalıştırabilir. Duman testleri derleme kararlılığını doğrular, sağlamlık testleri ise işlevselliğin doğruluğunu teyit ederek çevik ortamlarda sürüm hazırlığını hızlandırır.

Duman testi başarısız olursa, derleme daha fazla test için reddedilir ve düzeltmeler için geliştiricilere geri gönderilir. Sağlamlık testi başarısız olursa, son değişikliklerin işlevselliği bozduğu anlamına gelir ve sorun çözülene kadar geriye dönük testler durdurulur.

Modern otomasyon çerçeveleri etiketleme veya modüler test paketleri kullanır. Duman testleri, hızlı doğrulama için CI/CD işlem hatlarının bir parçasıdır, sağlamlık testleri ise hedefli kod güncellemelerinden sonra tetiklenen seçici komut dosyalarıdır.

Yapay zeka, kod değişikliklerini ve geçmiş hata verilerini analiz ederek hangi işlevlerin etkileneceğini tahmin edebildiği ve doğrulama çalışmalarını akıllıca odaklayabildiği için, sağlamlık testi daha fazla fayda sağlar.

Bu yazıyı şu şekilde özetleyin: