Sobes.tech
Junior

Nedir duman testi?

sobes.tech yapay zeka

AI'dan gelen yanıt

Duman testi (dumanlı test) yeni derlemeden sonra gerçekleştirilen ve temel fonksiyonelliği ile kararlılığı hızlıca kontrol eden bir yazılım testi türüdür. Amaç, daha derin testlere devam edip etmeme kararını vermektir.

Ana özellikler:

  • Yüzeysel: Sadece uygulamanın en önemli ve kritik fonksiyonları kontrol edilir.
  • Hızlı: Kısa sürede, genellikle 30-60 dakika içinde tamamlanır.
  • Kritik: Daha fazla testin anlamlı olmaması için ciddi hataları tespit etmeye yöneliktir.
  • Gatekeeper: Eğer duman testi başarısız olursa, derleme reddedilir ve tam bir test döngüsü yapılmaz.

Kullanım senaryoları:

  1. Her yeni derleme: Uygulamanın yeni sürümünün dağıtımından sonra kontrol edilir.
  2. Yayın öncesi: Üretime alınmadan önce son hızlı kontrol.
  3. Değişikliklerden sonra: Son değişikliklerin ana fonksiyonları bozup bozmadığını kontrol eder.

Örnek kontrol (web uygulaması için):

  • Ana sayfanın başarılı yüklenmesi.
  • Giriş yapma imkanı.
  • Ana bölümlerin çalışması (örneğin, ürün listesi görüntüleme).
  • Sistemden doğru çıkışın kontrolü.

Duman testleri hem manuel hem de otomatik olabilir. Otomasyon, süreci önemli ölçüde hızlandırır ve kontrollerin kararlılığını sağlar.

# Selenium kullanarak basit otomatik duman testi örneği
from selenium import webdriver
from selenium.webdriver.common.by import By

def smoke_test_login(url, username, password):
    driver = webdriver.Chrome()
    try:
        driver.get(url)
        # Giriş alanının olup olmadığını kontrol et
        login_field = driver.find_element(By.ID, "login-input")
        assert login_field.is_displayed(), "Giriş alanı görünmüyor"

        # Şifre alanının olup olmadığını kontrol et
        password_field = driver.find_element(By.ID, "password-input")
        assert password_field.is_displayed(), "Şifre alanı görünmüyor"

        # Giriş butonunun olup olmadığını kontrol et
        login_button = driver.find_element(By.ID, "login-button")
        assert login_button.is_displayed(), "Giriş butonu görünmüyor"

        # Giriş denemesi (isteğe bağlı, duman testinin kapsamına bağlı)
        # login_field.send_keys(username)
        # password_field.send_keys(password)
        # login_button.click()
        # assert "dashboard" in driver.current_url # Yönlendirme kontrolü

        print("Duman testi: Temel giriş öğeleri mevcut.")
        return True
    except Exception as e:
        print(f"Duman testi başarısız: {e}")
        return False
    finally:
        driver.quit()

# Çağrı örneği
# smoke_test_login("http://example.com/login", "testuser", "password123")