Estrategias de Pruebas
Las pruebas constituyen una actividad en la cual un sistema o componente es
ejecutado bajo condiciones especficas, se observan o almacenan los resultados
y se realiza una evaluacin de algn aspecto del sistema o componente.
Toda prueba de software desempea un papel fundamental en el desarrollo de
cualquier tipo de aplicacin, incrementan las posibilidades de que esta llegue a
un feliz trmino y arroje resultados ms cercanos a los esperados, permitiendo
as, realizar a posteriori un mejor anlisis de la situacin.
Integra los mtodos de diseo de casos de pruebas del software en una
serie bien planeada de pasos que desembocar en la eficaz construccin
de un software.
Proporciona un mapa que describe los pasos que se darn como parte de
la prueba, indica cundo se planean y cundo se dan estos pasos,
adems de cuanto esfuerzo, tiempo y recursos consumirn.
Una estrategia debe ser lo suficientemente flexible como para promover
un enfoque personalizado. Al mismo tiempo debe ser lo adecuadamente
rgido para promover una planeacin razonable y un seguimiento
administrativo del avance del proyecto.
Objetivos de las Pruebas de Software
Probar si el software no hace lo que debe. Error al crear miniatura: Falta
archivo
Probar si el software hace lo que no debe, es decir, si provoca efectos
secundarios adversos.
La prueba es un conjunto de actividades que se planean con anticipacin y se
realizan de manera sistemtica. Por tanto, se debe definir una plantilla para las
pruebas del software.
Las plantillas de pruebas tienen las siguientes caractersticas:
Descubrir un error que an no ha sido descubierto.
Encontrar el mayor nmero de errores con la menor cantidad de tiempo
y esfuerzo posibles.
Para realizar pruebas efectivas debe efectuarse revisiones tcnicas
formales y efectivas.
Mostrar hasta qu punto las funciones del software operan de acuerdo
con las especificaciones y requisitos del cliente.
Las pruebas deben comenzar a nivel de componentes y trabaja hacia
afuera, hacia la integracin del todo el software.
Diferentes tcnicas de pruebas son apropiadas en diferentes momentos.
La prueba la dirige el desarrollador del software y en casos de proyectos
grandes debe ser un grupo independiente de pruebas.
La prueba y la depuracin son actividades diferentes, pero la segunda
debe incluirse en cualquier estrategia de prueba.
Error vs Defecto Vs Falla
Es comn ver como algunas personas utilizan de manera indistinta los
trminos Defecto, Falla y Error. Sin embargo, cada uno de ellos tiene un
significado diferente:
Error: Es una equivocacin cometida por el desarrollador. Algunos
ejemplos de errores son: un error de digitacin, una malinterpretacin de
un requerimiento o de la funcionalidad de un mtodo. El estndar 829 de
la IEEE coincide con la definicin de diccionario de error como "una idea
falsa o equivocada". Por tal razn un programa no puede tener o estar
en un error, ya que los programas no tienen ideas; las ideas las tienen la
gente.
Defecto: Un defecto se encuentra en un artefacto y puede definirse
como una diferencia entre la versin correcta del artefacto y una versin
incorrecta. Coincide con la definicin de diccionario, "imperfeccin".
Falla: En terminologa IEEE, una falla es la discrepancia visible que se
produce al ejecutar un programa con un defecto, el cual es incapaz de
funcionar correctamente (no sigue su curso normal).
Estrategias de Pruebas
Validacin y Verificacin
Verificacin estamos construyendo el producto correctamente?
Es una actividad la cual nos aseguramos que las distintas partes del
software cumple con la funcin para la cual fueron diseadas, en este
sentido la verificacin se encarga de revisar el funcionamiento de los
mdulos del software
Validacin estamos con el producto correcto?
Se encarga de comprobar que los mdulos verificados cumplen con los
requisitos que el cliente ha expresado.
La validacin y verificacin abarcan una gran cantidad de actividades
de aseguramiento de la calidad del software: revisiones tcnicas
formales, auditorias de calidad y de configuracin , evaluacin de
desempeo, simulacin, factibilidad, revisin de la documentacin y la
base de datos, anlisis de algoritmos, pruebas de desarrollo, de facilidad
de uso, calificacin y de instalacin
Las pruebas son el ultimo bastin de para la evaluacin de la calidad y,
de manera pragmtica el descubrimiento de errores.
Una estrategia para las pruebas del software aplican en el contexto de la espiral,
movindonos de adentro hacia afuera de la espiral.
La prueba de integracin, donde el foco de atencin es el diseo y
construccin de la arquitectura del software.
II.
2.
Descripcin del software adicional.
El plan de prueba describe la estrategia general para la integracin. Se
divide en fases y sub fases. En todas las fases se siguen los siguientes
criterios: Integridad de interface, validez funcional, contenido de la
informacin y rendimiento.
La seccin de procedimiento de prueba describe detalladamente el
procedimiento de prueba requerido para llevar a cabo el plan de prueba,
describiendo el orden de integracin y las pruebas de cada fase.
Asimismo se incluye un listado de todos los casos de prueba y resultados
esperados.
Se registran los resultados reales de prueba obtenidos, problemas y
peculiaridades. Esta informacin es vital para el mantenimiento del
software.
Prueba de Unidad
A. Fases de prueba.
B. Agenda.
C. Software adicional.
D. Entorno y recursos.
III. Procedimiento de prueba N.
Orden de integracin.
1.
Propsito.
2.
Mdulos a ser probados.
B. Pruebas de unidad para los mdulos de la subfase.
1.
Herramientas o tcnicas especiales.
Plan de prueba.
A.
1.
El alcance de prueba resume las caractersticas funcionales, de
rendimiento y diseo interno especficas a probar. Se limita el esfuerzo
de prueba, se describen criterios de terminacin de cada fase de prueba
y se documentan las limitaciones del plan.
Un perfil de la especificacin de prueba puede ser el siguiente:
Alcance de la prueba.
Resultados esperados.
Perfil de un plan de estrategias de pruebas
I.
3.
Estrategias de pruebas
La prueba de validacin, donde se validan los requisitos establecidos como
parte del anlisis de requisitos del software, comparndolos con el sistema que
ha sido construido.
La prueba del sistema en la que se prueban como un todo el software y otros
elementos del sistema.
Descripcin del software adicional.
C. Entorno de prueba.
Estrategias de Pruebas
La prueba de unidad comienza en el vrtice de la espiral y se centra en cada
unidad del software, tal como est implementada en cdigo fuente.
2.
Descripcin de pruebas para el mdulo M.
Se centra el proceso de verificacin en la menor unidad del diseo: el mdulo.
Usando la descripcin del diseo detallado como gua, se prueban los caminos
de control importantes, con el fin de descubrir errores dentro del mdulo. Se
prueba la interface para asegurar que la informacin fluye de forma adecuada
hacia y desde la unidad del programa que est siendo probada. Se examinan las
estructuras de datos locales para asegurar que los datos que se mantienen
temporalmente conservan su integridad durante la ejecucin del algoritmo
Se prueban las condiciones lmite para asegurar que el mdulo
funciona correctamente con los lmites establecidos. Se ejercitan todos
los caminos independientes de la estructura de control para asegurar
que todas las sentencias del mdulo se ejecuten por lo menos una vez. Y
finalmente se prueban todos los caminos de manejo de errores.
Prueba de Integracin
Si todos los mdulos funcionan bien por qu dudar de que funcionen bien
juntos ?. El problema es "ponerlos juntos". La prueba de integracin detecta
errores de interaccin. El procedimiento adecuado se llama integracin
incremental con el cual se construye y se prueba en pequeos segmentos en los
que los errores son ms fciles de aislar y corregir.
Un plan general de integracin y una descripcin de las pruebas especficas
deben quedar documentados en una especificacin de prueba, es parte esencial
del proceso de ingeniera de software y forma parte de la configuracin del
software.
Pruebas del Sistema
Constituida por una serie de pruebas diferentes cuyo propsito es ejercitar
profundamente el sistema basado en computadora. Entre pruebas de sistema
tenemos:
Prueba de recuperacin: forza el fallo del software de muchas formas
y verifica que la recuperacin se lleva a cabo apropiadamente. Se evala
la correccin de reinicializacin, mecanismos de recuperacin del estado
del sistema, recuperacin de datos y rearranque.
Prueba de seguridad: intenta verificar que los mecanismos de
proteccin del sistema lo protegern adecuadamente.
Prueba de resistencia: est diseada para enfrentar a los programas
con situaciones anormales, es decir, ejecuta un sistema de forma que
demande recursos en cantidad, frecuencia volmenes anormales. Una
variacin de esta prueba es la prueba de sensibilidad, utilizando datos
que produzcan inestabilidad procesamiento incorrecto.
Prueba de rendimiento: prueba el rendimiento del software en tiempo
de ejecucin. Se da en todos los pasos del proceso de prueba.
Pruebas de Validacin
Una vez ensamblado como paquete probamos la validacin, la cual se
logra cuando el software funciona de acuerdo con las expectativas
razonables del cliente. Estas expectativas estn definidas en la
especificacin de requisitos que describe los atributos del software
visibles al usuario, basado en los criterios de validacin de dicho
documento. La prueba de validacin se lleva a cabo con pruebas de la
caja negra que demuestran la conformidad con los requisitos.
Una vez probado cada caso pueden darse dos condiciones: las
caractersticas de funcionamiento de rendimiento estn de acuerdo
con las especificaciones y son aceptables, se descubre una desviacin
de las especificaciones y se crea una lista de deficiencias.
Se pueden realizar pruebas alfa beta, la prueba alfa es conducida por
un cliente en el lugar de desarrollo; la prueba beta en uno ms
lugares de clientes y usuarios finales.
En la alfa el desarrollador observa, en la beta es una aplicacin en vivo
en un entorno que no controla el desarrollador.
Como resultado el equipo de desarrollo de software lleva a cabo
modificaciones y as prepara una versin del producto de software para
toda la base de clientes.