Sobes.tech
Junior

Was ist ein Rauchtest?

sobes.tech KI

Antwort von AI

Der Smoke-Test (Rauchtest) ist eine Art der Softwareprüfung, die nach dem Build einer neuen Version durchgeführt wird, um schnell die grundlegende Funktionalität und Stabilität zu überprüfen. Ziel ist es zu entscheiden, ob es sinnvoll ist, mit tiefergehenden Tests fortzufahren.

Hauptmerkmale:

  • Oberflächlich: Es werden nur die wichtigsten und kritischsten Funktionen der Anwendung geprüft.
  • Schnell: Wird in kurzer Zeit durchgeführt, meist nicht länger als 30-60 Minuten.
  • Kritisch: Zielt darauf ab, schwerwiegende Fehler zu erkennen, die weitere Tests sinnlos machen.
  • Gatekeeper: Wenn der Smoke-Test fehlschlägt, wird der Build abgelehnt und kein vollständiger Testzyklus durchgeführt.

Anwendungsszenarien:

  1. Jeder neuen Build: Wird nach jeder Bereitstellung einer neuen Version der Anwendung überprüft.
  2. Vor der Veröffentlichung: Letzte schnelle Überprüfung vor der Produktion.
  3. Nach Änderungen: Überprüft, ob kürzliche Änderungen die Hauptfunktionen nicht beschädigt haben.

Beispiel für einen Test (für eine Webanwendung):

  • Erfolgreiches Laden der Startseite.
  • Möglichkeit, sich anzumelden.
  • Funktionieren der Hauptbereiche (z.B. Produktliste anzeigen).
  • Korrekte Abmeldung vom System.

Smoke-Tests können manuell oder automatisiert durchgeführt werden. Die Automatisierung beschleunigt den Prozess erheblich und sorgt für Stabilität bei den Prüfungen.

# Einfaches automatisiertes Smoke-Test-Beispiel mit 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)
        # Überprüfen, ob das Login-Feld vorhanden ist
        login_field = driver.find_element(By.ID, "login-input")
        assert login_field.is_displayed(), "Login-Feld nicht sichtbar"

        # Überprüfen, ob das Passwortfeld vorhanden ist
        password_field = driver.find_element(By.ID, "password-input")
        assert password_field.is_displayed(), "Passwortfeld nicht sichtbar"

        # Überprüfen, ob der Login-Button vorhanden ist
        login_button = driver.find_element(By.ID, "login-button")
        assert login_button.is_displayed(), "Login-Button nicht sichtbar"

        # Versuch des Logins (optional, abhängig vom Umfang des Smoke-Tests)
        # login_field.send_keys(username)
        # password_field.send_keys(password)
        # login_button.click()
        # assert "dashboard" in driver.current_url # Weiterleitungsprüfung

        print("Smoke-Test: Grundlegende Login-Elemente sind vorhanden.")
        return True
    except Exception as e:
        print(f"Smoke-Test fehlgeschlagen: {e}")
        return False
    finally:
        driver.quit()

# Beispielaufruf
# smoke_test_login("http://example.com/login", "testuser", "password123")