Sobes.tech
Junior

Čo je to smoke-test?

sobes.tech AI

Odpoveď od AI

Smoke-testovanie (dymové testovanie) je typ testovania softvéru, ktorý sa vykonáva po zostavení novej verzie na rýchle overenie základnej funkčnosti a stability. Cieľom je určiť, či stojí za to pokračovať v ďalšom, podrobnejšom testovaní.

Hlavné charakteristiky:

  • Povrchové: Kontrolujú sa len najdôležitejšie a kritické funkcie aplikácie.
  • Rýchle: Vykonáva sa za krátky čas, zvyčajne do 30-60 minút.
  • Kritické: Zamerané na odhalenie vážnych chýb, ktoré robia ďalšie testovanie nezmyselným.
  • Gatekeeper: Ak smoke-test zlyhá, build je zamietnutý a celý testovací cyklus sa neuskutoční.

Scenáre použitia:

  1. Každá nová zostava: Kontroluje sa po nasadení novej verzie aplikácie.
  2. Pred vydaním: Finálna rýchla kontrola pred uvedením do produkcie.
  3. Po vykonaní zmien: Kontroluje sa, či nedávne zmeny nezlomili hlavné funkcie.

Príklad kontroly (pre webovú aplikáciu):

  • Úspešné načítanie hlavnej stránky.
  • Možnosť prihlásenia do systému.
  • Funkčnosť hlavných sekcií (napríklad prehliadanie zoznamu produktov).
  • Kontrola správneho odhlásenia zo systému.

Smoke-testy môžu byť ako ručné, tak automatizované. Automatizácia smoke-testov výrazne urýchľuje proces a zabezpečuje stabilitu kontrol.

# Prí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 pre zadanie loginu
        login_field = driver.find_element(By.ID, "login-input")
        assert login_field.is_displayed(), "Pole pre login nie je zobrazené"

        # Kontrola, že je pole pre zadanie hesla
        password_field = driver.find_element(By.ID, "password-input")
        assert password_field.is_displayed(), "Pole pre heslo nie je zobrazené"

        # Kontrola, že je tlačidlo pre prihlásenie
        login_button = driver.find_element(By.ID, "login-button")
        assert login_button.is_displayed(), "Tlačidlo pre prihlásenie nie je zobrazené"

        # Pokus o prihlásenie (voliteľné, záleží od hĺbky smoke testu)
        # login_field.send_keys(username)
        # password_field.send_keys(password)
        # login_button.click()
        # assert "dashboard" in driver.current_url # Kontrola presmerovania

        print("Smoke test: Základné prvky prihlásenia sú prítomné.")
        return True
    except Exception as e:
        print(f"Smoke test zlyhal: {e}")
        return False
    finally:
        driver.quit()

# Príklad volania
# smoke_test_login("http://example.com/login", "testuser", "password123")