Junior
Wat is een smoke-test?
sobes.tech AI
Antwoord van AI
Smoke-testen (rooktest) is een type softwaretest dat wordt uitgevoerd na het bouwen van een nieuwe versie om snel de basisfunctionaliteit en stabiliteit te controleren. Het doel is om te bepalen of het zinvol is om door te gaan met diepere tests.
Belangrijkste kenmerken:
- Oppervlakkig: Alleen de belangrijkste en kritieke functies van de toepassing worden gecontroleerd.
- Snel: Wordt in een korte tijd uitgevoerd, meestal niet langer dan 30-60 minuten.
- Kritisch: Gericht op het opsporen van ernstige defecten die verdere tests zinloos maken.
- Gatekeeper: Als de rooktest faalt, wordt de build afgewezen en wordt geen volledige testcyclus uitgevoerd.
Gebruiksscenario's:
- Elke nieuwe build: Wordt gecontroleerd na elke implementatie van een nieuwe versie van de toepassing.
- Voor release: Laatste snelle controle voor uitrol naar productie.
- Na wijzigingen: Wordt gecontroleerd of recente wijzigingen de hoofdfuncties niet hebben gebroken.
Voorbeeld van een test (voor een webapplicatie):
- Succesvolle lading van de hoofdpagina.
- Mogelijkheid om in te loggen.
- Functionaliteit van hoofdsecties (bijvoorbeeld, bekijken van de productlijst).
- Correct uitloggen uit het systeem.
Smoke-tests kunnen handmatig of geautomatiseerd worden uitgevoerd. Automatisering versnelt het proces aanzienlijk en zorgt voor stabiliteit van de controles.
# Eenvoudig geautomatiseerd smoke-testvoorbeeld met 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)
# Controleren of het login-veld aanwezig is
login_field = driver.find_element(By.ID, "login-input")
assert login_field.is_displayed(), "Login-veld niet zichtbaar"
# Controleren of het wachtwoord-veld aanwezig is
password_field = driver.find_element(By.ID, "password-input")
assert password_field.is_displayed(), "Wachtwoord-veld niet zichtbaar"
# Controleren of de login-knop aanwezig is
login_button = driver.find_element(By.ID, "login-button")
assert login_button.is_displayed(), "Login-knop niet zichtbaar"
# Poging tot inloggen (optioneel, afhankelijk van de scope van de smoke-test)
# login_field.send_keys(username)
# password_field.send_keys(password)
# login_button.click()
# assert "dashboard" in driver.current_url # Redirect controleren
print("Smoke-test: Basis login-elementen zijn aanwezig.")
return True
except Exception as e:
print(f"Fout bij smoke-test: {e}")
return False
finally:
driver.quit()
# Voorbeeld van aanroep
# smoke_test_login("http://example.com/login", "testuser", "password123")