aguirre jimenez

54
MODELO DE PRUEBAS MODELO DE PRUEBAS DE SOFTWARE DE SOFTWARE DARWIN JIMENEZ DARWIN JIMENEZ CARLOS EDUARDO AGUIRRE CARLOS EDUARDO AGUIRRE INGENIERIA DE SISTEMAS

Upload: faridrojas

Post on 28-Jun-2015

6.696 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Aguirre Jimenez

MODELO DE PRUEBAS MODELO DE PRUEBAS DE SOFTWAREDE SOFTWAREDARWIN JIMENEZDARWIN JIMENEZ

CARLOS EDUARDO AGUIRRECARLOS EDUARDO AGUIRRE

INGENIERIA DE SISTEMAS

Page 2: Aguirre Jimenez

CONTENIDOCONTENIDO

1.1. Definición de conceptosDefinición de conceptos

2.2. Fundamentos de las pruebas Fundamentos de las pruebas de softwarede software

3.3. Objetivos de la pruebaObjetivos de la prueba

4.4. Principios de la pruebaPrincipios de la prueba

5.5. Facilidad de la pruebaFacilidad de la prueba

6.6. Tipos de PruebasTipos de Pruebas

7.7. Proceso de PruebasProceso de Pruebas

Page 3: Aguirre Jimenez

CONTENIDOCONTENIDO

8.8. Enfoques de pruebasEnfoques de pruebas Prueba de la caja blancaPrueba de la caja blanca Prueba del camino básicoPrueba del camino básico Prueba de la estructura de Prueba de la estructura de

controlcontrol Prueba de la caja negraPrueba de la caja negra

Page 4: Aguirre Jimenez

1. DEFINICIONES DE 1. DEFINICIONES DE CONCEPTOSCONCEPTOS

1. Falla (failure): 1. Falla (failure): Ocurre cuando un Ocurre cuando un programa no se comporta de programa no se comporta de manera adecuadamanera adecuada..

2. Falta (fault): 2. Falta (fault): Tiene lugar en el Tiene lugar en el código del programa. La existencia código del programa. La existencia de una falta en el programa puede de una falta en el programa puede generar una generar una fallafalla en el sistema. en el sistema.

Page 5: Aguirre Jimenez

1. Definiciones de 1. Definiciones de ConceptosConceptos

3. Error: 3. Error: Es una acción humana que Es una acción humana que provoca que un software contenga provoca que un software contenga una falta. Un una falta. Un error error puede significar puede significar la existencia de una la existencia de una falta falta en el en el programa, lo cual hace que el programa, lo cual hace que el sistema sistema falle.falle.

Page 6: Aguirre Jimenez

1. Definiciones de 1. Definiciones de ConceptosConceptos

No se puede garantizar ni probarNo se puede garantizar ni probar

que un sistema jamás falle, si noque un sistema jamás falle, si no

que sólo se puede demostrar queque sólo se puede demostrar que

contiene faltas. No encontrarcontiene faltas. No encontrar

faltas no significa que la prueba faltas no significa que la prueba

haya sido exitosa. Solo lo es si se haya sido exitosa. Solo lo es si se

han encontrado faltas.han encontrado faltas.

Page 7: Aguirre Jimenez

2. Fundamentos de las 2. Fundamentos de las pruebas de Softwarepruebas de Software

El ingeniero intenta construir el El ingeniero intenta construir el software partiendo de un software partiendo de un concepto abstracto y llegando a concepto abstracto y llegando a una implementación tangible.una implementación tangible.

El ingeniero crea una serie de El ingeniero crea una serie de casos de prueba que intentan casos de prueba que intentan “demoler “ el software “demoler “ el software construido.construido.

Page 8: Aguirre Jimenez

3. Objetivos de las 3. Objetivos de las pruebaspruebas

La prueba es un proceso de La prueba es un proceso de ejecución de un programa con la ejecución de un programa con la intención de descubrir un error.intención de descubrir un error.

Un buen caso de prueba es aquel Un buen caso de prueba es aquel que tiene una alta probabilidad de que tiene una alta probabilidad de mostrar un error no descubierto mostrar un error no descubierto hasta entonces.hasta entonces.

Una prueba tiene éxito si descubre Una prueba tiene éxito si descubre un error no detectado hasta un error no detectado hasta entonces.entonces.

Page 9: Aguirre Jimenez

4. Principios de la 4. Principios de la PruebaPrueba

A todas las pruebas se les debería A todas las pruebas se les debería poder hacer un seguimiento has los poder hacer un seguimiento has los requisitos del cliente.requisitos del cliente.

Las pruebas debería planificarse Las pruebas debería planificarse mucho antes de su inicio.mucho antes de su inicio.

