Sobes.tech
Junior

Какво е смок тест?

sobes.tech AI

Отговор от AI

Смок тестиране (димно тестирање) е тип на тестирање на софтвер што се изведува по изградбата на нова верзија за брзо проверување на основната функционалност и стабилност. Целта е да се утврди дали е вредно да се продолжи со понатамошното, подлабоко тестирање.

Главни карактеристики:

  • Површно: Проверуваат се само најважните и критичните функции на апликацијата.
  • Брзо: Извршува се за кратко време, обично не повеќе од 30-60 минути.
  • Критично: Насочено кон откривање на сериозни дефекти што прават понатамошното тестирање бесмислено.
  • Gatekeeper: Ако смок-тестот не успее, билдот се одбива, и целосниот циклус на тестирање не се спроведува.

Сценарија на употреба:

  1. Секој нов билд: Проверува се по распоредувањето на нова верзија на апликацијата.
  2. Прекако излез: Финална брза проверка пред издавање во продукција.
  3. По внесување на промени: Проверува дали последните промени не ги оштетиле основните функции.

Пример за проверка (за веб-апликација):

  • Успешно вчитување на главната страница.
  • Можност за влез во системот.
  • Функционалност на основните делови (на пример, преглед на список на производи).
  • Проверка на правилен излез од системот.

Смок-тестовите можат да бидат како рачни, така и автоматизирани. Автоматизацијата на смок-тестовите значително го забрзува процесот и обезбедува стабилност на проверките.

# Пример за едноставен автоматизиран смок-тест со користење на 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("Smoke тест: Основните елементи за влез се присутни.")
        return True
    except Exception as e:
        print(f"Smoke тест неуспешен: {e}")
        return False
    finally:
        driver.quit()

# Пример за повик
# smoke_test_login("http://example.com/login", "testuser", "password123")