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:
- Każda nowa kompilacja: Sprawdzana po każdym wdrożeniu nowej wersji aplikacji.
- Przed wydaniem: Ostateczna szybka kontrola przed wypuszczeniem do produkcji.
- 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")