Sobes.tech
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:

  1. Kiekvienas naujas kūrinys: Patikrinama po kiekvieno naujo versijos diegimo.
  2. Prieš leidimą: Galutinis greitas patikrinimas prieš išleidžiant į gamybą.
  3. 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")