Sobes.tech
Junior

Czym jest test dymny?

sobes.tech AI

Odpowiedź od AI

Test dymny (test dymny) to rodzaj testowania oprogramowania wykonywany po zbudowaniu nowej wersji, aby szybko sprawdzić jej podstawową funkcjonalność i stabilność. Celem jest ustalenie, czy warto kontynuować dalsze, bardziej szczegółowe testy.

Główne cechy:

  • Płytki: Sprawdzane są tylko najważniejsze i krytyczne funkcje aplikacji.
  • Szybki: Wykonywany w krótkim czasie, zazwyczaj nie dłużej niż 30-60 minut.
  • Krytyczny: Skupia się na wykrywaniu poważnych defektów, które czynią dalsze testy bezsensownymi.
  • Gatekeeper: Jeśli test dymny zawiedzie, build jest odrzucany, a pełny cykl testów nie jest przeprowadzany.

Scenariusze użycia:

  1. Każda nowa kompilacja: Sprawdzana po każdym wdrożeniu nowej wersji aplikacji.
  2. Przed wydaniem: Ostateczna szybka kontrola przed wypuszczeniem do produkcji.
  3. Po wprowadzeniu zmian: Sprawdzana, czy niedawne zmiany nie zepsuły głównych funkcji.

Przykład testu (dla aplikacji internetowej):

  • Udane ładowanie strony głównej.
  • Możliwość zalogowania się.
  • Działanie głównych sekcji (np. przeglądanie listy produktów).
  • Sprawdzenie poprawnego wylogowania się z systemu.

Testy dymne mogą być ręczne lub zautomatyzowane. Automatyzacja testów dymnych znacznie przyspiesza proces i zapewnia stabilność kontroli.

# Przykład prostego zautomatyzowanego testu dymnego z użyciem 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)
        # Sprawdzanie, czy istnieje pole do wpisania loginu
        login_field = driver.find_element(By.ID, "login-input")
        assert login_field.is_displayed(), "Pole logowania nie jest widoczne"

        # Sprawdzanie, czy istnieje pole do wpisania hasła
        password_field = driver.find_element(By.ID, "password-input")
        assert password_field.is_displayed(), "Pole hasła nie jest widoczne"

        # Sprawdzanie, czy jest przycisk logowania
        login_button = driver.find_element(By.ID, "login-button")
        assert login_button.is_displayed(), "Przycisk logowania nie jest widoczny"

        # Próba zalogowania (opcjonalnie, zależy od zakresu testu dymnego)
        # login_field.send_keys(username)
        # password_field.send_keys(password)
        # login_button.click()
        # assert "dashboard" in driver.current_url # Sprawdzenie przekierowania

        print("Test dymny: Podstawowe elementy logowania są obecne.")
        return True
    except Exception as e:
        print(f"Niepowodzenie testu dymnego: {e}")
        return False
    finally:
        driver.quit()

# Przykład wywołania
# smoke_test_login("http://example.com/login", "testuser", "password123")