El principio de Pareto es aplicable a El principio de Pareto es aplicable a la prueba del Software: el 80% de la prueba del Software: el 80% de todos los errores descubiertos todos los errores descubiertos durante las pruebas surgen al hacer durante las pruebas surgen al hacer un seguimiento de sólo el 20% de un seguimiento de sólo el 20% de todos los módulos del programa.todos los módulos del programa.

Page 10: Aguirre Jimenez

4. Principios de la 4. Principios de la PruebaPrueba

Las pruebas deberían empezar por lo Las pruebas deberían empezar por lo pequeño y progresar hacia lo grande.pequeño y progresar hacia lo grande.

No son posible las pruebas No son posible las pruebas exhaustivas.exhaustivas.

Para ser más efectivas, las pruebas Para ser más efectivas, las pruebas deberían ser conducidas por un deberían ser conducidas por un equipo independiente.equipo independiente.

Page 11: Aguirre Jimenez

5. Facilidad de Prueba5. Facilidad de Prueba Es simplemente lo fácil que se puede Es simplemente lo fácil que se puede

probar un programa de probar un programa de computadora. Como la prueba es tan computadora. Como la prueba es tan profundamente difícil, merece la profundamente difícil, merece la pena saber que puede hacer para pena saber que puede hacer para hacerlo más sencillo.hacerlo más sencillo.

Debe existir una lista de comprobaciónDebe existir una lista de comprobación

que proporcione un conjunto de que proporcione un conjunto de

características que llevan a un características que llevan a un

software fácil de probar.software fácil de probar.

Page 12: Aguirre Jimenez

5. Facilidad de Prueba5. Facilidad de Prueba Principios:Principios: Operatividad: Operatividad: Cuanto mejor Cuanto mejor

funcione más eficientemente se funcione más eficientemente se pude probar.pude probar.

Observabilidad: Observabilidad: Lo que ves es lo Lo que ves es lo que pruebas.que pruebas.

Controlabilidad: Controlabilidad: Cuanto mejor Cuanto mejor podamos controlar el software, más podamos controlar el software, más se puede automatizar y optimizar.se puede automatizar y optimizar.

Page 13: Aguirre Jimenez

5. Facilidad de Prueba5. Facilidad de Prueba Principios:Principios: Capacidad de Descomposición: Capacidad de Descomposición:

Controlando el ámbito de las Controlando el ámbito de las pruebas, podemos aislar más pruebas, podemos aislar más rápidamente los problemas y llevar a rápidamente los problemas y llevar a cabo mejores pruebas de regresión.cabo mejores pruebas de regresión.

Simplicidad: Simplicidad: Cuanto menos haya Cuanto menos haya que probar, más rápidamente que probar, más rápidamente podremos probarlo.podremos probarlo.

Page 14: Aguirre Jimenez

5. Facilidad de Prueba5. Facilidad de Prueba Principios:Principios: Estabilidad: Estabilidad: Cuanto menos Cuanto menos

cambios, menos interrupciones a las cambios, menos interrupciones a las pruebas.pruebas.

Facilidad de comprensión: Facilidad de comprensión: Cuanta Cuanta más información tengamos, más más información tengamos, más inteligentes serán las pruebas.inteligentes serán las pruebas.

Page 15: Aguirre Jimenez

6. Tipos de Prueba6. Tipos de Prueba

Pruebas de Verificación: Pruebas de Verificación: Se revisa si el Se revisa si el resultado corresponde a la resultado corresponde a la especificación del sistema, es decir, especificación del sistema, es decir, si se está construyendo el sistema si se está construyendo el sistema de manera correcta.de manera correcta.

Pruebas de Validación: Pruebas de Validación: Se revisa si el Se revisa si el resultado es realmente lo que el resultado es realmente lo que el cliente quería. cliente quería.

Page 16: Aguirre Jimenez

6.1 Técnicas de Pruebas6.1 Técnicas de Pruebas

Pruebas de Regresión: Pruebas de Regresión: Tiene como Tiene como propósito verificar el sistema luego, propósito verificar el sistema luego, de haberle introducido cambios, por de haberle introducido cambios, por ejemplo después de corregir una ejemplo después de corregir una falta, de manera que se mantenga falta, de manera que se mantenga la funcionalidad especificada.la funcionalidad especificada.

Pruebas de Operación: Pruebas de Operación: Su objetivo es Su objetivo es verificar el sistema en operación por verificar el sistema en operación por un largo período bajo condiciones un largo período bajo condiciones normales de uso.normales de uso.

Page 17: Aguirre Jimenez

6.1 Técnicas de Pruebas6.1 Técnicas de Pruebas

