En ingeniería de software , el diseño de pruebas es la actividad de derivar y especificar casos de prueba a partir de condiciones de prueba para probar el software .
Definición
Una condición de prueba es una declaración sobre el objeto de prueba. Las condiciones de prueba pueden definirse para cualquier parte de un componente o sistema que pueda verificarse: funciones, transacciones, características, atributos de calidad o elementos estructurales.
El desafío fundamental del diseño de pruebas radica en que existen infinitas pruebas diferentes que se podrían ejecutar, pero no hay tiempo suficiente para ejecutarlas todas. Se debe seleccionar un subconjunto de pruebas; lo suficientemente pequeño como para poder ejecutarlo, pero lo suficientemente bien elegido como para que las pruebas encuentren errores y revelen otra información relacionada con la calidad. [ 1 ]
El diseño de pruebas es uno de los requisitos previos más importantes para la calidad del software. Un buen diseño de pruebas respalda:
- definir y mejorar los procesos y procedimientos relacionados con la calidad ( garantía de calidad );
- evaluar la calidad del producto en relación con las expectativas y necesidades del cliente ( control de calidad );
- detección de defectos en el producto (pruebas de software).
Los requisitos esenciales del diseño de pruebas son: [ 2 ]
- Especificación apropiada (bases de prueba).
- Análisis de riesgos y complejidad.
- Datos históricos de sus proyectos anteriores (si los hay).
Las bases de prueba, como los requisitos o las historias de usuario, determinan qué se debe probar (objetos de prueba y condiciones de prueba). Estas bases implican el uso o no de ciertas técnicas de diseño de pruebas.
El análisis de riesgos es indispensable para determinar la exhaustividad de las pruebas. Cuanto mayor sea el riesgo asociado al uso de la función u objeto, más exhaustivas deberán ser las pruebas. Lo mismo ocurre con la complejidad. El análisis de riesgos y complejidad determina las técnicas de diseño de pruebas que se aplicarán a una especificación dada.
Los datos históricos de sus desarrollos anteriores ayudan a definir las mejores técnicas de diseño de pruebas para lograr un óptimo costo y una alta calidad simultáneamente. En ausencia de datos históricos, se pueden realizar algunas suposiciones que deberán ajustarse para proyectos posteriores.
Partiendo de estos requisitos previos, se puede implementar una estrategia óptima de diseño de pruebas.
El resultado del diseño de pruebas es un conjunto de casos de prueba basados en la especificación. Estos casos de prueba pueden diseñarse antes de que comience la implementación y deben ser independientes de la misma. El enfoque de diseño de pruebas basado en pruebas es fundamental, ya que contribuye eficazmente a la prevención de defectos. En función de la aplicación y la cobertura de pruebas actual, se pueden crear casos de prueba adicionales (aunque esto no constituye un diseño de pruebas).
En la práctica, para especificaciones complejas deberían aplicarse conjuntamente más técnicas de diseño de pruebas.
En definitiva, el diseño de pruebas no depende de la extraordinaria (casi mágica) habilidad de la persona que crea la prueba, sino que se basa en principios bien comprendidos. [ 3 ]
La norma ISO/IEC/IEEE 29119-4:2015, Parte 4, detalla las definiciones estándar de las técnicas de diseño de pruebas. El sitio web de los diseñadores de pruebas ofrece la metodología LEA (Aprender-Ejercitar-Aplicar) para apoyar el aprendizaje, la práctica y la aplicación eficaces de las técnicas. [ 4 ]
Diseño de pruebas automáticas
Mediante la verificación de modelos o la ejecución simbólica , el software puede generar automáticamente conjuntos completos de pruebas o casos de prueba que revelen errores reales . La verificación de modelos garantiza que se prueben todas las rutas de un programa sencillo, mientras que la ejecución simbólica detecta errores y genera un caso de prueba que los expondrá al ejecutarse el software.
Sin embargo, por muy eficaz que sea el diseño automático de pruebas, no es apropiado para todas las circunstancias. Si la complejidad es excesiva, es necesario recurrir al diseño de pruebas manual, ya que es mucho más flexible y puede centrarse en generar conjuntos de pruebas de nivel superior.
Referencias
- ↑ Diseño de pruebas: Un libro de trabajo BBST , por Cem Caner y Rebecca L Fiedler, julio de 2016
- ↑ Diseño práctico de pruebas: Selección de técnicas de diseño de pruebas tradicionales y automatizadas , por István Forgács y Attila Kovács, agosto de 2019
- ↑ Guía práctica para el diseño de pruebas de software , por Lee Copeland, enero de 2004
- ↑ István, Forgács; Kovács, Atila (2021). Cambio de paradigma en las pruebas de software . Medir TI. ISBN 978-615-01-2781-1.
- Pruebas de software