Junior
Šta je smoke-test?
sobes.tech АИ
Одговор од АИ
Смок тестирање (димно тестирање) је тип тестирања софтвера који се изводи након изградње нове верзије како би се брзо проверила основна функционалност и стабилност. Циљ је утврдити да ли је вредно наставити са даљим, детаљнијим тестирањем.
Главне карактеристике:
- Површно: Проверјају се само најважније и критичне функције апликације.
- Брзо: Извршава се у кратком времену, обично не дуже од 30-60 минута.
- Критично: Усмерено на откривање озбиљних дефеката који чине даље тестирање бесмисленим.
- Gatekeeper: Ако смок-тест не успе, билд се одбија, и цео циклус тестирања се не спроводи.
Сценарији употребе:
- Свака нова верзија: Проверја се након сваког распоређивања нове верзије апликације.
- Пре изласка: Финална брза проверa пре пуштања у продукцију.
- После измена: Проверја се да ли су недавне промене сломиле основне функције.
Пример провере (за веб апликацију):
- Успешно учитавање главне странице.
- Могућност пријаве у систем.
- Функционалност основних делова (на пример, преглед листе производа).
- Провера исправног одјављивања из система.
Смок-тестови могу бити ручни или аутоматизовани. Аутоматизација смок-тестова значајно убрза процес и обезбеђује стабилност провера.
# Пример једноставног аутоматизованог смок-теста уз коришћење 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)
# Провера да ли постоји поље за унос логина
login_field = driver.find_element(By.ID, "login-input")
assert login_field.is_displayed(), "Поље за логин није приказано"
# Провера да ли постоји поље за унос лозинке
password_field = driver.find_element(By.ID, "password-input")
assert password_field.is_displayed(), "Поље за лозинку није приказано"
# Провера да ли постоји дугме за улаз
login_button = driver.find_element(By.ID, "login-button")
assert login_button.is_displayed(), "Дугме за улаз није приказано"
# Покушај уласка (опционално, зависи од дубине смок теста)
# login_field.send_keys(username)
# password_field.send_keys(password)
# login_button.click()
# assert "dashboard" in driver.current_url # Провера редиректа
print("Смок тест: Основни елементи за пријаву су присутни.")
return True
except Exception as e:
print(f"Смок тест није успео: {e}")
return False
finally:
driver.quit()
# Пример позива
# smoke_test_login("http://example.com/login", "testuser", "password123")