Junior
Co je to smoke-test?
sobes.tech AI
Odpověď od AI
Smoke-testování (dýmové testování) je typ testování softwaru, který se provádí po sestavení nové verze, aby se rychle ověřila základní funkčnost a stabilita. Cílem je určit, zda stojí za to pokračovat v dalším, podrobnějším testování.
Hlavní charakteristiky:
- Povrchní: Kontrolují se pouze nejdůležitější a kritické funkce aplikace.
- Rychlé: Provádí se během krátké doby, obvykle do 30-60 minut.
- Kritické: Zaměřeno na odhalení vážných chyb, které činí další testování bezúčelným.
- Gatekeeper: Pokud smoke-test selže, sestavení je zamítnuto a celý testovací cyklus se neprovádí.
Scénáře použití:
- Každá nová sestava: Kontroluje se po nasazení nové verze aplikace.
- Před vydáním: Finální rychlá kontrola před uvedením do produkce.
- Po provedení změn: Kontroluje se, zda nedávné změny nezlomily hlavní funkce.
Příklad kontroly (pro webovou aplikaci):
- Úspěšné načtení hlavní stránky.
- Možnost přihlášení do systému.
- Funkčnost hlavních sekcí (například prohlížení seznamu produktů).
- Kontrola správného odhlášení ze systému.
Smoke-testy mohou být jak ruční, tak automatizované. Automatizace smoke-testů výrazně urychluje proces a zajišťuje stabilitu kontrol.
# Příklad jednoduchého automatizovaného smoke-testu s použitím Selenium
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)
# Kontrola, že je pole pro zadání přihlašovacího jména
login_field = driver.find_element(By.ID, "login-input")
assert login_field.is_displayed(), "Pole pro přihlášení není zobrazeno"
# Kontrola, že je pole pro zadání hesla
password_field = driver.find_element(By.ID, "password-input")
assert password_field.is_displayed(), "Pole pro heslo není zobrazeno"
# Kontrola, že je tlačítko pro přihlášení
login_button = driver.find_element(By.ID, "login-button")
assert login_button.is_displayed(), "Tlačítko pro přihlášení není zobrazeno"
# Pokus o přihlášení (volitelné, záleží na hloubce smoke testu)
# login_field.send_keys(username)
# password_field.send_keys(password)
# login_button.click()
# assert "dashboard" in driver.current_url # Kontrola přesměrování
print("Smoke test: Základní prvky přihlášení jsou přítomny.")
return True
except Exception as e:
print(f"Smoke test selhal: {e}")
return False
finally:
driver.quit()
# Příklad volání
# smoke_test_login("http://example.com/login", "testuser", "password123")