Pruebas de Escala Completa: Pruebas de Escala Completa: Trata de Trata de verificar el sistema en su carga máxima verificar el sistema en su carga máxima mediante de los parámetros a su valor mediante de los parámetros a su valor límite y la interconexión del sistema con límite y la interconexión del sistema con un máximo de equipos y usuarios un máximo de equipos y usuarios simultáneos.simultáneos.

Pruebas de Rendimiento: Pruebas de Rendimiento: Tiene como Tiene como propósito medir la capacidad de propósito medir la capacidad de procesamiento del sistema bajo diferentes procesamiento del sistema bajo diferentes cargas, incluyendo espacio de cargas, incluyendo espacio de almacenamiento y utilización de la unidad almacenamiento y utilización de la unidad de procesamiento.de procesamiento.

Page 18: Aguirre Jimenez

6.1 Técnicas de Pruebas6.1 Técnicas de Pruebas

Pruebas de SobrecargaPruebas de Sobrecarga: Pretende observar : Pretende observar como se comparta el sistema cuando se le como se comparta el sistema cuando se le aplica una sobrecarga, más allá de las aplica una sobrecarga, más allá de las pruebas de escala completa y pruebas de escala completa y rendimiento.rendimiento.

Pruebas negativa: Pruebas negativa: Tiene como propósito Tiene como propósito medir el estrés del sistema en situaciones medir el estrés del sistema en situaciones inesperadas, como casos de uso que inesperadas, como casos de uso que normalmente no serían utilizados de normalmente no serían utilizados de manera simultánea.manera simultánea.

Page 19: Aguirre Jimenez

6.1 Técnicas de Pruebas6.1 Técnicas de Pruebas

Pruebas basada en requisitos o prueba de Pruebas basada en requisitos o prueba de casos de usocasos de uso: Intenta llevar a cabo : Intenta llevar a cabo pruebas basadas directamente en la pruebas basadas directamente en la especificación de requisitos.especificación de requisitos.

Pruebas ergonómicas: Pruebas ergonómicas: Tienen como propósito Tienen como propósito probar los aspectos ergonómicos del probar los aspectos ergonómicos del sistema, en otras palabras, las interfaces sistema, en otras palabras, las interfaces hombre-máquina en el caso de que éstas hombre-máquina en el caso de que éstas existan. Ejemplo: Si los menús son lógicos existan. Ejemplo: Si los menús son lógicos y legibles, si los mensajes del sistema son y legibles, si los mensajes del sistema son visibles, si se puede entender los visibles, si se puede entender los mensajes de falla, etc.mensajes de falla, etc.

Page 20: Aguirre Jimenez

6.1 Técnicas de Pruebas6.1 Técnicas de Pruebas

Pruebas de documentación de usuarioPruebas de documentación de usuario: Tiene : Tiene como propósito probar la documentación como propósito probar la documentación de usuario, incluyendo el manual de éste de usuario, incluyendo el manual de éste y la documentación de mantenimiento y y la documentación de mantenimiento y servicio.servicio.

Pruebas de aceptación o de validación: Pruebas de aceptación o de validación: Pretende lograr una revisión final por Pretende lograr una revisión final por parte de la organización que solicitó el parte de la organización que solicitó el sistema, lo cual, a menudo, significa sistema, lo cual, a menudo, significa validación del sistema. Llamado validación del sistema. Llamado Prueba Prueba Alfa o Prueba Beta.Alfa o Prueba Beta.

Page 21: Aguirre Jimenez

6.1 Técnicas de Pruebas6.1 Técnicas de Pruebas

Pruebas de documentación de usuarioPruebas de documentación de usuario: Tiene : Tiene como propósito probar la documentación como propósito probar la documentación de usuario, incluyendo el manual de éste de usuario, incluyendo el manual de éste y la documentación de mantenimiento y y la documentación de mantenimiento y servicio.servicio.

Pruebas de aceptación o de validación: Pruebas de aceptación o de validación: Pretende lograr una revisión final por Pretende lograr una revisión final por parte de la organización que solicitó el parte de la organización que solicitó el sistema, lo cual, a menudo, significa sistema, lo cual, a menudo, significa validación del sistema. Llamado validación del sistema. Llamado Prueba Prueba Alfa o Prueba Beta.Alfa o Prueba Beta.

Page 22: Aguirre Jimenez

6.1 Técnicas de Pruebas6.1 Técnicas de Pruebas

PRUEBA DE LA ESTRUCTURA DE PRUEBA DE LA ESTRUCTURA DE

CONTROLCONTROL Las pruebas son de gran importancia en la Las pruebas son de gran importancia en la

garantía de la calidad del software.garantía de la calidad del software. Estas variantes amplían la cobertura de la Estas variantes amplían la cobertura de la

