Tipos de pruebas de software: funcionales, carga, estrés y verificación vs. validación

InformáticaActualizado el 4,93 KB

Resumen

El documento presenta los conceptos básicos de las pruebas de software: qué es un caso de prueba y las principales clasificaciones, como pruebas funcionales, de confiabilidad, de rendimiento, de carga y de estrés. También explica la diferencia entre verificación y validación. Es útil para estudiantes que necesitan repasar fundamentos de calidad de software.

Puntos clave

  • Un caso de prueba es un conjunto de entradas, precondiciones, resultados esperados y poscondiciones, diseñado con un objetivo concreto.
  • Las pruebas funcionales verifican que el software cumple las necesidades establecidas e implícitas en condiciones normales.
  • Las pruebas de confiabilidad miden la madurez del software a lo largo del tiempo y suelen continuar en producción.
  • Las pruebas de carga evalúan el comportamiento del sistema ante niveles crecientes de carga real y previsible de usuarios simultáneos.
  • Las pruebas de estrés buscan errores por escasez de recursos (memoria, disco) o recursos compartidos (bloqueos de base de datos, ancho de banda).
  • La verificación responde a '¿Estamos construyendo el sistema correctamente?', mientras que la validación responde a '¿Estamos construyendo el sistema correcto?'.

Ponte a prueba

Introducción a las Pruebas de Software

En el desarrollo de software, las pruebas son una fase crucial para asegurar la calidad y el correcto funcionamiento de los sistemas. A continuación, exploraremos los conceptos fundamentales de los casos de prueba, los diferentes tipos de pruebas y las distinciones entre verificación y validación.

Casos de Prueba

Un caso de prueba es un conjunto de valores de entrada, precondiciones de ejecución, resultados esperados y poscondiciones de ejecución, desarrollados con un objetivo particular, tal como ejecutar un camino específico de un programa o verificar el cumplimiento de un requerimiento.

Tipos de Pruebas de Software

Las pruebas de software se clasifican en diversas categorías, cada una con un enfoque y objetivo específico para evaluar diferentes aspectos del sistema.

Pruebas Funcionales

Estas pruebas verifican la capacidad del producto de software para proporcionar funciones que cumplan con las necesidades, establecidas e implícitas, cuando el software es utilizado en condiciones normales a cualquier nivel del sistema. Se realizan basándose en el análisis de la especificación de la funcionalidad del componente o sistema.

Evalúan las siguientes características del objeto de prueba:

  • Precisión: Las respuestas esperadas cumplen el grado de precisión necesario.
  • Interoperabilidad: El sistema puede interactuar con uno o más componentes o sistemas necesarios.
  • Seguridad: Impide el acceso no autorizado, accidental o deliberado, a la funcionalidad o datos del mismo.
  • Adecuación: Proporciona el conjunto apropiado de funcionalidad para la tarea especificada y los objetivos de su usuario.

Pruebas de Confiabilidad

Tienen por objetivo medir la madurez del software a lo largo del tiempo y compararla con la confiabilidad deseada. Estas pruebas toman un tiempo considerable para ser significativas y suelen continuar en producción. También se especifican en términos de perfiles operacionales.

  • Prueba de Robustez: Orientadas a evaluar la tolerancia de un componente o sistema a fallas que ocurren fuera del objeto de prueba.
  • Prueba de Recuperación: Orientadas a evaluar la habilidad del sistema de software para recuperarse de fallas en hardware o software del modo predeterminado que permite reanudar las operaciones normales.

Pruebas de Rendimiento (Performance)

Estas pruebas se enfocan en la habilidad del componente o sistema para responder al usuario o a otro sistema dentro del tiempo establecido y bajo las condiciones definidas.

  • Las medidas pueden variar desde ciclos de CPU hasta el tiempo de respuesta.

Pruebas de Carga

Se enfocan en la habilidad del sistema para manejar crecientes niveles de carga real y previsible, resultantes de solicitudes de transacciones generadas por usuarios simultáneos.

  • Las pruebas pueden realizarse con un número realista de usuarios (multiusuario) o con una gran cantidad de ellos (volumen).
  • Las medidas deben realizarse sobre el tiempo de respuesta promedio y la tasa de transferencia de información.
  • Ejemplos de escenarios de carga:
    • Fuertes cargas de trabajo como tráfico excesivo o cargas elevadas de transacciones simultáneas.
    • Tráfico de red artificial.
    • Múltiples usuarios simultáneos.
    • Generación de transacciones con herramientas de automatización.

Pruebas de Estrés o Saturación

Enfocadas en la habilidad del sistema para manejar picos de carga en el límite o superiores de su capacidad máxima. El rendimiento del sistema debe degradarse lentamente y de forma predecible sin fallas a medida que los niveles de estrés aumentan.

Estas pruebas deben verificar que el sistema no pierda su integridad funcional mientras se encuentra en condiciones de estrés.

Su objetivo es encontrar errores debidos a:

  • Escasez de recursos:
    • Falta de memoria.
    • Falta de espacio en disco.
  • Existencia de recursos compartidos:
    • Recursos del sistema.
    • Bloqueos de la base de datos.
    • Ancho de banda de la red.

Verificación de Software

La verificación responde a la pregunta: ¿Estamos construyendo el sistema correctamente?

  • Evalúa un componente al final de cada fase del desarrollo del software.
  • Se realiza durante cada fase del desarrollo de software.

Validación de Software

La validación responde a la pregunta: ¿Estamos construyendo el sistema correcto?

  • Típicamente incluye las pruebas y tiene lugar luego de que las verificaciones han sido completadas.
  • Ocurre al final con las pruebas de aceptación del cliente.

Descargar

PDF Word HTML

Preguntas frecuentes

¿Qué es un caso de prueba?

Es un conjunto de valores de entrada, precondiciones de ejecución, resultados esperados y poscondiciones de ejecución, desarrollados con un objetivo particular. Puede tener como fin ejecutar un camino específico de un programa o verificar un requerimiento.

¿Cuál es la diferencia entre verificación y validación de software?

La verificación evalúa si el sistema se construye correctamente y se realiza durante cada fase del desarrollo. La validación evalúa si se construye el sistema correcto y suele ocurrir al final, con las pruebas de aceptación del cliente.

¿Qué diferencia hay entre pruebas de carga y pruebas de estrés?

Las pruebas de carga se centran en manejar niveles crecientes de carga real y previsible. Las pruebas de estrés evalúan el sistema en picos en el límite o por encima de su capacidad máxima, verificando que no pierda su integridad funcional.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. Según el documento, ¿qué incluye un caso de prueba?
2. ¿Qué pregunta responde la verificación de software?
3. ¿Cuál es el objetivo principal de las pruebas de estrés?
4. ¿Qué medidas se recomiendan en las pruebas de carga?
5. ¿Cuándo ocurren típicamente las pruebas de aceptación del cliente?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.