Sobes.tech
Junior

O que é um teste de fumaça?

sobes.tech IA

Resposta da IA

O teste de fumo (teste de fumo) é um tipo de teste de software realizado após a compilação de uma nova versão para verificar rapidamente sua funcionalidade básica e estabilidade. O objetivo é determinar se vale a pena continuar com testes mais aprofundados.

Características principais:

  • Superficial: Apenas as funções mais importantes e críticas do aplicativo são verificadas.
  • Rápido: Realizado em um curto período de tempo, geralmente não mais de 30-60 minutos.
  • Crítico: Focado na detecção de defeitos graves que tornam os testes adicionais inúteis.
  • Gatekeeper: Se o teste de fumo falhar, a compilação é rejeitada e nenhum ciclo completo de testes é realizado.

Cenários de uso:

  1. Cada nova compilação: Verificada após cada implantação de uma nova versão do aplicativo.
  2. Antes do lançamento: Verificação rápida final antes do lançamento em produção.
  3. Após alterações: Verificada para garantir que as mudanças recentes não tenham quebrado funções principais.

Exemplo de teste (para uma aplicação web):

  • Carregamento bem-sucedido da página principal.
  • Capacidade de fazer login.
  • Funcionamento das seções principais (por exemplo, visualização da lista de produtos).
  • Verificação de saída correta do sistema.

Os testes de fumo podem ser manuais ou automatizados. A automação dos testes de fumo acelera significativamente o processo e garante a estabilidade das verificações.

# Exemplo de teste de fumo automatizado simples usando 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)
        # Verifica se há um campo para inserir o login
        login_field = driver.find_element(By.ID, "login-input")
        assert login_field.is_displayed(), "Campo de login não exibido"

        # Verifica se há um campo para inserir a senha
        password_field = driver.find_element(By.ID, "password-input")
        assert password_field.is_displayed(), "Campo de senha não exibido"

        # Verifica se há um botão de login
        login_button = driver.find_element(By.ID, "login-button")
        assert login_button.is_displayed(), "Botão de login não exibido"

        # Tentativa de login (opcional, depende do escopo do teste de fumo)
        # login_field.send_keys(username)
        # password_field.send_keys(password)
        # login_button.click()
        # assert "dashboard" in driver.current_url # Verificação de redirecionamento

        print("Teste de fumo: Elementos básicos de login estão presentes.")
        return True
    except Exception as e:
        print(f"Falha no teste de fumo: {e}")
        return False
    finally:
        driver.quit()

# Exemplo de chamada
# smoke_test_login("http://example.com/login", "testuser", "password123")