¿QUÉ ES UNA PRUEBA DE REGRESIÓN (TR) O DE NO REGRESIÓN (TNR)?
Cuando quiera validar la calidad de su aplicación web o móvil, hay muchas pruebas disponibles. Y una de las más esenciales es la prueba de regresión. ¿Pero qué es exactamente? He aquí algunas explicaciones.
¿Qué es la regresión?
Básicamente, la palabra "regresión" significa "un desarrollo que vuelve a una etapa anterior". En informática, una regresión se produce cuando un cambio en el código tiene un impacto en el código existente. Esto puede deberse a una corrección de errores, una actualización de software o la adición de una nueva función.
Por ejemplo, cuando se implanta una nueva función, si altera el comportamiento de las funciones existentes anteriormente, se produce una regresión, porque se ha introducido un error. Para evitarlo, los equipos técnicos establecen pruebas específicas, que se denominan pruebas de regresión o pruebas de no regresión .
¿Qué es una prueba de regresión (o de no regresión)?
Según la definición del ISTQB, una prueba de regresión consiste en probar un programa previamente probado después de una modificación para garantizar que no se han introducido o descubierto defectos en partes no modificadas del software como resultado de las modificaciones realizadas.
En resumen, una prueba de regresión se utiliza para comprobar que los cambios realizados en el software, el sitio web o la aplicación móvil, como la adición de una nueva característica o una actualización, no han afectado a la funcionalidad previamente existente. Tomemos el ejemplo de una bicicleta: si se cambia la rueda, una prueba de regresión sería comprobar que, a pesar del cambio de rueda, los frenos siguen funcionando (pero no es necesario comprobar que la bomba de la bicicleta sigue conectada).
¿Cuál es la diferencia entre las pruebas de regresión y las de no regresión? En realidad, no hay ninguna diferencia, es exactamente lo mismo. Se utilizan ambos términos. El ISTQB, por ejemplo, prefiere el término pruebas de regresión. Pero mucha gente en este campo también utiliza el término prueba de no regresión, al menos en Francia. Todo es cuestión de elección y es cierto que cuando no vienes del campo, puede ser confuso. Qué esperas, los franceses son gente compleja a la que le gusta jugar con las palabras.
Pruebas de regresión y funcionales
Las pruebas funcionales nos permiten comprobar que una aplicación de software (sitio web, aplicación móvil, API, etc.) funciona de acuerdo con las especificaciones determinadas por el cliente de antemano. En un sitio de comercio electrónico, esto consiste, por ejemplo, en comprobar que la conexión a la cuenta o la adición a la cesta de la compra o la selección de un método de entrega no conlleva un error y que no hay diferencias con los datos proporcionados de antemano.
Las pruebas de regresión se realizan cuando se publica una nueva versión del código, para comprobar que no ha provocado errores en el resto del software. Pueden centrarse en cuestiones funcionales y no funcionales, como el rendimiento. Por ejemplo, si una actualización hace que el sitio o la aplicación tarden más de lo habitual en responder, esto se llama regresión.
¿Cuáles son las diferentes tipos de pruebas de regresión?
Las pruebas de regresión o de no regresión pueden realizarse de varias maneras, según la necesidad o los recursos de la organización.
Las pruebas de regresión correctivas, por ejemplo, reutilizan las pruebas existentes, siempre que no se hayan realizado cambios significativos en el producto.
Las pruebas de regresión completas implican volver a probar todos los elementos del producto. Esto verifica todos los cambios que se han hecho desde el principio.
Por otro lado, las pruebas de regresión selectivas permiten elegir determinadas pruebas de un conjunto para inspeccionar sólo las partes del código que se han visto afectadas.
Las pruebas de regresión incrementales consisten en crear nuevas pruebas cuando las establecidas ya no son útiles, por ejemplo, cuando cambian las características del producto.
Las pruebas de regresión parciales se realizan cuando los diferentes módulos están en desarrollo y están a punto de fusionarse con la versión principal del código.
Las pruebas de regresión unitarias se utilizan para probar el código individualmente, sin tener en cuenta otros elementos.
¿Cuándo hacer pruebas de regresión?
Las pruebas de regresión pueden llevarse a cabo en cualquier nivel del plan de pruebas, y se recomienda realizarlas con la mayor regularidad posible, en cuanto se produzca un cambio o una actualización, y lo antes posible en el proceso de diseño del producto.
Pero, por lo general, las pruebas de no regresión se realizan cuando hay :
>> una corrección que se realiza en el código para resolver anomalías>> una nueva característica que se añade
>> una modificación de una característica existente
>> una actualización realizada en el entorno (por ejemplo, datos)
>> optimización del código fuente
¿Por qué hacer pruebas de regresión?
La primera razón para realizar pruebas de regresión, que debería ser la principal para todos los demás tipos de pruebas, es que garantizan la calidad del software (sitio web, aplicación móvil). Y, al ofrecer un producto de calidad, también mejora la experiencia del usuario y, por tanto, la imagen de la empresa.
En segundo lugar, la realización de pruebas de regresión reduce los riesgos asociados a la actualización de aplicaciones, sitios web, etc. Esto es importante porque además de que puede provocar fallos que impidan el uso de ciertas funcionalidades (lo que puede repercutir en la facturación de la empresa y en su imagen), también puede provocar fallos de seguridad. En este caso, lo que está en juego es la credibilidad de la empresa, así como la confianza de los usuarios en ella.
Aparte de una historia de calidad, riesgo e imagen, el punto de ejecutar pruebas de regresión regularmente es ahorrar tiempo y dinero, ya que siempre es más complejo y costoso tener que arreglar un error en producción. Por no hablar de que estas son las pruebas más relevantes para automatizar y que la automatización también ahorra tiempo y dinero, pero volveremos a esto más adelante.
Por último, cuando se desarrollan aplicaciones móviles o software SaaS, que se actualizan continuamente para satisfacer las necesidades de los clientes, las pruebas de regresión son aún más necesarias.
¿Cuáles son las limitaciones de las pruebas de regresión?
Las pruebas de regresión consumen mucho tiempo y son repetitivas. Y aunque la mayoría de ellos deben ser automatizados, algunos casos de prueba deben realizarse manualmente. Además, algunas funciones complejas requieren casos de prueba complejos, lo que también puede retrasar la ejecución y, por tanto, el plazo de entrega. En resumen, debido a las limitaciones de tiempo y presupuesto, no se pueden ejecutar todas las pruebas de regresión y, por tanto, es importante seleccionar las que son importantes para realizarlas primero .
¿Qué pasa con¿Y la automatización de las pruebas?
Como hemos dicho anteriormente, las pruebas no regresivas tienen un interés real en ser automatizadas, y son las pruebas que a menudo se aconseja automatizar primero. ¿Por qué? Porque son repetitivos y consumen mucho tiempo. Se ejecutan cada vez que se despliega una nueva función o una actualización de software y hacerlas todas manualmente lleva tiempo, mucho tiempo, por no mencionar que requiere hacer muchas cosas fáciles y la secuencia será cansada y se volverá difícil. Así que aquí es donde tiene sentido automatizar los casos de prueba de regresión.
Por último, la automatización de las pruebas permite identificar las posibles regresiones lo antes posible y, sobre todo, permite mantener los índices de entrega y mejorar así el retorno de la inversión. Sin embargo, no es necesario automatizar todo, y en general es aconsejable centrarse principalmente en los casos de prueba que tienen defectos frecuentes, los casos de prueba que comprueban la funcionalidad esencial y crítica del producto y los casos de prueba que comprueban la funcionalidad que ha sufrido numerosos y recientes cambios.