Sobes.tech
Junior

Cos'è un test di fumata?

sobes.tech AI

Risposta dell'AI

Il test di fumata (test di fumata) è un tipo di test del software eseguito dopo la compilazione di una nuova versione per verificare rapidamente le sue funzionalità di base e la stabilità. L'obiettivo è determinare se vale la pena continuare con test più approfonditi.

Caratteristiche principali:

  • Superficiale: Vengono verificate solo le funzioni più importanti e critiche dell'applicazione.
  • Veloce: Eseguito in un breve periodo di tempo, di solito non più di 30-60 minuti.
  • Critico: Focalizzato sulla rilevazione di difetti gravi che rendono inutili ulteriori test.
  • Gatekeeper: Se il test di fumata fallisce, la build viene respinta e non viene eseguito un ciclo completo di test.

Scenari di utilizzo:

  1. Ogni nuova build: Verificata dopo ogni distribuzione di una nuova versione dell'applicazione.
  2. Prima del rilascio: Verifica rapida finale prima della messa in produzione.
  3. Dopo modifiche: Verificata per assicurarsi che le modifiche recenti non abbiano rotto le funzioni principali.

Esempio di test (per un'applicazione web):

  • Caricamento riuscito della pagina principale.
  • Possibilità di effettuare il login.
  • Funzionamento delle sezioni principali (ad esempio, visualizzazione dell'elenco dei prodotti).
  • Verifica della corretta uscita dal sistema.

I test di fumata possono essere manuali o automatizzati. L'automazione dei test di fumata accelera notevolmente il processo e garantisce la stabilità delle verifiche.

# Esempio di test di fumata automatizzato semplice usando 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)
        # Verifica che ci sia un campo per inserire il login
        login_field = driver.find_element(By.ID, "login-input")
        assert login_field.is_displayed(), "Campo login non visibile"

        # Verifica che ci sia un campo per inserire la password
        password_field = driver.find_element(By.ID, "password-input")
        assert password_field.is_displayed(), "Campo password non visibile"

        # Verifica che ci sia il pulsante di login
        login_button = driver.find_element(By.ID, "login-button")
        assert login_button.is_displayed(), "Pulsante login non visibile"

        # Tentativo di login (opzionale, dipende dall'ambito del test di fumata)
        # login_field.send_keys(username)
        # password_field.send_keys(password)
        # login_button.click()
        # assert "dashboard" in driver.current_url # Verifica del redirect

        print("Test di fumata: Elementi di login di base sono presenti.")
        return True
    except Exception as e:
        print(f"Test di fumata fallito: {e}")
        return False
    finally:
        driver.quit()

# Esempio di chiamata
# smoke_test_login("http://example.com/login", "testuser", "password123")