Menú superior

Ir al contenido
Inicio
    Módulos
      • Proyectos
      • Actividad
      • Paquetes de trabajo
      • Diagramas de Gantt
      • Noticias
    • Primeros pasos
    • Vídeo de introducción
      Bienvenido a OpenProject
      Obtenga un resumen rápido sobre la gestión de proyectos y la colaboración en equipo con OpenProject. Puedes volver a ver este video des del menú de ayuda.

    • Ayuda y soporte
    • Actualizar a Enterprise
    • Guia de usuario
    • Vídeos
    • Accesos directos
    • Foro de Community
    • Soporte empresarial

    • Recursos Adicionales
    • Política de privacidad y seguridad de datos
    • Accesibilidad digital (DE)
    • Sitio web de OpenProject
    • Alertas de seguridad / boletín
    • Blog de OpenProject
    • Notas de lanzamiento
    • Informa de un fallo
    • Hoja de ruta de desarrollo
    • Añadir y editar traducciones
    • Documentación de la API
  • Ingresar
      Crear una nueva cuenta
      Contraseña perdida

Menú lateral

  • Resumen
  • Actividad
    Actividad
  • Wiki
    Wiki
    • 💼 Área de Consultoría
  • Noticias

Contenido

Usted está aquí:
  1. Wiki
  2. 🛠️ Área Técnica
  3. ✅ Pruebas Unitarias
  4. Clasificación de los Test Unitarios

Clasificación de los Test Unitarios

  • Más
    • Imprimir
    • Índice

Clasificación de los Test Unitarios

En el desarrollo de software, los tests unitarios se pueden clasificar en varias categorías según diferentes criterios, como su objetivo, alcance o la técnica utilizada. Aquí tienes una clasificación comúnmente aceptada en la industria del software:

1. Según su Objetivo:

a. Tests Positivos (Positive Tests)

  • Descripción: Verifican que el código funcione correctamente cuando se le proporcionan datos válidos o casos esperados.
  • Ejemplo: Probar que una función de suma devuelve 5 cuando se le pasa 2 y 3 como parámetros.

b. Tests Negativos (Negative Tests)

  • Descripción: Aseguran que el código maneje correctamente datos no válidos o escenarios no esperados.
  • Ejemplo: Probar que una función de suma lanza un error cuando se le pasa un valor nulo o una cadena de texto.

2. Según su Alcance:

a. Tests de Comportamiento (Behavioral Tests)

  • Descripción: Se centran en el comportamiento esperado de la funcionalidad, sin considerar cómo se implementa.
  • Ejemplo: Verificar que un método login() retorna verdadero con credenciales válidas y falso con credenciales incorrectas.

b. Tests de Estado (State Tests)

  • Descripción: Evalúan el estado interno del objeto o componente después de ejecutar una acción.
  • Ejemplo: Comprobar que después de llamar a un método addItem(), el tamaño de una lista aumenta en uno.

3. Según el Tipo de Datos:

a. Tests con Datos Normales (Normal Data Tests)

  • Descripción: Utilizan datos típicos y esperados.
  • Ejemplo: Probar una función de suma con números enteros positivos.

b. Tests con Datos Limítrofes (Boundary Tests)

  • Descripción: Utilizan valores en los límites de las condiciones esperadas.
  • Ejemplo: Probar con el valor máximo o mínimo permitido por una variable.

c. Tests con Datos Inválidos (Invalid Data Tests)

  • Descripción: Utilizan datos inesperados o incorrectos.
  • Ejemplo: Probar con None, cadenas de texto en lugar de números, etc.

4. Según el Nivel de Aislamiento:

a. Tests Puros (Pure Unit Tests)

  • Descripción: Prueban un método o función sin ninguna dependencia externa.
  • Técnicas: Mocking y stubbing para simular dependencias.

b. Tests Integrados (Integrated Unit Tests)

  • Descripción: Prueban una unidad de código junto con algunas dependencias reales, aunque en un entorno controlado.
  • Ejemplo: Probar un método que utiliza otro servicio de la misma clase o módulo.

5. Según la Técnica Utilizada:

a. Tests de Caja Negra (Black Box Tests)

  • Descripción: Prueban la funcionalidad sin conocer la implementación interna.
  • Enfoque: Solo se consideran las entradas y salidas.

b. Tests de Caja Blanca (White Box Tests)

  • Descripción: Se basan en el conocimiento del código fuente.
  • Enfoque: Cubren rutas de ejecución, condiciones lógicas y bucles.

6. Según la Estructura:

a. Tests de Método Único (Single Method Tests)

  • Descripción: Prueban un solo método o función.
  • Ejemplo: Probar la suma de dos números en un método sum().

b. Tests de Flujo (Flow Tests)

  • Descripción: Verifican el flujo de datos o el comportamiento a través de varios métodos relacionados.
  • Ejemplo: Probar un flujo de autenticación que involucra login() y getUserProfile().

7. Según su Naturaleza:

a. Tests Deterministas (Deterministic Tests)

  • Descripción: Siempre producen el mismo resultado para un conjunto de entradas dado.
  • Ejemplo: Una función matemática pura como sum().

b. Tests No Deterministas (Non-deterministic Tests)

  • Descripción: Pueden producir resultados diferentes con las mismas entradas debido a factores externos como la hora o el estado del sistema.
  • Ejemplo: Probar una función que genera números aleatorios.

¿Cuándo usar cada tipo de test unitario?

  • Positivos y Negativos: Siempre que quieras comprobar el funcionamiento esperado y el manejo de errores.
  • Behavioral y State: Para validar comportamientos de usuario o integridad de datos.
  • Boundary y Invalid Data: Al probar validaciones y límites de datos.
  • Pure y Integrated: Al probar lógica pura o al integrar dependencias controladas.
  • Black Box y White Box: Dependiendo de si conoces la implementación interna.
  • Deterministic y Non-deterministic: Para funciones puras o métodos con dependencia de factores externos.
Cargando...