prueba y mejoran la calidad de la prueba prueba y mejoran la calidad de la prueba de caja blanca.de caja blanca. Prueba de CondiciónPrueba de Condición Prueba de Flujo de DatosPrueba de Flujo de Datos Prueba de BuclesPrueba de Bucles

Page 23: Aguirre Jimenez

Prueba de condiciónPrueba de condición

Método de diseño de casos de prueba que Método de diseño de casos de prueba que ejercita las condiciones lógicas contenidas ejercita las condiciones lógicas contenidas en el módulo de un programa.en el módulo de un programa.

Esta prueba asegura en que cada Esta prueba asegura en que cada condición del programa no contenga condición del programa no contenga errores.errores.

Una condición simple es una variable Una condición simple es una variable lógica o una expresión relacional.lógica o una expresión relacional.

Page 24: Aguirre Jimenez

La expresión relacional adquiere la La expresión relacional adquiere la siguiente forma: siguiente forma: EE11 <operador <operador relacional>Erelacional>E22; ; donde donde EE1 y 1 y EE2 2 son son expresiones aritméticas y expresiones aritméticas y <operador <operador relacional> relacional> puede ser “<, <=, =, >, >=, puede ser “<, <=, =, >, >=, ≠” ≠”

Una condición compuesta está formada por Una condición compuesta está formada por dos o más condiciones simples, operadores dos o más condiciones simples, operadores lógicos o paréntesis. Los operadores lógicos lógicos o paréntesis. Los operadores lógicos permitidos en una condición compuesta permitidos en una condición compuesta incluye OR(|), AND(&), NOT.incluye OR(|), AND(&), NOT.

Una condición sin expresiones relacionadas Una condición sin expresiones relacionadas se le denomina expresión lógica.se le denomina expresión lógica.

Page 25: Aguirre Jimenez

Si una condición es incorrecta, Si una condición es incorrecta, entonces es incorrecto al menos un entonces es incorrecto al menos un componente de la condición. Los componente de la condición. Los errores de una condición pueden ser:errores de una condición pueden ser: Error en operador lógicoError en operador lógico Error en variable lógicaError en variable lógica Error en paréntesis lógicoError en paréntesis lógico Error en operador relacionalError en operador relacional Error en expresión aritméticaError en expresión aritmética

Page 26: Aguirre Jimenez

• Se han propuesto series de estrategias Se han propuesto series de estrategias de prueba de condiciones:de prueba de condiciones:– Prueba de ramificacionesPrueba de ramificaciones: Para una : Para una

condición compuesta C, es necesario ejecutar condición compuesta C, es necesario ejecutar al menos una vez las ramas verdadera y falsa al menos una vez las ramas verdadera y falsa de C y cada condición simple de C.de C y cada condición simple de C.

– Prueba del dominioPrueba del dominio: Requiere la realización : Requiere la realización de 3 o 4 pruebas para una expresión de 3 o 4 pruebas para una expresión relacional. relacional. EE11 <operador relacional> E <operador relacional> E2 2 se requieren tres se requieren tres pruebas para comprobar que el valor de Epruebas para comprobar que el valor de E11 es es mayor, igual o menor que el valor de Emayor, igual o menor que el valor de E2.2. Por Por ejemplo si el operador relacional es ejemplo si el operador relacional es incorrecto y Eincorrecto y E11 y E y E2 2 son correctos, entonces son correctos, entonces estas tres pruebas garantizan la detección de estas tres pruebas garantizan la detección de un error del operador relacional.un error del operador relacional.

Page 27: Aguirre Jimenez

Prueba de flujo de datosPrueba de flujo de datos Selecciona caminos de prueba de un programa Selecciona caminos de prueba de un programa

de acuerdo con la ubicación de las definiciones de acuerdo con la ubicación de las definiciones y los usos de las variables del programa.y los usos de las variables del programa.

Las estrategias de prueba de flujo de datos Las estrategias de prueba de flujo de datos son útiles para seleccionar caminos de prueba son útiles para seleccionar caminos de prueba de un programa que contenga sentencias if o de un programa que contenga sentencias if o bucles anidados.bucles anidados.

Necesitamos conocer la estructura de cada Necesitamos conocer la estructura de cada condición o bloque (seleccionando un camino condición o bloque (seleccionando un camino del programa, determinamos si el camino es del programa, determinamos si el camino es factible para el programa)factible para el programa)

Page 28: Aguirre Jimenez

Prueba de buclesPrueba de bucles

Técnica de prueba de caja Técnica de prueba de caja blanca que se centra en la blanca que se centra en la validez de las construcciones de validez de las construcciones de bucles. bucles.

