Documente Academic
Documente Profesional
Documente Cultură
1m+3m
Trimestre.IX
Un buen caso de prueba es aquel que tiene una alta probabilidad de mostrar un error no descubierto hasta entonces.
Nos quitan la idea que, normalmente, tenemos de que una prueba tiene xito si no descubre errores.. Nuestro objetivo es disear pruebas que sistemticamente saquen a la luz diferentes clases de errores, hacindolo con la menor cantidad de tiempo y de esfuerzo.
Pruebas de Unidad
Tecnicas de Pruebas
Pruebas de Unidad
Qu se necesita para disear el caso deprueba?
La especificacin para el mdulo y el cdigo fuente del mdulo. La especificacin define tpicamente los parmetros de entrada y de salida del mdulo y su funcin.
Interfaz
Se prueba para verificar que la informacin fluye apropiadamente hacia dentro y hacia fuera del mdulo
Asegurarse que los datos temporales mantienen la integridad durante todos los pasos de la ejecucin del algoritmo
Se recorren todos los caminos independientes para probar que todas las instrucciones se hayan ejecutado al menos una vez
Asegurar que el mdulo opera apropiadamente en los lmites establecidos para restringir el procesamiento.
PRUEBA DE UNIDAD
Se concentran en la lgica de procesamiento interno y en las estructuras de datos dentro de los lmites de un componente.
Tecnicas de Pruebas
Pruebas de Integracin
El objetivo de las pruebas de integracin es verificar el correcto ensamblaje entre los distintos componentes una vez que han sido probados unitariamente con el fin de comprobar que interactan correctamente a travs de sus interfaces, tanto internas como externas, cubren la funcionalidad establecida y se ajustan a los requisitos no funcionales especificados en las verificaciones correspondientes.
Tecnicas de Pruebas
PRUEBAS DE INTEGRACION: La prueba de integracin es una tcnica sistemtica para construir la estructura del programa mientras al mismo tiempo, se lleva a cabo pruebas para detectar errores asociados con la interaccin. El objetivo es tomar los mdulos probados en unidad y estructurar un programa que est de acuerdo con el que dicta el diseo. Los tipos de prueba de integracin son:
Integracin descendente: es una estrategia de integracin incremental a la construccin de la estructura de programas, en el cual se integran los mdulos movindose en direccin hacia abajo por la jerarqua comenzando por el control principal (Programa principal).
-
-Integracin ascendente: es donde la construccin del diseo empieza desde los mdulos ms bajos hacia arriba (mdulo principal).
Tecnicas de Pruebas
Pruebas de Integracin
Estrategias Prueba Top-Down
El primer componente que se desarrolla y prueba es el primero de la jerarqua (A). Los componentes de nivel ms bajo se sustituyen por componentes auxiliares para simular a los componentes invocados.
Ventaja: una de las ventajas de aplicar esta estrategia es que las interfaces entre los distintos componentes se prueban en una fase temprana y con frecuencia.
Tecnicas de Pruebas
Pruebas de Integracin
Estrategias Prueba Bottom-up
En este caso se crean primero los componentes de ms bajo nivel (E, F) y se crean componentes conductores para simular a los componentes que los llaman.
A continuacin se desarrollan los componentes de ms alto nivel (B, C, D) y se prueban. Por ltimo dichos componentes se combinan con el que los llama (A).
Ventaja: este tipo de enfoque permite un desarrollo ms en paralelo que el enfoque de arriba abajo, pero presenta mayores dificultades a la hora de planificar y de gestionar.
Tecnicas de Pruebas
Pruebas de Integracin
Estrategias Estrategias combinadas.
De este modo, se desarrollan partes del sistema con un enfoque "top-down", mientras que los componentes ms crticos en el nivel ms bajo se desarrollan siguiendo un enfoque "bottom-up".
En este caso es necesaria una planificacin cuidadosa y coordinada de modo que los componentes individuales se encuentren en el centro.
Tecnicas de Pruebas
Tipos de defectos
Segn Centro de Investigaciones de IBM
Descripcion
Tipo
Comentarios Mensajes Ortografia, puntuacion, erratas , formato de las instrucciones Gestion de cambios, librerias, control de version Declaracion, nombres duplicados, ambitos Llamadas a procedimientos y referencias, E/S, formatos de usuario Mensajes de error, chequeos inadecuados
Datos Funcion
Tecnicas de Pruebas
Tipos de defectos
Segn Centro de Investigaciones de IBM
Descripcion Configuracion, temporizacion, memoria Ortografia, puntuacion, erratas , formato de las instrucciones Diseo, compilacion, pruebas y otros problemas que soporta el sistema
Las pruebas trabajan para verificar que se hayan integrado adecuadamente todos los elementos del sistema y que realizan las funciones apropiadas
Ejecuta el sistema de tal manera que requiera una cantidad, una frecuencia o un volumen anormal de recursos
Pruebas de resistencia
Pruebas de sensibilidad
Tratan de descubrir combinaciones de datos dentro de las clases de entrada vlidas que causen inestabilidad o procesamiento inadecuado
Prueba de desempeo
Se requiere instrumentacin externa para medir el desempeo del sistema
Se aplica en todos los niveles de prueba, desde prueba de unidad
Pruebas de Aceptacin
Son aquellas pruebas que realiza el usuario/cliente con el objeto de comprobar si el sistema es aceptable para l.
Estas pruebas son del mismo tipo que las mencionadas anteriormente, pero son determinadas por el usuario, en lugar de serlo por el equipo de desarrollo.
Un tipo especial de estas pruebas es el de la ejecucin en paralelo con el viejo sistema (legado), para comparar los resultados producidos por ambas ejecuciones.
Tipos de Pruebas
Pruebas de Caja Blanca (Estructural)
Es un mtodo de diseo de casos de prueba que usa la estructura de control del diseo procedimental para obtener los casos de prueba.
Tecnicas de Pruebas
Pruebas de Caja Blanca (Estructural) Con este mtodo se puede obtener casos de prueba que:
Garanticen que se ejercita por lo menos una vez todos los caminos independientes de cada mdulo. Ejerciten todas las decisiones lgicas en sus vertientes verdadera y falsa. Ejecuten todos los bucles en sus lmites y con sus lmites operacionales. Ejerciten las estructuras internas de datos para asegurar su validez
Tecnicas de Pruebas
Pruebas Estticas:Es el proceso que cuidadosamente y metdicamente revisa el diseo del software, la arquitectura o el cdigo para encontrar defectos sin necesidad de ejecutar el cdigo. Esto algunas veces se refiere a un anlisis estructural.
Pruebas Dinmicas: en estas pruebas se revisa dentro de la caja, se examina el cdigo y se observa ste mientras se ejecuta. La prueba de caja blanca dinmica, en resumidas palabras, utiliza la informacin que se obtiene al observar que hace el cdigo, como trabaja, para as determinar que probar, que no probar y como aproximarse a las pruebas.
Tecnicas de Pruebas
Prueba del camino basico: Se obtiene una medidad de la complejidad logica del diseo procedimental con esto se define un conjunto de caminos basicos de ejecucion
Tecnicas de Pruebas
Pruebas de Caja Negra (Funcional)
Las pruebas de caja negra se centran en los requisitos funcionales del software. Es decir, permite obtener conjuntos de condiciones de entrada que ejerciten completamente todos los requisitos funcionales de un programa.
Tecnicas de Pruebas
Tecnicas de Pruebas
Tecnicas de Pruebas
Metodos de Prueba Basado en grafos: flujos de transicion, estados finitos, flujo de datos, planificacion, causa-efecto Particion equivalente: divide el campo de entrada de un programa en clases de datos de los que se pueden derivar casos de prueba. Analisis de valores limites: los errores tienden a darse ms en los lmites del campo de entrada que en el centro Prueba de tabla ortogonal: es posible considerar cada permutacin de entrada y comprobar exhaustivamente el proceso del dominio de entrada. Adivinando el error: dado un programa particular, se conjetura, por la intuicin y la experiencia, ciertos tipos probables de errores y entonces se escriben casos de prueba para exponer esos errores
Pruebas Funcionales
Se denominan pruebas funcionales o Functional Testing, a las pruebas de software que tienen por objetivo probar que los sistemas desarrollados, cumplan con las funciones especficas para los cuales han sido creados, es comn que este tipo de pruebas sean desarrolladas por analistas de pruebas con apoyo de algunos usuarios finales, esta etapa suele ser la ultima etapa de pruebas y al dar conformidad sobre esta el paso siguiente es el pase a produccin.
A este tipo de pruebas se les denomina tambin pruebas de comportamiento o pruebas de caja negra, ya que los testers o analistas de pruebas, no enfocan su atencin a como se generan las respuestas del sistema, bsicamente el enfoque de este tipo de prueba se basa en el anlisis de los datos de entrada y en los de salida, esto generalmente se define en los casos de prueba preparados antes del inicio de las pruebas.
Dentro del campo de estudio de la Ingeniera de Software, se sugieren diversas metodologas de prueba que pueden incorporarse el ciclo de vida de un proyecto de desarrollo computacional. De acuerdo con Pressman, las pruebas funcionales pueden realizare en base a 2 enfoques principales [PRR98]:
Pruebas funcionales
Objetivo: Se asegura la trabajo apropiado de los requisitos funcionales, incluyendo la navegacin, entrada de datos, procesamiento y obtencin de resultados. Metas de estas pruebas son: Verificar el procesamiento, recuperacin e implementacin adecuada de las reglas del negocio. Verificar la apropiada aceptacin de datos. Enfoque: Los requisitos funcionales (Casos de Uso) y las reglas del negocio.
Pruebas no Funcionales
Para entender este tipo de pruebas es bueno tener claro que son las pruebas funcionales, estas pruebas se encargan verificar que una funcionalidad en especfico, es decir un conjunto de entradas son aplicadas a un mdulo y segn las salidas que este de se verifica si funciona correctamente o no. Si bien este tipo de pruebas son necesarias, no son las nicas y no muestran el comportamiento real de la aplicacin bajo condiciones de produccin. Por tal motivo se hace necesario realizar las pruebas no funcionales, estas se encargan de ver el comportamiento de la aplicacin bajo situaciones similares a las de produccin.
Manejo de memoria Confiabilidad Usabilidad Mantenibilidad Configurabilidad Rendimiento (Estrs) Seguridad Portabilidad Recuperacin Recuperacin a desastres Interoperabilidad Compatibilidad
Instalabilidad
Pruebas de Interfaz
Existen diferentes tipos de interfaces entre los componentes del programa y, consecuente- mente, distintos tipos de errores de interfaces que pueden producirse: Interfaces de parmetros. Son interfaces en las que los datos, o algunas veces refe- rencias a funciones, se pasan de un componente a otro en forma de parmetros.
Interfaces de memoria compartida. Son interfaces en las que un bloque de memoria se comparte entre los componentes. Los datos se colocan en la memoria por un sub- sistema y son recuperados desde aqu por otros subsistemas.
Interfaces procedwales. Son interfaces en las que un componente encapsula un con- junto de procedimientos que pueden ser llamados por otros componentes. Los objetos y los componentes reutilizables tienen esta forma de interfaz. 4. Interfaces de paso de mensajes.
Pruebas de Interfaz
Los errores de interfaces son una de las formas ms comunes de error en sistemas com- plejos (Lutz, 1993). Estos errores se clasifican en tres clases:
Mal uso de la interfaz. Un componente llama a otro componente y comete un error en la utilizacin de su interfaz. Este tipo de errores es particularmente comn con interfaces de parmetros en donde los parmetros pueden ser de tipo errneo, pueden pasarse en el orden equivocado o puede pasarse un nmero errneo de parmetros.
No comprensin de la interfaz. El componente que realiza la llamada no comprende la especificacin de la interfaz del componente al que llama, y hace suposiciones sobre el comportamiento del componente invocado. El componente invocado no se comporta como era de esperar y esto provoca un comportamiento inesperado en el componente que hace la llamada. Por ejemplo, puede llamarse a una rutina de bsqueda binaria con un vector no ordenado para realizar la bsqueda. En este caso, la bsqueda podra fallar.
Errores temporales. Se producen en sistemas de tiempo real que utilizan una memoria compartida o una interfaz de paso de mensajes. El productor de los datos y el consumidor de dichos datos pueden operar a diferentes velocidades
Nombre: una palabra o frase que identifica el patrn y sugiere su enfoque general.
Objetivo: Qu problema de diseo de pruebas resuelve este patrn? Cul es la estrategia de pruebas? Dar una descripcin muy breve. Contexto: Bajo qu circunstancias se aplica este patrn? A qu clase de entidades software? A qu alcance? Esta seccin se corresponde con las de motivacin y aplicabilidad de los patrones de diseo. Modelo de fallos: Qu clase de defectos busca este patrn? El fallo debe alcanzarse a partir de los datos de entrada de la prueba y el estado del sistema, debe producir resultados incorrectos y ha de ser propagado a la salida de tal forma que sea observable por la persona que realiza la prueba. Estrategia: esta seccin aclara como se ha de generar e implementar la coleccin de casos de prueba. Tiene cuatro subsecciones obligatorias: Modelo de Pruebas: define una representacin de las responsabilidades y/o implementacin que son el punto central del diseo de pruebas.
Comprobacin: define el algoritmo, la tcnica o heurstica por la cual los resultados actuales de un caso de prueba se evalan como paso / no paso. Automatizacin: discute los enfoques automticos para la generacin de casos de prueba, ejecucin de pruebas y evaluacin de la ejecucin de las pruebas. Se suele mostrar con ejemplos. Criterio de entrada: lista de precondiciones para una prueba efectiva y eficiente con este patrn. Una implementacin no ha de ser probada hasta que no est lista para ser probada. Criterio de salida: criterio objetivo que ha de alcanzarse para dar por completa la prueba con este patrn. Por ejemplo, cobertura de sentencias a nivel de mtodo.
Consecuencias: prerrequisitos generales, costos, beneficios, riesgos y consideraciones en el uso de este patrn. Usos conocidos: cules son los usos conocidos de este patrn de diseo? Cules son los usos conocidos de los modelos de prueba y estrategias incorporadas en este patrn?Cul es la eficiencia y la efectividad de este patrn o estrategias similares establecidas por estudios empricos? Patrones relacionados: patrones de diseo similares o complementarios.
Herramientas
Hay herramientas que generan casos de prueba en forma inteligente, de alguna manera eligiendo un nmero relativamente limitado de casos de prueba.
Las herramientas pueden probar los casos (generan cdigo para el test driver).
Para sistemas embebidos de comunicaciones (como radios de dos vas), las herramientas se comunican con un modelo ejecutable de otros sistemas con los que se interacta.
Muchas gracias