Sobes.tech
Junior

¿Qué es la prueba de humo?

sobes.tech AI

Respuesta de la IA

Las pruebas de humo (pruebas de humo) son un tipo de prueba de software que se realiza después de la compilación de una nueva versión para verificar rápidamente su funcionalidad básica y estabilidad. El objetivo es determinar si vale la pena continuar con pruebas más profundas.

Características principales:

  • Superficial: Solo se verifican las funciones más importantes y críticas de la aplicación.
  • Rápido: Se realiza en un corto período de tiempo, generalmente no más de 30-60 minutos.
  • Crítico: Enfocado en detectar defectos graves que hacen que las pruebas adicionales sean inútiles.
  • Gatekeeper: Si la prueba de humo falla, la compilación se rechaza y no se realiza un ciclo completo de pruebas.

Escenarios de uso:

  1. Cada nueva compilación: Se verifica después de cada despliegue de una nueva versión de la aplicación.
  2. Antes del lanzamiento: Verificación rápida final antes de la publicación en producción.
  3. Después de realizar cambios: Se verifica que las modificaciones recientes no hayan roto funciones principales.

Ejemplo de prueba (para una aplicación web):

  • Carga exitosa de la página principal.
  • Capacidad para iniciar sesión.
  • Funcionamiento de las secciones principales (por ejemplo, vista de lista de productos).
  • Verificación de salida correcta del sistema.

Las pruebas de humo pueden ser manuales o automatizadas. La automatización de las pruebas de humo acelera significativamente el proceso y garantiza la estabilidad de las verificaciones.

# Ejemplo de prueba de humo automatizada simple 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)
        # Verificar que exista el campo para ingresar el login
        login_field = driver.find_element(By.ID, "login-input")
        assert login_field.is_displayed(), "Campo de login no visible"

        # Verificar que exista el campo para ingresar la contraseña
        password_field = driver.find_element(By.ID, "password-input")
        assert password_field.is_displayed(), "Campo de contraseña no visible"

        # Verificar que exista el botón de ingreso
        login_button = driver.find_element(By.ID, "login-button")
        assert login_button.is_displayed(), "Botón de ingreso no visible"

        # Intento de ingreso (opcional, depende del alcance de la prueba de humo)
        # login_field.send_keys(username)
        # password_field.send_keys(password)
        # login_button.click()
        # assert "dashboard" in driver.current_url # Verificación de redirección

        print("Prueba de humo: Los elementos básicos de inicio de sesión están presentes.")
        return True
    except Exception as e:
        print(f"Fallo en la prueba de humo: {e}")
        return False
    finally:
        driver.quit()

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