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ı:
- Her yeni derleme: Uygulamanın yeni sürümünün dağıtımından sonra kontrol edilir.
- Yayın öncesi: Üretime alınmadan önce son hızlı kontrol.
- 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")