Skip to content
IRC-CodingIRC-Coding
TestartenSoftware TestingUnit TestsIntegration TestsE2E TestsPruebas funcionalesPruebas no funcionalesPruebas de regresión

Testarten en desarrollo de software: guía completa

Guía de testarten principales: Unit, Integration, E2E, funcionales, no funcionales, manuales y automatizadas.

S

schutzgeist

3 min read
Testarten en desarrollo de software: guía completa

Tipos de pruebas en desarrollo de software

Las pruebas de software se pueden clasificar de muchas formas. Dependiendo de la pregunta, la fase y el objetivo, se distinguen según el objeto de prueba, el nivel de prueba, el objetivo o la forma de ejecución. Este artículo ofrece una visión estructurada de los principales tipos de pruebas y muestra cuándo debes usar cada uno.

En resumen

  • Los tipos de pruebas se distinguen por nivel, objetivo y ejecución.
  • Los niveles principales son unitarias, integración, sistema y aceptación.
  • Las pruebas funcionales verifican el qué, las no funcionales verifican el cómo.
  • Las pruebas manuales y automatizadas se complementan, pero no se reemplazan mutuamente.

Clasificación por nivel de prueba

Prueba unitaria

Verifica la unidad más pequeña posible de forma aislada. Rápida, económica y con retroalimentación inmediata.

Prueba de integración

Verifica la interacción entre varios componentes o sistemas. Detecta errores en las interfaces.

Prueba de sistema

Verifica el sistema completo contra los requisitos definidos.

Prueba de aceptación

Verifica que el sistema sea aceptable desde el punto de vista del cliente o del usuario final.

Clasificación por objetivo de prueba

Pruebas funcionales

Verifican que el software cumple correctamente con las funciones requeridas.

  • Pruebas unitarias: Verificación de funciones de forma aislada.
  • Pruebas de integración: Verificación de la interacción entre componentes.
  • Pruebas de sistema: Validación del sistema completo.
  • Pruebas de regresión: Aseguran que los cambios no rompan funcionalidad existente.
  • Pruebas de humo: Verificación mínima de que el sistema funciona básicamente.

Pruebas no funcionales

Verifican propiedades como rendimiento, seguridad, usabilidad o fiabilidad.

  • Pruebas de rendimiento: Tiempo de respuesta, velocidad de procesamiento, escalabilidad.
  • Pruebas de carga: Comportamiento bajo la carga esperada.
  • Pruebas de estrés: Comportamiento bajo carga excesiva.
  • Pruebas de seguridad: Identificación de vulnerabilidades.
  • Pruebas de usabilidad: Verificación de la facilidad de uso.
  • Pruebas de accesibilidad: Validación de la accesibilidad.
  • Pruebas de fiabilidad: Verificación de la confiabilidad y disponibilidad.

Clasificación por forma de ejecución

Pruebas manuales

Una persona ejecuta las pruebas según casos de prueba definidos. Flexible, pero lenta y difícil de reproducir.

Pruebas automatizadas

Las herramientas ejecutan las pruebas. Rápidas, repetibles y escalables, pero requieren inversión inicial.

Pruebas exploratorias

El tester explora el software sin casos de prueba predefinidos para encontrar errores inesperados.

Ejemplo práctico: Tipos de pruebas para un sistema de comercio electrónico

Pruebas funcionales:
- Prueba unitaria: Cálculo de precio con descuento
- Prueba de integración: Carrito con base de datos y API de pago
- Prueba E2E: Proceso de compra desde login hasta confirmación de pedido
- Prueba de regresión: Repetición de pruebas críticas después de cada release

Pruebas no funcionales:
- Prueba de rendimiento: Llamada a checkout en menos de 500 milisegundos
- Prueba de carga: 1.000 usuarios simultáneos
- Prueba de seguridad: Intento de inyección SQL en el campo de búsqueda
- Prueba de accesibilidad: Operabilidad con lector de pantalla

Ejecución:
- Automatizadas: Unitarias, integración, E2E, rendimiento, regresión
- Manuales: Pruebas exploratorias, pruebas de usabilidad

Ventajas e inconvenientes

Ventajas

  • Estructura: Las categorías claras ayudan a planificar estrategias de prueba.
  • Enfoque en riesgos: Cada tipo de prueba cubre riesgos diferentes.
  • Comunicación: Los stakeholders hablan con términos precisos.
  • Eficiencia: La mezcla adecuada reduce esfuerzo y maximiza cobertura.

Inconvenientes

  • Complejidad: Muchas categorías pueden resultar abrumadoras.
  • Solapamientos: Una prueba puede asignarse a varias categorías.
  • Esfuerzo: La cobertura exhaustiva requiere muchos tipos diferentes.
  • Balance incorrecto: Demasiado enfoque en un tipo deja otros riesgos sin cubrir.

Puntos clave para examen

  • Distinción por niveles: Unitarias, integración, sistema, aceptación.
  • Distinción por objetivo: Funcionales, no funcionales.
  • Distinción por ejecución: Manuales, automatizadas, exploratorias.
  • Ejemplos de pruebas no funcionales.
  • Importancia de las pruebas de regresión.

Preguntas típicas de examen (con respuesta corta)

  1. ¿Cuáles son los cuatro niveles de prueba habituales? Unitarias, integración, sistema, aceptación.

  2. ¿Cuál es la diferencia entre pruebas funcionales y no funcionales? Las pruebas funcionales verifican el comportamiento, las no funcionales verifican propiedades como rendimiento o seguridad.

  3. ¿Qué es una prueba de regresión? Una prueba que asegura que los cambios nuevos no han roto funcionalidad existente.

  4. Menciona un tipo de prueba no funcional. Pruebas de rendimiento, carga, estrés, seguridad o usabilidad.

  5. ¿Qué son las pruebas exploratorias? Exploración libre del software sin casos de prueba predefinidos para encontrar errores.

Continúa en la ruta de aprendizaje de Testing

El siguiente artículo en la ruta de aprendizaje de Software Testing trata sobre Mock, Stub, Fake y Test Doubles — los diferentes tipos de Test Doubles y cuándo usarlos.

Fuentes principales

  1. https://iso25000.com
  2. https://martinfowler.com/testing/
  3. https://en.wikipedia.org/wiki/Software_testing
Volver al blog
Share:

Entradas relacionadas