Se pueden definir 4 clases Se pueden definir 4 clases diferentes de bucles: diferentes de bucles: Simples, Simples, Concatenados, Concatenados, Anidados, Anidados, No estructuradosNo estructurados

Page 29: Aguirre Jimenez

BuclesBuclessimplessimples

BuclesBuclesanidadosanidados

BuclesBuclesconcatenadosconcatenados Bucles noBucles no

estructuradosestructurados

Bucles

Page 30: Aguirre Jimenez

Bucles simples: Bucles simples: Se les debe aplicar el siguiente conjunto Se les debe aplicar el siguiente conjunto

de pruebas, donde n es el número máximo de pruebas, donde n es el número máximo de pasos permitidos por el buclede pasos permitidos por el bucle

1. Pasar por alto totalmente el bucle1. Pasar por alto totalmente el bucle

2. Pasar una sola vez por el bucle2. Pasar una sola vez por el bucle

3. Pasar dos veces por el bucle3. Pasar dos veces por el bucle

4. Hacer m pasos por el bucle con 4. Hacer m pasos por el bucle con m<nm<n

5. Hacer n-1 y n+1 pasos por el bucle5. Hacer n-1 y n+1 pasos por el bucle

Page 31: Aguirre Jimenez

Bucles anidados: Bucles anidados: Si se extendiera el enfoque de los Si se extendiera el enfoque de los

bucles simples a los bucles anidados, bucles simples a los bucles anidados, el número de posibles pruebas el número de posibles pruebas aumentaría geomé-tricamente a aumentaría geomé-tricamente a medida que aumenta el nivel de medida que aumenta el nivel de anidamiento. Esto llevaría a un anidamiento. Esto llevaría a un número imprescindible de pruebas. número imprescindible de pruebas.

Page 32: Aguirre Jimenez

Se sugiere un enfoque que ayuda a Se sugiere un enfoque que ayuda a reducir el número de pruebasreducir el número de pruebas1. Comenzar por el bucle más interior1. Comenzar por el bucle más interior

2. Llevar a cabo las pruebas de bucles 2. Llevar a cabo las pruebas de bucles simplessimples

3. Progresar hacia fuera, llevando a cabo 3. Progresar hacia fuera, llevando a cabo pruebas para el siguiente buclepruebas para el siguiente bucle

4. Continuar hasta que se hayan probado 4. Continuar hasta que se hayan probado todos los buclestodos los bucles

Page 33: Aguirre Jimenez

Bucles concatenados: Bucles concatenados: Se pueden probar mediante el Se pueden probar mediante el

enfoque definido para los bucles enfoque definido para los bucles simples, mientras cada uno de los simples, mientras cada uno de los bucles sea independiente del resto.bucles sea independiente del resto.

Bucles no estructurados: Bucles no estructurados: Esta clase de bucles se debe Esta clase de bucles se debe

rediseñar para que se ajusten a las rediseñar para que se ajusten a las construcciones de programación construcciones de programación estructurada.estructurada.

Page 34: Aguirre Jimenez

PRUEBA DE CAJA PRUEBA DE CAJA NEGRANEGRA

Se centra en los requisitos Se centra en los requisitos funcionales del software.funcionales del software.

Se trata de un enfoque Se trata de un enfoque complementario que intenta complementario que intenta descubrir diferentes tipos de descubrir diferentes tipos de errores de los métodos de caja errores de los métodos de caja blanca.blanca.

Page 35: Aguirre Jimenez

La prueba de caja negra intenta encontrar La prueba de caja negra intenta encontrar errores de las siguientes categorías:errores de las siguientes categorías: Funciones incorrectas o ausentesFunciones incorrectas o ausentes Errores de interfazErrores de interfaz Errores es estructura de datos o en Errores es estructura de datos o en

accesos a bases de datos externasaccesos a bases de datos externas Errores de rendimientoErrores de rendimiento Errores de inicialización y de terminaciónErrores de inicialización y de terminación

La prueba de Caja Negra tiende a aplicarse La prueba de Caja Negra tiende a aplicarse durante fases posteriores de la prueba, ya durante fases posteriores de la prueba, ya que centra su atención en el campo de la que centra su atención en el campo de la información.información.

Page 36: Aguirre Jimenez

Método de prueba basados Método de prueba basados en grafosen grafos La prueba empieza creando un grafo de La prueba empieza creando un grafo de

objetos y sus relaciones y después objetos y sus relaciones y después diseñando una serie de pruebas que cubran diseñando una serie de pruebas que cubran el grafo de manera que se ejerciten todos el grafo de manera que se ejerciten todos los objetos y sus relaciones para descubrir los objetos y sus relaciones para descubrir los errores.los errores.

