Junior
Čo je to smoke-test?
sobes.tech AI
Odpoveď od AI
Smoke-testovanie (dymové testovanie) je typ testovania softvéru, ktorý sa vykonáva po zostavení novej verzie na rýchle overenie základnej funkčnosti a stability. Cieľom je určiť, či stojí za to pokračovať v ďalšom, podrobnejšom testovaní.
Hlavné charakteristiky:
- Povrchové: Kontrolujú sa len najdôležitejšie a kritické funkcie aplikácie.
- Rýchle: Vykonáva sa za krátky čas, zvyčajne do 30-60 minút.
- Kritické: Zamerané na odhalenie vážnych chýb, ktoré robia ďalšie testovanie nezmyselným.
- Gatekeeper: Ak smoke-test zlyhá, build je zamietnutý a celý testovací cyklus sa neuskutoční.
Scenáre použitia:
- Každá nová zostava: Kontroluje sa po nasadení novej verzie aplikácie.
- Pred vydaním: Finálna rýchla kontrola pred uvedením do produkcie.
- Po vykonaní zmien: Kontroluje sa, či nedávne zmeny nezlomili hlavné funkcie.
Príklad kontroly (pre webovú aplikáciu):
- Úspešné načítanie hlavnej stránky.
- Možnosť prihlásenia do systému.
- Funkčnosť hlavných sekcií (napríklad prehliadanie zoznamu produktov).
- Kontrola správneho odhlásenia zo systému.
Smoke-testy môžu byť ako ručné, tak automatizované. Automatizácia smoke-testov výrazne urýchľuje proces a zabezpečuje stabilitu kontrol.
# Príklad jednoduchého automatizovaného smoke-testu s použitím 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)
# Kontrola, že je pole pre zadanie loginu
login_field = driver.find_element(By.ID, "login-input")
assert login_field.is_displayed(), "Pole pre login nie je zobrazené"
# Kontrola, že je pole pre zadanie hesla
password_field = driver.find_element(By.ID, "password-input")
assert password_field.is_displayed(), "Pole pre heslo nie je zobrazené"
# Kontrola, že je tlačidlo pre prihlásenie
login_button = driver.find_element(By.ID, "login-button")
assert login_button.is_displayed(), "Tlačidlo pre prihlásenie nie je zobrazené"
# Pokus o prihlásenie (voliteľné, záleží od hĺbky smoke testu)
# login_field.send_keys(username)
# password_field.send_keys(password)
# login_button.click()
# assert "dashboard" in driver.current_url # Kontrola presmerovania
print("Smoke test: Základné prvky prihlásenia sú prítomné.")
return True
except Exception as e:
print(f"Smoke test zlyhal: {e}")
return False
finally:
driver.quit()
# Príklad volania
# smoke_test_login("http://example.com/login", "testuser", "password123")