Junior
Kas yra dūmų testas?
sobes.tech AI
Atsakymas iš AI
Smark-testavimas (dūmų testavimas) — tai programinės įrangos testavimo tipas, atliekamas po naujo kūrimo, siekiant greitai patikrinti jo pagrindinę funkcionalumą ir stabilumą. Tikslas — nustatyti, ar verta tęsti tolesnį, giluminį testavimą.
Pagrindinės savybės:
- Paviršutiniškas: Tikrinamos tik svarbiausios ir kritiškiausios programos funkcijos.
- Greitas: Atliekamas per trumpą laiką, dažniausiai ne ilgiau kaip 30-60 minučių.
- Kritinis: Nukreiptas į rimtų trūkumų aptikimą, kurie daro tolesnį testavimą beprasmišką.
- Gatekeeper: Jei smark-testas nepavyksta, kūrimas atmetamas, ir visas testavimo ciklas nevykdomas.
Naudojimo scenarijai:
- Kiekvienas naujas kūrinys: Patikrinama po kiekvieno naujo versijos diegimo.
- Prieš leidimą: Galutinis greitas patikrinimas prieš išleidžiant į gamybą.
- Po pakeitimų: Patikrinama, ar naujausi pakeitimai nesugadino pagrindinių funkcijų.
Pavyzdys (svetainės programai):
- Sėkmingas pagrindinio puslapio įkėlimas.
- Prisijungimo galimybė.
- Pagrindinių skyrių veikimas (pvz., prekių sąrašo peržiūra).
- Teisingas atsijungimas iš sistemos.
Smark-testai gali būti tiek rankiniai, tiek automatizuoti. Automatizavimas žymiai pagreitina procesą ir užtikrina patikimumą.
# Paprasto automatizuoto smark-testavimo pavyzdys naudojant 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)
# Patikrinimas, ar yra įvesties laukas
login_field = driver.find_element(By.ID, "login-input")
assert login_field.is_displayed(), "Prisijungimo laukas nematomas"
# Patikrinimas, ar yra slaptažodžio laukas
password_field = driver.find_element(By.ID, "password-input")
assert password_field.is_displayed(), "Slaptažodžio laukas nematomas"
# Patikrinimas, ar yra prisijungimo mygtukas
login_button = driver.find_element(By.ID, "login-button")
assert login_button.is_displayed(), "Prisijungimo mygtukas nematomas"
# Bandymas prisijungti (pasirinktinai, priklauso nuo smark-testų gylio)
# login_field.send_keys(username)
# password_field.send_keys(password)
# login_button.click()
# assert "dashboard" in driver.current_url # Peradresavimo patikrinimas
print("Smark-testas: Pagrindiniai prisijungimo elementai yra.")
return True
except Exception as e:
print(f"Smark-testas nepavyko: {e}")
return False
finally:
driver.quit()
# Pavyzdys:
# smoke_test_login("http://example.com/login", "testuser", "password123")