Estos casos de prueba están diseñados Estos casos de prueba están diseñados para intentar encontrar errores en algunas para intentar encontrar errores en algunas de las relaciones.de las relaciones.

El grafo ayudaría a identificar aquellos El grafo ayudaría a identificar aquellos bucles que hay que probar.bucles que hay que probar.

Page 37: Aguirre Jimenez

Partición equivalentePartición equivalente Es un método de prueba de caja negra, Es un método de prueba de caja negra,

se dirige a la definición de casos de se dirige a la definición de casos de prueba que descubran clases de errores, prueba que descubran clases de errores, reduciendo así el número total de casos reduciendo así el número total de casos de prueba que hay de prueba que hay que desarrollar. que desarrollar.

El objetivo de partición equivalente es El objetivo de partición equivalente es reducir el posible conjunto de casos de reducir el posible conjunto de casos de prueba en uno más pequeño, un prueba en uno más pequeño, un conjunto manejable que evalúe bien el conjunto manejable que evalúe bien el software.software.

Page 38: Aguirre Jimenez

El diseño de casos de prueba para la El diseño de casos de prueba para la partición equivalente se basa en una partición equivalente se basa en una evaluación de las clases de equivalencia evaluación de las clases de equivalencia para una condición de entrada.para una condición de entrada.

Una clase de equivalencia representa un Una clase de equivalencia representa un conjunto de estados válidos o no válidos conjunto de estados válidos o no válidos para condiciones de entrada (es un valor para condiciones de entrada (es un valor numérico específico, un rango de valores, numérico específico, un rango de valores, un conjunto de valores relacionados o una un conjunto de valores relacionados o una condición lógica).condición lógica).

Page 39: Aguirre Jimenez

Sitio alquiler de películasSitio alquiler de películas Rango de valoresRango de valores

Alquiler para personas mayores 18 añosAlquiler para personas mayores 18 años ValorValor

Nº de películas que se alquilanNº de películas que se alquilan Conjunto de valores específicoConjunto de valores específico

Películas (Acción, Comedia, Infantil, Películas (Acción, Comedia, Infantil, Intriga)Intriga)

LógicoLógico ¿Es socio?¿Es socio?

Page 40: Aguirre Jimenez

Análisis de Valores Límite Análisis de Valores Límite (AVL)(AVL) Es una técnica de diseño de casos de prueba Es una técnica de diseño de casos de prueba

que complementa la prueba de Partición que complementa la prueba de Partición Equivalente. En lugar de realizar la prueba con Equivalente. En lugar de realizar la prueba con cualquier elemento de la partición equivalente, cualquier elemento de la partición equivalente, se escogen los valores en los extremos de la se escogen los valores en los extremos de la clase.clase.

Por ejemplo: si una condición de entrada Por ejemplo: si una condición de entrada especifica un rango delimitado por los valores especifica un rango delimitado por los valores a y b, se deben diseñar casos de prueba para a y b, se deben diseñar casos de prueba para los valores a y b y para los valores que se los valores a y b y para los valores que se encuentran por debajo y por encima.encuentran por debajo y por encima.

Page 41: Aguirre Jimenez

Prueba de ComparaciónPrueba de Comparación Aplicación en sistemas de alta fiabilidadAplicación en sistemas de alta fiabilidad Desarrollos paralelosDesarrollos paralelos Intercambio de casos de pruebaIntercambio de casos de prueba Desarrollo del software, las versiones de la Desarrollo del software, las versiones de la

aplicación se ejecutan en equipos aplicación se ejecutan en equipos independientes, usando las mismas independientes, usando las mismas especificaciones.especificaciones.

Se deben probar todas las versiones con Se deben probar todas las versiones con los mismos datos, para asegurar que los mismos datos, para asegurar que proporcionan una salida idéntica.proporcionan una salida idéntica.

Page 42: Aguirre Jimenez

Pruebas de interfaces gráficas de usuarioPruebas de interfaces gráficas de usuario Prueba de documentación y de ayudaPrueba de documentación y de ayuda

Es importante para la aceptación del programa.Es importante para la aceptación del programa. Revisar la guía de usuario o funciones de ayuda Revisar la guía de usuario o funciones de ayuda

en línea.en línea. Prueba de sistemas de tiempo realPrueba de sistemas de tiempo real

Prueba de tareasPrueba de tareas Prueba de comportamientoPrueba de comportamiento Prueba intertareasPrueba intertareas Prueba del sistemaPrueba del sistema

PRUEBA DE ENTORNOSPRUEBA DE ENTORNOS Y APLICACIONES ESPECIALIZADASY APLICACIONES ESPECIALIZADAS

Page 43: Aguirre Jimenez

6.2 Nivel de Pruebas6.2 Nivel de Pruebas

