Sobes.tech
Junior

Qu'est-ce que le test de fumée?

sobes.tech IA

Réponse de l'IA

Les tests de fumée (tests de fumée) sont un type de test logiciel effectué après la compilation d'une nouvelle version pour vérifier rapidement ses fonctionnalités de base et sa stabilité. L'objectif est de déterminer s'il est utile de poursuivre avec des tests plus approfondis.

Caractéristiques principales :

  • Superficiel : Seuls les fonctions les plus importantes et critiques de l'application sont vérifiées.
  • Rapide : Réalisé en une courte période, généralement pas plus de 30-60 minutes.
  • Critique : Axé sur la détection de défauts graves rendant les tests supplémentaires inutiles.
  • Gatekeeper : Si le test de fumée échoue, la build est rejetée et aucun cycle complet de test n'est effectué.

Scénarios d'utilisation :

  1. Chaque nouvelle build : Vérifiée après chaque déploiement d'une nouvelle version de l'application.
  2. Avant la sortie : Vérification rapide finale avant la mise en production.
  3. Après modification : Vérifiée pour s'assurer que les changements récents n'ont pas cassé les fonctions principales.

Exemple de test (pour une application web) :

  • Chargement réussi de la page d'accueil.
  • Capacité à se connecter.
  • Fonctionnement des sections principales (par exemple, vue de la liste des produits).
  • Vérification de la sortie correcte du système.

Les tests de fumée peuvent être manuels ou automatisés. L'automatisation accélère considérablement le processus et garantit la stabilité des vérifications.

# Exemple de test de fumée automatisé simple utilisant 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)
        # Vérifier qu'il y a un champ pour entrer le login
        login_field = driver.find_element(By.ID, "login-input")
        assert login_field.is_displayed(), "Champ de login non affiché"

        # Vérifier qu'il y a un champ pour entrer le mot de passe
        password_field = driver.find_element(By.ID, "password-input")
        assert password_field.is_displayed(), "Champ de mot de passe non affiché"

        # Vérifier qu'il y a un bouton de connexion
        login_button = driver.find_element(By.ID, "login-button")
        assert login_button.is_displayed(), "Bouton de connexion non affiché"

        # Tentative de connexion (optionnel, dépend de la portée du test de fumée)
        # login_field.send_keys(username)
        # password_field.send_keys(password)
        # login_button.click()
        # assert "dashboard" in driver.current_url # Vérification de la redirection

        print("Test de fumée : Les éléments de connexion de base sont présents.")
        return True
    except Exception as e:
        print(f"Échec du test de fumée : {e}")
        return False
    finally:
        driver.quit()

# Exemple d'appel
# smoke_test_login("http://example.com/login", "testuser", "password123")