jueves, 28 de marzo de 2013

Pruebas asociadas a cambios: Repetición de pruebas y pruebas de regresión (K2 - entender, explicar , razonar)

Objetivos:


  1. Comparar cuatro tipos de pruebas de software (funcional, no funcional, estructural y asociado al cambio) (K2).
  2. Reconocer que las pruebas funcionales y estructurales se llevan a cabo en cualquier nivel de prueba (K1).
  3. Identificar y describir los tipos de pruebas no funcionales en base a requisitos no funcionales (K2).
  4. Identificar y describir los tipos de pruebas en base al análisis de la estructura o arquitectura o arquitectura de un sistema de software (K2). 
  5. Describir el objetivo de las pruebas de confirmación y regresión (K2).
Términos usados en este artículo: PRUEBAS DE CAJA NEGRA, COBERTURA DE CÓDIGO, PRUEBAS FUNCIONALES, PRUEBAS DE INTEROPERABILIDAD, PRUEBAS DE CARGA, PRUEBAS DE MANTENIBILIDAD, PRUEBAS DE FIABILIDAD, PRUEBAS DE SEGURIDAD, PRUEBAS DE ESTRÉS, PRUEBAS ESTRUCTURALES, PRUEBAS DE USABILIDAD, PRUEBAS DE CAJA BLANCA.

Antecedentes.





Una vez detectado y corregido un defecto, el software debe volver a probarse para confirmar que el defecto original ha sido corregido con éxito. A esto se le denomina  confirmación. La depuración (corrección de defectos) es una actividad de desarrollo, no una actividad de pruebas.

Las pruebas de regresión son la prueba reiterada de un programa ya probado, después de haber sido modificado, con vistas a localizar defectos surgidos o no descubiertos como resultados del cambio o de los cambios. Estos defectos pueden estar en el software objeto de las pruebas, o en cualquier otro componente de software asociado o no asociado. Se realizan cuando el software, o su entorno, sufren modificaciones. El alcance de las pruebas de regresión depende del riesgo de no encontrar defectos en el software que antes funcionaba.

Las pruebas deben ser repetibles si desean utilizarse a efectos de las pruebas de confirmación o para dar soporte de las pruebas de regresión.

Las pruebas de regresión pueden realizarse en todos los niveles de prueba, e incluyen pruebas funcionales, no funcionales y estructurales. Los juegos de pruebas de regresión se ejecutan muchas veces y por lo general son de lenta evolución, por lo que las pruebas de regresión constituyen un gran potencial para la automatización.

Resumiendo:

Objetivos:

  • Probar el objeto después del cambio.
  • Después de que un objeto de pruebas o el entorno de su sistema ha sido objeto de modificación, los resultados de pruebas asociados a cambios resultan inválidos: las pruebas deben ser repetidas.
  •  Dos razones para modificar el software: Corrección de errores y Extensión funcional.
  • Debido a los efectos secundarios de la funcionalidad extendida o nueva, es necesario también repetir pruebas de áreas adyacentes.

Áreas de aplicación:


  • Repetir una prueba de funcionalidad que ha sido verificada previamente se denomina prueba de regresión.
  • El alcance de la prueba de regresión depende del riesgo que la nueva implementación de la funcionalidad (extención o corrección de errores) impone al sistema.
  • El análisis del riesgo se puede realizar con un análisis de impacto.
  • Las pruebas de confirmación/regresión pueden ser realizadas en todos los niveles de pruebas.
  • Las pruebas típicas despúes de un cambio:
  1. Repetición de prueba ("re - testing") = pruebas tras la corrección de errores.
  2. Pruebas de regresión ("regresión testing") = pruebas para revelar / descubrir nuevos defectos introducidos recientemente.

Ejecución:


  • Básicamente la ejecución tiene lugar de la misma forma en la cual se han ejecutado las pruebas en iteraciones previas.
  • En la mayoría de los casos, una prueba de regresión completa no es viable dado sus altos costes y duración.
  • Un alto grado de modularidad en el software permite unas pruebas de regresión reducidas más apropiadas.
  • Criterios para la selección de casos de prueba de regresión:

  1. Casos de pruebas de prioridad alta.
  2. Probar solamente la funcionalidad estándar, saltarse casos y variaciones especiales.
  3. Probar solamente la configuración utilizada con mayor frecuencia.
  4. Probar solamente subsistemas / zonas seleccionadas del objeto de pruebas.

  • Si durante fases tempranas del proyecto resulta evidente que ciertas pruebas son adecuadas para las pruebas de regresión, se deberá considerar la automatización de estas pruebas.
Pregunta de examen:
    2.- Las pruebas de regresión se deben realizar:


    v ).- cada semana
    w).- Después que el software a cambiado.
    x).- Tan seguido como sea posible.
    y).- cuando el ambiente ha cambiado
    z ).- cuando el director del proyecto , dice

    a) v & w son verdaderas, x – z son falsas
    b) w, x & y son verdaderas, v & z son falsas
    c) w & y son verdaderas, v, x & z son falsas
    d) w is verdadera, v, x y and z son falsas
    e) Todo lo mencionado es verdadero

    2 Regression testing should be performed:

    v) every week
    w) after the software has changed
    x) as often as possible
    y) when the environment has changed
    z) when the project manager says
    a) v & w are true, x – z are false
    b) w, x & y are true, v & z are false
    c) w & y are true, v, x & z are false
    d) w is true, v, x y and z ar
    e) all of the above are true

    26 The difference between re-testing and regression testing is
    a) re-testing is running a test again; regression testing looks for unexpected side effects-->OK
    b) re-testing looks for unexpected side effects; regression testing is repeating those tests
    c) re-testing is done after faults are fixed; regression testing is done earlier
    d) re-testing uses different environments, regression testing uses the same environment
    e) re-testing is done by developers, regression testing is done by independent testers

    26 La diferencia entre re- pruebas y pruebas de regresión es:
    a) El re-testing es volver a realizar la  prueba ; las pruebas de regresión busca efectos secundarios inesperados-->OK
    b ) El re-testing busca efectos secundarios inesperados ; las pruebas de regresión está repitiendo esas pruebas.
    c) El re-testing se realiza después de las fallas encontradas ; pruebas de regresión se realiza antes
    d ) El re-testing utiliza diferentes entornos , las pruebas de regresión utiliza el mismo entorno
    e) El re- testing se realiza por los desarrolladores , las pruebas de regresión se realiza por los probadores independientes

    No hay comentarios:

    Publicar un comentario