Please enable JavaScript.
Coggle requires JavaScript to display documents.
Pruebas de Regresión Regresyon-testi - Coggle Diagram
Pruebas de Regresión
1) Pruebas de Regresión
La prueba de regresión verifican que las nuevas versiones de software no introduzcan fallos en las funcionalidades existentes.
El propósito de las pruebas de regresión es asegurar que la funcionalidad anterior se mantenga al agregar o modificar funciones. De igual forma, el proceso consiste en ejecutar todos los casos de prueba de versiones anteriores, lo cual, aunque pueda resultar costoso, ayuda a identificar los problemas de distinta índole existente. Los cambios en las estructuras de datos pueden invalidar algunos casos de prueba, requiriendo su actualización para adaptarse a las nuevas condiciones.
Además, es importante mantener el conjunto de pruebas mediante la eliminación de casos redundantes y obsoletos, lo que reduce los costos y el esfuerzo de mantenimiento.
2) Técnicas de Selección para Pruebas de Regresión
Las técnicas de selección se encargan de re-ejecutar todos los casos de prueba puede ser costoso, especialmente en sistemas grandes.
La priorización de pruebas permite seleccionar y enfocar los casos relevantes según los cambios realizados, lo que ayuda a reducir el tiempo y los recursos necesarios. Los criterios de selección pueden basarse en el código, eligiendo pruebas que ejecuten únicamente el código modificado.
Las pruebas basadas en el flujo de control y de datos permiten evaluar los impactos de los cambios. Las pruebas de flujo de control identifican caminos modificados en el código entre versiones, mientras que las pruebas de flujo de datos se enfocan en casos que afectan el flujo de datos tras las modificaciones. Un ejemplo es la comparación de cambios entre versiones usando gráficos de flujo de control para identificar rutas afectadas.
Función cgi_decode y el Control de Flujo
Una breve interpretación para la función cgi_decode, es que esta función se encarga de decodificar cadenas de texto codificadas en un formato específico, manejando caracteres especiales como el signo + (que se convierte en un espacio) y el %, que indica la presencia de un valor hexadecimal. Una particularidad es que el código también controla errores, devolviendo un valor de error en caso de caracteres ilegales o problemas de decodificación.
El gráfico de flujo de control de la función cgi_decode muestra el recorrido por el código a través de diversas decisiones basadas en los valores de los caracteres de entrada, los cuales determinan el comportamiento de la función, como convertir caracteres hexadecimal a sus equivalentes en texto o terminar la cadena correctamente.
3) Selección de Casos de Prueba para Pruebas de Regresión
Para la selección de casos de prueba para las pruebas de regresión es un paso esencial cuando se modifican partes del software. También se hace referencia a un modelo de flujo de control (llamado CFG) que se utiliza para identificar casos de prueba que cubran las ramas del código que han sido modificadas o afectadas por los cambios. La técnica de selección de prueba se utiliza para determinar qué casos de prueba ejecutar, priorizando aquellos que ejercen las partes modificadas del programa.
Los test cases están numerados y detallados en una tabla, como por ejemplo: TC1, TC2, etc., cada uno con un identificador de ruta que muestra cómo cubren diferentes nodos del flujo de control del programa. Esto permite reducir el número de pruebas a realizar, enfocándose en las partes relevantes del código las cuales podrían haber cambiado.
4) Documentación de Pruebas
La buena documentación es crucial para rastrear fallos y especificar las condiciones de una prueba, lo que permite identificar casos relevantes tras cambios relevantes en el software. Esta documentación ayuda a asegurar que las pruebas se enfoquen en las áreas modificadas y mantengan una buena consistencia en el proceso de validación.
5) Priorización y Ejecución de Casos de Prueba
La idea principal es optimizar la ejecución de pruebas en sistemas de software mediante un proceso estructurado de priorización de casos de prueba. Se establece un flujo para procesar pedidos considerando restricciones y métodos de pago, y se aplican métodos de priorización de pruebas que incluyen el historial de ejecución, revelación de fallos, y cobertura estructural. El objetivo final es maximizar la eficiencia de las pruebas enfocándose en los casos que son más críticos y propensos a fallar, ahorrando así tiempo y recursos.
6) Temas de Investigación Abiertos
La idea principal es mejorar la selección y generación de casos de prueba para adaptarse a cambios en el software, enfocándose en propiedades no funcionales como la confiabilidad. Se utilizan modelos de flujo y variables específicas para optimizar el control y la cobertura de pruebas sin aumentar costos.