martes, 2 de abril de 2013

Pruebas de mantenimiento (K2 - entender, explicar , razonar)

Objetivos:

  1. Comparar las pruebas de mantenimiento (pruebas a un sistema existente) con las pruebas de una aplicación nueva por lo que respecta a los tipos de pruebas, los desencadenantes de las pruebas y la cantidad de las pruebas (K2).  
  2. Reconocer los indicadores de las pruebas de mantenimiento (modificación, migración y retirada) (K1).
  3. Describir la función de las pruebas de regresión y el análisis de impacto en el mantenimiento.
Términos usados en este artículo: ANÁLISIS DE IMPACTO, PRUEBAS DE MANTENIMIENTO.

Antecedentes.


Una ves desplegado, un sistema de software suele estar en servicio durante años o décadas. Durante todo ese tiempo, el sistema , sus datos de configuración o su entorno son objeto de frecuentes modificaciones o ampliaciones. La planificación anticipada de versiones es crucial para el éxito de las pruebas de mantenimiento. Debe realizarse una distinción entre versiones planificadas y arreglos urgentes. Las pruebas de mantenimiento se realizan en un sistema operativo existente, y se activan a partir de modificaciones, casos de migración o la retirada del software o del sistema.

 Entre las modificaciones se incluyen modificaciones de mejora planificadas (como por ejemplo, en base a las versiones), modificaciones correctivas y de emergencia y modificaciones de entorno, tales como actualizaciones previstas de sistema operativo previsto o bases de datos, actualizaciones previstas de software comercial de distribución masiva, o parches para corregir vulnerabilidades recientemente expuestas o descubiertas en el sistema operativo.

Las pruebas de mantenimiento para retirada de un sistema pueden incluir pruebas de migración de datos o archivos si se requieren largos períodos de retención de datos.

Además de probar lo que se ha modificado, las pruebas de mantenimiento incluyen pruebas de regresión ampliadas a partes del sistema que no han sido objeto de modificaciones. El alcance de las pruebas de mantenimiento variará en función de riesgos de la modificación, el tamaño del sistema existente y las dimensiones de la modificación. En función de las modificaciones , las pruebas de mantenimiento podrán realizarse en todos o en cualquier nivel de prueba y en todos o en cualquier tipo de prueba. La determinación de cómo el sistema existente podrá verse afectado por las modificaciones recibe el nombre de análisis de impacto y sirve para ayudar a decidir cuántas pruebas de regresión son necesarias. El análisis de impacto puede utilizarse para establecer el juego de pruebas de regresión.

Las pruebas de mantenimiento pueden resultar difíciles en caso de que no se disponga de especificaciones, o éstas estén desactualizados, o no haya probadores con conocimiento de dominio disponible.  

Evolución del software.

La flexibilidad de los sistemas de software es una de las principales razones por la que más y más software se incorporan a los sistemas grandes y complejos. Una vez que se decide adquirir hardware, es muy costoso hacer cambios en su diseño. sin embargo, se pueden hacer cambios al software en cualquier momento durante o después del desarrollo del sistema. aún cambios importantes son todavía más económicos que los correspondientes de los sistemas hardware.


Históricamente, siempre ha existido una separación entre el proceso de desarrollo y el proceso de evolución del software (mantenimiento del software). La gente considera el desarrollo de software como una actividad creativa en la cual un sistema de software se desarrolla desde un concepto inicial hasta que se pone en funcionamiento. sin embargo, a veces consideran el mantenimiento del software como algo aburrido y sin interés. aunque los costos de "mantenimiento" son a menudo varias veces los costos iniciales de desarrollo, el proceso de mantenimiento se considera a veces menos problemático que el desarrollo del software original.



Esta distinción entre el desarrollo y el mantenimiento es cada vez más irrelevante. Hoy en día, pocos sistemas de software son completamente nuevos, lo que implica que tiene más sentido ver el desarrollo y el mantenimiento como actividades continuas. Más que dos procesos separados, es más realista considerar a la ingeniería del software como un proceso evolutivo en el cual el software se cambia continuamente durante su periodo de vida como respuesta a los requerimientos cambiantes y necesidades del usuario. 

Resumiendo:


Pruebas posteriores a la aceptación del producto:
  • El cliente ha aprobado el producto y es puesto en producción.

  1.     El ciclo de desarrollo inicial, incluidos las pruebas asociados, ha sido completado.
  • El mismo software se encuentra al comienzo del ciclo de vida:
  1.    Será utilizado por muchos años, será ampliado.
  2.    Es muy probable que aún contenga defectos, por lo tanto será modificado y corregido.
  3.    Necesitará adaptarse a nuevas condiciones y deberá integrarse a nuevos entornos.
  4.    Necesitará cambiar o extender los datos de configuración.
  5.    Será retirado, se extraerá del entorno de producción.
CUALQUIERA NUEVA VERSIÓN DEL PRODUCTO, CADA NUEVA ACTUALIZACIÓN Y CADA CAMBIO DEL SOFTWARE REQUIERE PRUEBAS ADICIONALES.

Configuración:
  • Composición de un componente o de un sistema definido como el número, naturaleza e interconexiones de las partes que lo constituyen.
Análisis de impacto:
  • Valoración del cambio en las capas de documentación de desarrollo, documentación de pruebas y componentes, con el objeto de implementar un cambio dado en requisitos especificados.
Pruebas de mantenimiento:
  1. Pruebas de los cambios en un sistema en operación o el impacto de un entorno modificado para un sistema en operación.
  • El mantenimiento de software cubre dos campos diferenciados:
  1.     Mantenimiento tal como : corrección de errores o implementación de "hot - fixes" que han sido parte de la versión inicial del software  
  2.     Distribución de software planificados : adaptaciones como resultado una modificación / cambio del entorno o nuevos requisitos del cliente.

  • Alcance de las pruebas de mantenimiento.
  1.    "Hot Fixes" y la corrección de defectos requiere la recepción de pruebas ("re - test").
  2.    La ampliación de la funcionalidad requiere nuevos casos de prueba.
  3.    La migración a otra plataforma requiere pruebas operativas ("operational testing").
  4.    Adicionalmente, son necesarias pruebas de regresión intensivas.
  • El alcance de las pruebas depende del impacto del cambio.
  1.    El análisis de impacto se utiliza para determinar las áreas afectadas con el objeto de decidir la cantidad de pruebas de regresión.
  2.    Pueden ocurrir problemas si la documentación del software antiguo falta o es incompleto.
  • Retirada.
  1.    Las pruebas tras la retirada del software puede incluir:
  •      Pruebas de migración de datos.
  •      Verificación del archivo de datos y programas.
  •     Pruebas en paralelo de sistemas nuevo y su antecedente. 














No hay comentarios:

Publicar un comentario