Sobes.tech
Junior

Ce este un test de fum?

sobes.tech AI

Răspuns de la AI

Testul de fum (test de fum) este un tip de testare software efectuat după compilarea unei noi versiuni pentru a verifica rapid funcționalitatea de bază și stabilitatea acesteia. Scopul este de a determina dacă merită să se continue cu teste mai aprofundate.

Caracteristici principale:

  • Superficial: Se verifică doar cele mai importante și critice funcții ale aplicației.
  • Rapid: Se efectuează într-un interval scurt de timp, de obicei nu mai mult de 30-60 de minute.
  • Critic: Se concentrează pe identificarea defectelor grave care fac inutile testele suplimentare.
  • Gatekeeper: Dacă testul de fum eșuează, build-ul este respins și nu se efectuează un ciclu complet de testare.

Scenarii de utilizare:

  1. Fiecare nouă build: Se verifică după fiecare implementare a unei noi versiuni a aplicației.
  2. Înainte de lansare: Verificare rapidă finală înainte de a fi lansată în producție.
  3. După modificări: Se verifică dacă modificările recente nu au stricat funcțiile principale.

Exemplu de test (pentru o aplicație web):

  • Încărcare reușită a paginii principale.
  • Posibilitatea de a se conecta.
  • Funcționarea secțiunilor principale (de exemplu, vizualizarea listei de produse).
  • Verificarea deconectării corecte.

Testele de fum pot fi manuale sau automatizate. Automatizarea testelor de fum accelerează semnificativ procesul și asigură stabilitatea verificărilor.

# Exemplu de test de fum automatizat simplu folosind 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)
        # Verifică dacă există câmp pentru introducerea login-ului
        login_field = driver.find_element(By.ID, "login-input")
        assert login_field.is_displayed(), "Câmpul de login nu este vizibil"

        # Verifică dacă există câmp pentru introducerea parolei
        password_field = driver.find_element(By.ID, "password-input")
        assert password_field.is_displayed(), "Câmpul de parolă nu este vizibil"

        # Verifică dacă există butonul de login
        login_button = driver.find_element(By.ID, "login-button")
        assert login_button.is_displayed(), "Butonul de login nu este vizibil"

        # Tentativă de login (opțional, depinde de scopul testului de fum)
        # login_field.send_keys(username)
        # password_field.send_keys(password)
        # login_button.click()
        # assert "dashboard" in driver.current_url # Verificare redirecționare

        print("Test de fum: Elementele de bază pentru login sunt prezente.")
        return True
    except Exception as e:
        print(f"Test de fum eșuat: {e}")
        return False
    finally:
        driver.quit()

# Exemplu de apel
# smoke_test_login("http://example.com/login", "testuser", "password123")