Pruebas de regresión


Pruebas de regresión

Se denominan Pruebas de regresión a cualquier tipo de pruebas de software que intentan descubrir las causas de nuevos errores (bugs), carencias de funcionalidad, o divergencias funcionales con respecto al comportamiento esperado del software, inducidos por cambios recientemente realizados en partes de la aplicación que anteriormente al citado cambio no eran propensas a este tipo de error. Esto implica que el error tratado se reproduce como consecuencia inesperada del citado cambio en el programa.

Este tipo de cambio puede ser debido a prácticas no adecuadas de control de versiones, falta de consideración acerca del ámbito o contexto de producción final y extensibilidad del error que fue corregido (fragilidad de la corrección), o simplemente una consecuencia del rediseño de la aplicación.

Por lo tanto, en la mayoría de las situaciones del desarrollo de software se considera una buena práctica que cuando se localiza y corrige un bug, se grabe una prueba que exponga el bug y se vuelvan a probar regularmente después de los cambios subsiguientes que experimente el programa.

Existen herramientas de software que permiten detectar este tipo de errores de manera parcial o totalmente automatizada, la práctica habitual en programación extrema es que este tipo de pruebas se ejecuten en cada uno de los pasos del ciclo de vida del desarrollo del software.

Contenido

Tipos de regresión

Clasificación de ámbito

  • Local - los cambios introducen nuevos errores.
  • Desenmascarada - los cambios revelan errores previos.
  • Remota - Los cambios vinculan algunas partes del programa (módulo) e introducen errores en ella.

Clasificación temporal

  • Nueva característica - los cambios realizados con respecto a nuevas funcionalidades en la versión introducen errores en otras novedades en la misma versión del software.
  • Característica preexistente - los cambios realizados con respecto a nuevas funcionalidades introducen errores en funcionalidad existente de previas versiones.

Como mitigar los riesgos

  • Repetición completa y habitual de la batería de pruebas, manual o mediante automatización.
  • Repetición parcial basada en trazabilidad y análisis de riesgos.
  • Pruebas de cliente o usuario:
    • Beta - distribución a clientes potenciales y actuales de versiones beta.
    • Pilot - distribución a un subconjunto bien definido y localizado.
    • Paralela - simultaneando uso de ambos sistemas.* Usar releases mayores. Probar nuevas funciones a menudo cubre las funciones existentes. Cuantas más nuevas características haya en un release, habrá mayor nivel de pruebas de regresión "accidental".
  • Parches de emergencia - estos parches se publican inmediatamente, y serán incluidos en releases de mantenimiento futuras.

Usos

Las Pruebas de Regresión pueden usarse no solo para probar la corrección de un programa, sino a menudo usarse para rastrear la calidad de su salida. Por ejemplo en el diseño de un compilador, las pruebas de regresión deben rastrear el tamaño del código, tiempo de simulación, y el tiempo de compilación de las suites de prueba. Cuando quiera que aparece un nuevo build, el proceso de regresión aparece.

Citas

  • "También como consecuencia de la introducción de nuevos bugs, el mantenimiento del programa necesita más pruebas del sistema por sentencia escrita que cualquier otra programación. En teoría, después de cada corrección uno debe ejecutar el batch completo de casos de prueba antes de ejecutar contra el sistema, para asegurarse de que no ha sido dañado de forma oscura. En la práctica, tales pruebas de regresión deben aproximarse a esta idea teórica, y es muy costoso." -- Fred Brooks, The Mythical Man Month (p 122)

Véase también


Wikimedia foundation. 2010.

Mira otros diccionarios:

  • Regresión — Saltar a navegación, búsqueda El término regresión puede hacer referencia a: Regresión (estadística): la regresión estadística o regresión a la media es la tendencia de una medición extrema a presentarse más cercana a la media en una segunda… …   Wikipedia Español

  • Pruebas de software — Las pruebas de software, en inglés testing son los procesos que permiten verificar y revelar la calidad de un producto software. Son utilizadas para identificar posibles fallos de implementación, calidad, o usabilidad de un programa de ordenador… …   Wikipedia Español

  • Regresión no lineal — Saltar a navegación, búsqueda En estadística, la regresión no lineal es un problema de inferencia para un modelo tipo: basado en datos multidimensionales x,y, donde f es alguna función no lineal respecto a algunos parámetros desconocidos θ. Como… …   Wikipedia Español

  • Regresión lineal — Ejemplo de una regresión lineal con una variable dependiente y una variable independiente. En estadística la …   Wikipedia Español

  • GXtest — es una herramienta para la automatización de pruebas funcionales, específica para GeneXus, la cual utiliza el enfoque de Testing Basado en Modelos, complementado con Data Driven Testing más la facilidad de Record and Playback. Si bien GeneXus… …   Wikipedia Español

  • Programación extrema — Saltar a navegación, búsqueda La programación extrema o eXtreme Programming (XP) es un enfoque de la ingeniería de software formulado por Kent Beck, autor del primer libro sobre la materia, Extreme Programming Explained: Embrace Change (1999). Es …   Wikipedia Español

  • TPT (Software) — Este artículo o sección no posee un contexto claro. Por favor, añade información que aclare el contexto y permita evaluar la relevancia de este tema o el contenido podría ser borrado. Para más información sobre lo que se está solicitando, ver… …   Wikipedia Español

  • Systems Development Life Cycle — En este artículo sobre informática se detectaron los siguientes problemas: Necesita ser wikificado conforme a las convenciones de estilo de Wikipedia. Carece de fuentes o referencias que aparezcan en una fuente acreditada. Podría ser demasiado… …   Wikipedia Español

  • Pugs — Saltar a navegación, búsqueda Pugs es un compilador y un intérprete del lenguaje de programación Perl 6, cuyo desarrollo comenzó el 1 de febrero de 2005 por Audrey Tang. Contenido 1 Sumario 2 Versiones …   Wikipedia Español

  • JUnit — Desarrollador Kent Beck, Erich Gamma, David Saff http://junit.sourceforge.net Información general Última versión estable …   Wikipedia Español