El desarrollo de sistemas de software implica una serie de actividades de produccin en las que las posibilidades de que aparezca el fallo humano son enormes. Los errores pueden empezar a darse desde el inicio del proceso, en el que los objetivos pueden estar especificados de forma errnea o imperfecta, as como dentro de pasos de diseo y desarrollo posteriores..
Introduccin.
Debido a la imposibilidad humana de trabajar y comunicarse de forma perfecta, el desarrollo de software ha de ir acompaado de una actividad que garantice la calidad
La prueba del software es un elemento crtico para la garanta de calidad del software y representa una revisin final de las especificaciones, del diseo y de la codificacin.
Objetivos de la prueba
Los objetivos principales de realizar una prueba son: Detectar un error. Tener un buen caso de prueba, es decir que tenga ms probabilidad de mostrar un error no descubierto antes. Descubrir un error no descubierto antes (xito de la prueba).
Observatividad
Controlabilidad
Capacidad
de descomposicin
de comprensin.
Principios de la prueba
Hacer un seguimiento de las pruebas hasta los requisitos del cliente. Plantear y disear las pruebas antes de generar ningn cdigo.
El 80% de todos los errores se centran slo en el 20% de los mdulos.
Un producto puede probarse siguiendo dos criterios: 1. Conocimiento del funcionamiento del producto (Caja blanca). 2. El conocimiento de la funcin especfica para la que fue diseado el producto (Caja negra).
Descendente Ascendente
Prueba Descendente empieza a nivel de sistema, prueba los mdulos y por ultimo las funciones que conforman. Utiliza un programa esclavo. Prueba Ascendente da inicio la verificacin de funciones hasta llegar al nivel superior del sistema. Utiliza un programa conductor para cada modulo a probar.
Clase de pruebas
Datos de prueba: Representativos (datos comunes) Incorrectos, incompletos e incongruentes
Prueba de Caja Negra Se realiza con el fin de asegurar que el producto es operativo. Prueba de Caja Blanca Se desarrolla con el fin de asegurar que todas las piezas del sistema tienen una operacin interna que se ajusta a las especificaciones y que todos sus componentes internos se han aprobado en forma adecuada.
Notacin de grafo de flujo Complejidad ciclomtica Obtencin de casos de prueba Matrices de grafos Prueba de condicin Prueba de flujo de datos Prueba de bucles
La prueba de condicin se centra en encontrar errores en condiciones lgicas en un mdulo, aunque tambin puede detectar errores adicionales en el programa. En una condicin se pueden dar los siguientes errores:
1. 2. 3. 4. 5.
Error de operador lgico Error en una variable lgica. Error en una condicin simple o compuesta. Error en un operador relacional. Error en una expresin aritmtica.
La prueba de flujo de datos selecciona caminos de prueba de un programa de acuerdo con la ubicacin de las definiciones y los usos de las variables del programa.
La prueba de bucles es una tcnica de prueba de caja blanca que se centra exclusivamente en la validez de las construcciones de condiciones. Hay cuatro tipos de estructuras de control: simples, concatenadas, anidadas y no estructuradas. De acuerdo al tipo de estructura es la prueba que se aplicar.
Este tipo de prueba se centra en los requisitos funcionales del software y permite obtener entradas que prueben todos los requisitos funcionales del programa. Con este tipo de pruebas se intenta encontrar:
1. 2. 3.
4.
5.
Funciones incorrectas o ausentes. Errores de interfaz Errores en estructuras de datos o en accesos a bases de datos externas. Errores de rendimiento. Errores de inicializacin y terminacin.
Prueba de comparacin
Esta tcnica consiste en la comparacion de salidas de un mismo software pero de sus diferentes versiones.
Cuando se han producido mltiples implementaciones de la misma especificacin, a cada versin del software se le proporciona como entrada los casos de prueba diseados para la otra. Si las salidas de distintas versiones son idnticas entonces todas las implementaciones son correctas. Si la salida es diferente, se revisan las aplicaciones para determinar el defecto. Esta prueba no es infalible.
Estrategias de prueba del software: Prueba de unidad, Prueba de integracin, Prueba de validacin, Prueba del sistema.
Proporcionan un plano o gua para el desarrollador del software, para la organizacin de control de calidad y para el cliente . Es una gua que describe los pasos a llevar a cabo como parte de la prueba, cundo se deben planificar y realizar esos pasos, y cunto esfuerzo, tiempo y recursos se van a requerir. Por lo tanto, cualquier estrategia de prueba debe incorporar la planificacin de la prueba, el diseo de los casos de prueba, la ejecucin de las pruebas y la agrupacin y evaluacin de los datos resultantes.
Verificacin y validacin
La verificacin se refiere al conjunto de actividades que aseguran que el software implementa correctamente una funcin especfica. La validacin se refiere a un conjunto diferente de actividades que aseguran que el software construdo se ajusta a los requisitos del cliente. La verificacin y la validacin comprenden un amplio rango de actividades de SQA que incluyen :
Revisiones tcnicas formales, Auditorias de configuracin y calidad, Supervisin del rendimiento, Revisin de la base de datos, Anlisis de los algoritmos, Prueba de desarrollo, Prueba de calificacin, Prueba de instalacin.
Prueba de unidad
La prueba de unidad Centra el proceso de verificacin en la menor unidad del diseo del software - el mdulo. Usando la descripcin del diseo detallado como gua, se prueban caminos de control importantes, con el fin de descubrir errores dentro del mbito del mdulo. Est orientada a la caja blanca Puede llevarse a cabo en paralelo para mltiples mdulos.
Prueba de integracin
Es una tcnica sistemtica para construir la estructura del programa mientras que, al mismo tiempo, se llevan a cabo pruebas para detectar errores asociados con la interaccin. El objetivo es tomar los mdulos probados en unidad y construir una estructura de programa que est de acuerdo con lo que dicta el diseo.
Prueba de integracin
La integracin incremental, El programa se construye y se prueba en pequeos segmentos en los que los errores son ms fciles de aislar y de corregir, de esta forma es ms probable que se puedan probar completamente los interfaces y se puede aplicar un enfoque de prueba sistemtica. Hay estrategias de integracin incremental denominadas: Integracin descendente, Integracin ascendente.
La especificacin de prueba incluye un plan general para la integracin del software y una descripcin de las pruebas especficas. Es un resultado del proceso de ingeniera del software y forma parte de la configuracin del software. El alcance de la prueba resume las caractersticas funcionales, de rendimiento y de diseo interno especficas que van a a ser probadas. Se limita el esfuerzo de prueba, se describen los criterios de terminacin de cada fase de prueba y se documentan las limitaciones del plan.
El plan de prueba describe la estrategia general para la integracin. La prueba se divide en fases y subfases dirigidas a especficas caractersticas funcionales y del mbito de informacin del software.
En todas las fases de prueba se siguen los siguientes criterios con sus correspondientes pruebas:
Prueba de validacin
Tras la culminacin de la prueba de la integracin, el software est completamente ensamblado como un paquete, se han encontrado y corregido los errores de interfaz y puede comenzar una serie final de pruebas del software La prueba de validacin.
Repaso de la configuracin
Un elemento importante del proceso de validacin es el repaso de la configuracin. Tal repaso intenta asegurar que todos los elementos de la configuracin del software se han desarrollado de forma adecuada, estn catalogados y tienen el suficiente detalle para facilitar la fase de mantenimiento dentro del ciclo de vida del software.
La prueba alfa es conducida por un cliente en el lugar de desarrollo. La prueba beta se lleva a cabo en uno o ms lugares de cliente por los usuarios finales del software.
Prueba de recuperacin
La prueba de recuperacin es una prueba del sistema que fuerza el fallo del software de muchas formas y verifica que la recuperacin se lleva a cabo apropiadamente. Si la recuperacin es automtica hay que evaluar la correcin de reinicializacin, de los mecanismos de recuperacin del estado del sistema, de la recuperacin de datos y del rearranque. Si la recuperacin requiere la intervencin humana, hay que evaluar los tiempos medios de reparacin para determinar si estn dentro de unos lmites aceptables.
Prueba de seguridad
La prueba de seguridad intenta verificar que los mecanismos de proteccin incorporados en el sistema lo protegern.
Prueba de rendimiento
La prueba de rendimiento est diseada para probar el rendimiento del software en tiempo de ejecucin dentro del contexto de un sistema integrado. La prueba de rendimiento se da durante todos los pasos del proceso de prueba. Incluso al nivel de unidad, se debe asegurar el rendimiento de los mdulos individuales a medida que se llevan a cabo las pruebas
de la caja blanca.
El arte de la depuracin
El proceso de depuracin siempre tiene uno de dos resultados: (1) se encuentra la causa, se corrige y se elimina; o (2) no se encuentra la causa.
En este ltimo caso, la persona que realiza la depuracin debe sospechar la causa, disear un caso de prueba que ayude a validar sus sospechas y el trabajo vuelve hacia atrs a la correccin del error de una forma iterativa.
Bibliografia