Pruebas de unidadPruebas de unidad: Mediante esta prueba : Mediante esta prueba sólo una unidad es probada como tal, sólo una unidad es probada como tal, como una clase, u paquete de servicio o como una clase, u paquete de servicio o un subsistema.un subsistema.

Pruebas de Integración: Pruebas de Integración: En ella se verifica En ella se verifica que las unidades trabajen juntas que las unidades trabajen juntas correctamente.correctamente.

Pruebas de Sistema: Pruebas de Sistema: Verifica el sistema Verifica el sistema completo o su aplicación como tal. Se completo o su aplicación como tal. Se toma el punto de vista del usuario final y toma el punto de vista del usuario final y los casos de uso de pruebas.los casos de uso de pruebas.

Page 44: Aguirre Jimenez

PRUEBA DE UNIDADPRUEBA DE UNIDAD

Pruebas de procedimientos o subrutinas. EnPruebas de procedimientos o subrutinas. En

un sistema orientado a objetos se aplican en un sistema orientado a objetos se aplican en

un nivel más alto, a partir de las clases. un nivel más alto, a partir de las clases.

Una prueba de unidad Una prueba de unidad consiste en una consiste en una

prueba estructural (o prueba estructural (o caja blancacaja blanca), lo cual ), lo cual

requiere conocer el diseño interno de la requiere conocer el diseño interno de la

