domingo, 6 de junio de 2010

Pruebas de Software

Las pruebas requieren que se descarten ideas preconcebidas sobre la corrección del software que se acaba de desarrollar y se supere cualquier conflicto de intereses que aparezcan cuando se descubran errores. Las pruebas de software son la actividad más común de control de calidad realizada en los proyectos de desarrollo o mantenimiento de aplicaciones y sistemas. Aunque un aseguramiento de calidad de software más eficaz debería incluir otras técnicas como por ejemplo, inspecciones y revisiones (automatizadas o no) de modelos y documentos no ejecutables de las primeras fases de desarrollo.

El software es refinado a través de iteraciones en el ciclo de vida. El ciclo de vida de prueba se beneficia siguiendo un proceso iterativo equivalente. En cada iteración el equipo de desarrollo produce uno o más builds, cada builds es un canidato importante a probar.

Los objetivos del equipo de desarrollo difieren de una iteración a otra. El equipo de prueba estructura su prueba de acuerdo a los objetivos de la iteración. En una iteración x, se puede implementar y ejecutar determinadas pruebas. Cualquiera de las pruebas desarrolladas en la iteración x son candidatas para pruebas x+1. Cuando hay pruebas que son repetibles varias veces se podrían automatizar para hacer así mas sencillo el proceso.

Las pruebas de software no garantizan que un software esté libre de errores, sino que se detecten la mayor cantidad de defectos posibles en el mismo para su debida corrección. Si al ejecutar las pruebas no se encuentran errores esto indica que las pruebas realizadas no fueron lo suficientemente eficientes.

Como objetivos principales de las pruebas de software debemos tener presentes:
  • Planificar las pruebas necesarias en cada iteración.
  • Diseñar e implementar las pruebas creando los casos de pruebas que especifiquen los mismo qué probar.
  • Realizar diferentes tipos de pruebas y manejar los resultados de cada prueba sistemáticamente. Las construcciones en las que se detecten defectos serán probadas nuevamente hasta tanto esten libres de errores.
Las pruebas de software se llevan a cabo para brindar un mayor nivel de confiabilidad en los productos que se generan, detectar fallas o errores y aumentar la calidad del producto final.

Existen 4 niveles de pruebas:

-Unidad

-Integración

-Sistema

-Aceptación

En el nivel de Unidad se encuentras las pruebas unitarias como su nombre lo indica. En el encontramos las Pruebas de Caja Blanca las cuales van dirigidas a probar el código de módulos independientes y también están las Pruebas de Caja Negra las cuales probarán las funcionalidades específicas de cada módulo por separado.

En el nivel de Integración están las Pruebas de Integración como su nombre lo indica, las mismas son las encargadas de probar las funcionalidades dependientes entre módulos, probando así la integración de los módulos involucrados.

En el nivel de Sistema se encuentran la mayor cantidad de tipos de pruebas. En este nivel se prueba el sistema como un todo en conjunto. Aquí encontramos las pruebas funcionales las cuales probarán el funcionamiento básico de cada funcionalidad. También tenemos las pruebas de Carga la cual se utiliza para enviar datos al sistema para ver hasta que punto admite capacidad de volumen de información. También tenemos las pruebas de Estrés, estas tienen como objetivo hacer colapsar al sistema en cuanto a la mayor cantidad de peticiones de usuarios a una misma funcionalidad o valor como resultado de alguna consulta realizada. También están en este nivel los Test de Penetración los cuales tienen como objetivo violar todas las políticas de seguridad del sistema, tanto como agente externo como interno.

En el nivel de Aceptación tenemos las pruebas de Aceptación como su nombre lo indica, las mismas son realizadas por el usuario final o cliente. Se llevan a cabo en dos ambientes, el primero es un ambiente creado por el equipo de desarrollo el cual estará enmarcado a lo que realmente quiere el equipo de desarrollo que sea probado. El otro ambiente ya es preparado por el usuario final o cliente, ambiente el cual estará lejos del equipo de desarrollo.

Nota Importante: Existen también las Pruebas de Regresión, las cuales se realizan para corregir errores que antes no existían debido a la incorporación de nuevas funcionalidades. Estas pruebas están presentes en todo el proceso de pruebas.


1 comentario:

  1. Me gusto mucho tu articulo ademas que me ayuda con el trabajo que realizo en mi Proyecto.

    ResponderEliminar