unidad, y una prueba de especificación(de unidad, y una prueba de especificación(de

caja negracaja negra, basada sólo en la especificación , basada sólo en la especificación

del comportamiento externamente visible de del comportamiento externamente visible de

la unidad.la unidad.

Page 45: Aguirre Jimenez

PRUEBA DE UNIDADPRUEBA DE UNIDAD

Prueba de Especificación o de Caja Negra: Prueba de Especificación o de Caja Negra: Tiene como propósito verificar las Tiene como propósito verificar las relaciones de entrada y salida de una relaciones de entrada y salida de una unidad. Su objetivo es verificar que unidad. Su objetivo es verificar que hace hace la unidad, pero sin averiguar la unidad, pero sin averiguar como lo como lo hace.hace.

Prueba basada en estado: Prueba basada en estado: Verifica las Verifica las interacciones entre operaciones de una interacciones entre operaciones de una clase según cambios en los atributos de clase según cambios en los atributos de un objeto. Es necesario hacer pruebas del un objeto. Es necesario hacer pruebas del objeto de acuerdo con su ciclo de vidaobjeto de acuerdo con su ciclo de vida..

Prueba Estructural o de Caja Blanca: Prueba Estructural o de Caja Blanca: Verifica Verifica que la estructura interna de la unidad sea que la estructura interna de la unidad sea correcta.correcta.

Page 46: Aguirre Jimenez

PRUEBA DE INTEGRACIONPRUEBA DE INTEGRACIONDespués de haber probado todas las Después de haber probado todas las

unidades, éstas deben ser integradas en unidades, éstas deben ser integradas en

unidades más grandes hasta generar el unidades más grandes hasta generar el

sistema completo.sistema completo.

El propósito de la prueba de integración es El propósito de la prueba de integración es

probar que las diferentes unidades trabajen probar que las diferentes unidades trabajen

juntas de manera apropiada.juntas de manera apropiada.

Page 47: Aguirre Jimenez

7. Proceso de Pruebas7. Proceso de PruebasEl proceso de pruebas involucra consideraciones El proceso de pruebas involucra consideraciones

similares al del proceso de desarrollo, incluyendo similares al del proceso de desarrollo, incluyendo

estrategias, actividades y métodos, los cuales estrategias, actividades y métodos, los cuales

deben ser aplicados de manera concurrente con el deben ser aplicados de manera concurrente con el

proceso de desarrollo de software.proceso de desarrollo de software.

1. ESTRATEGIA DE LA PRUEBA1. ESTRATEGIA DE LA PRUEBA: :

Orden de Pruebas: Orden de Pruebas: Tienen como propósito Tienen como propósito definir en que momento y en que orden se definir en que momento y en que orden se aplicarán las pruebas. Diseño, implementación aplicarán las pruebas. Diseño, implementación y operación del sistema.y operación del sistema.

Page 48: Aguirre Jimenez

7. Proceso de Pruebas7. Proceso de Pruebas

ESTRATEGIA DE LA PRUEBA: ESTRATEGIA DE LA PRUEBA: Orden de Pruebas:Orden de Pruebas: Existen dos enfoques Existen dos enfoques

generales para el orden en que se efectuarán generales para el orden en que se efectuarán las pruebas:las pruebas:

De arriba hacia abajo: De arriba hacia abajo: Se deben desarrollar Se deben desarrollar inicialmente las interfaces entre subsistemas, inicialmente las interfaces entre subsistemas, para probar protocolos de alto nivel antes de ir para probar protocolos de alto nivel antes de ir a probar los niveles inferiores.a probar los niveles inferiores.

De abajo hacia arriba: De abajo hacia arriba: Certificar primero las Certificar primero las unidades de bajo nivel y luego las interfaces unidades de bajo nivel y luego las interfaces entre ellos.entre ellos.

Page 49: Aguirre Jimenez

7. Proceso de Pruebas7. Proceso de Pruebas

1. ESTRATEGIA DE LA PRUEBA: 1. ESTRATEGIA DE LA PRUEBA: Alcance de pruebas: Alcance de pruebas: Tiene como propósito Tiene como propósito

identificar el tipo, número y casos de pruebas identificar el tipo, número y casos de pruebas que se aplicarán para revisar los diferentes que se aplicarán para revisar los diferentes aspectos del sistemaaspectos del sistema

Automatización de la Prueba: Automatización de la Prueba: Tiene como Tiene como propósito reducir el esfuerzo y costo de las propósito reducir el esfuerzo y costo de las pruebas mediante automatización del proceso o pruebas mediante automatización del proceso o aspectos de él.aspectos de él.

Page 50: Aguirre Jimenez

7. Proceso de Pruebas7. Proceso de Pruebas

2. PLANEACION DE LA PRUEBA: 2. PLANEACION DE LA PRUEBA:

Comienza con el establecimiento de las estrategias Comienza con el establecimiento de las estrategias

de pruebas, lo que incluye la cuestión si estás se de pruebas, lo que incluye la cuestión si estás se

harán automática o manualmente y si existen harán automática o manualmente y si existen

programas y datos de prueba que puedan ser programas y datos de prueba que puedan ser

usados, posiblemente modificados o desarrollados usados, posiblemente modificados o desarrollados

de nueva cuentade nueva cuenta Estrategia de la pruebaEstrategia de la prueba Alcance de la pruebaAlcance de la prueba RecursosRecursos

Page 51: Aguirre Jimenez

7. Proceso de Pruebas7. Proceso de Pruebas

3. CONSTRUCCION DE LA PRUEBA: 3. CONSTRUCCION DE LA PRUEBA:

Se describe cada prueba y su propósito de manera Se describe cada prueba y su propósito de manera

general y detallada. Se debe describir exactamente general y detallada. Se debe describir exactamente

cómo se deberá ejecutar el caso de prueba, de cómo se deberá ejecutar el caso de prueba, de

manera que personas no familiarizadas con la manera que personas no familiarizadas con la

aplicación puedan ejecutar el caso.aplicación puedan ejecutar el caso. Ambiente de desarrollo o realAmbiente de desarrollo o real Tipo de software Tipo de software Tipo de hardwareTipo de hardware Equipo de pruebaEquipo de prueba Versión del sistemaVersión del sistema

Page 52: Aguirre Jimenez

7. Proceso de Pruebas7. Proceso de Pruebas

3. EJECUCION DE LA PRUEBA: 3. EJECUCION DE LA PRUEBA:

Durante esta etapa se utiliza la especificación del Durante esta etapa se utiliza la especificación del diseño de prueba y los reportes de ésta.diseño de prueba y los reportes de ésta.

La estrategia es aplicar de manera paralela el La estrategia es aplicar de manera paralela el mayor caso de pruebas posibles.mayor caso de pruebas posibles.

Se Ejecutan las pruebas automáticas y manuales Se Ejecutan las pruebas automáticas y manuales de manera correspondiente y se indican los de manera correspondiente y se indican los resultados esperados.resultados esperados.

Si alguna prueba falla, se interrumpe su aplicación Si alguna prueba falla, se interrumpe su aplicación y se anota el resultado para luego analizar el y se anota el resultado para luego analizar el defecto y corregirlo.defecto y corregirlo.

Page 53: Aguirre Jimenez

JTS 2008JTS 2008

V JORNADA DE TESTEO DE SOFTWARE 2008V JORNADA DE TESTEO DE SOFTWARE 2008

2,3 Y 4 DE ABRIL DE 20082,3 Y 4 DE ABRIL DE 2008

VALENCIA ESPAÑAVALENCIA ESPAÑA

VIDEO BLOG DE LA JORNADA

Page 54: Aguirre Jimenez

BIBLIOGRAFIABIBLIOGRAFIA

Ingenieria de Software Orientada a Objetos.-Alfredo Ingenieria de Software Orientada a Objetos.-Alfredo Weitzenfeld.- Editorial ThomsonWeitzenfeld.- Editorial Thomson