METODOS DE PRUEBA DEL SOFTWARE

Slides:



Advertisements
Presentaciones similares
INTRODUCCIÓN A LA VERIFICACION Y VALIDACION
Advertisements

Lic. Juan Gabriel Bernal López
BizAgi - Business Agility
Int. a la Ingeniería del Software UP 2004
PLANIFICACIÓN DE TESTING
Pruebas de Código Diplomado en Calidad en el Software NOTAS
Unidad 1 DISEÑO DE ALGORITMOS ING. Nelwi Baez. MSC
FUNDAMENTOS DE LAS PRUEBAS DEL SOFTWARE
Introducción a los Algoritmos
TÉCNICAS DE PRUEBA DEL SOFTWARE
TECNICAS DE PRUEBA DEL SOFTWARE
Pruebas del software parte 2
Pruebas Orientadas a Objeto
Prueba de la caja blanca
Laura Patricia Pinto Prieto
Ing. Esp. Ricardo Cujar. El computador: es una máquina que permite hacer tareas aritmético y lógicas de una manera fácil, consta de software y hardware.
Técnico en programación de Software
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Modelos de confiabilidad
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Preguntas tipo test (I)
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Preguntas tipo test (Tema I)
Administración de Procesos de Pruebas
Enrique Cardenas Parga
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
ANALISIS SINTACTICO El análisis gramatical es la tarea de determinar la sintaxis, o estructura, de un programa. Por esta razón también se le conoce como.
TAD_Ana Lilia Laureano/UAM-A1 Tipos Abstractos de Datos y Asertos Ana Lilia Laureano Cruces Universidad Autónoma Metropolitana-Azcapotzalco.
Diccionario de datos en Análisis y Diseño Estructurado

Programación de Computadores
Técnicas de Calidad en el Software
FORMULACIÓN DE ALGORITMOS
Métricas del Software Medidas o conjunto de éstas que nos permite conocer o estimar el tamaño u otra característica sobre un producto de software.Objetivo:
Capítulo 2 – Estructuras de Control
DISEÑO DE SOFTWARE 1ª. Parte
Programación I Universidad Nacional de Luján
PROGRAMACIÓN PROCEDIMENTAL
ISF5501 Ingeniería de Software
Diseño de algoritmos La computadora puede realizar procesos y darnos resultados, sin que tengamos la noción exacta de las operaciones que realiza. Con.
Investigación Experimental
Informática Ingeniería en Electrónica y Automática Industrial
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Módulo 8: Manejo de Errores y Excepciones
Ingeniería del Software
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Introducción a las pruebas del software.
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Ing. Noretsys Rodríguez. Definición de Conceptos  Falla: Ocurre cuando un programa no se comporta de manera adecuada. Es una propiedad estadística de.
Las Pruebas del Software y sus Fundamentos
ALGORITMO QUE ES ??.
Prueba de aplicaciones convencionales
Roles de Open UP.
TIPOS DE PRUEBAS DEL SOFTWARE
Elaborado por: Mayoral Cruz Matilde Morales Espinoza Anllhins
Introducción. El desarrollo de sistemas de software implica una serie de actividades de producción en las que las posibilidades de que aparezca el fallo.
TEMA: DISEÑO DE LA SOLUCION INTREGRANTES DE EQUIPO: ERIKA CRUZ MARTINEZ RODOLFO LOPEZ ANOTA LUIS ARMANDO LIÑA QUECHA JOSE FRANCISCO MEZO VARELA LUIS ENRIQUE.
Ciclo de desarrollo del software
Proceso de desarrollo de Software
Pruebas de Software Ing. José Manuel Poveda.
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
6.6 Administración de defectos
Modelo de procesos de software
Bachillerato Ingeniería en Informática Fundamentos de Computación.
Productos de Pruebas Hace hambre!! . Las bases. La verificación consiste en corroborar que el programa respeta su especificación, mientras que validación.
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 más probabilidad.
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
TÉCNICAS DE PRUEBA DEL SOFTWARE
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Transcripción de la presentación:

METODOS DE PRUEBA DEL SOFTWARE

Introducción ¿Qué es probar software? Algunas definiciones incorrectas: Probar es demostrar que no hay errores presentes en un programa. El propósito de probar es mostrar que el programa realiza correctamente las funciones esperadas. La definición Correcta Probar es el proceso ejecución de un programa con el fin de encontrar errores. ¿Por qué Probar Software?

Pruebas del Software Otras Definiciones Verificar. Validar. Pruebas. Caso de Prueba. Defecto. Fallo. Error.

Relación entre error, defecto y fallo

Objetivos de la Prueba. La prueba es el proceso de ejecución de un programa con la intención de descubrir un error. Un buen caso de prueba es aquel que tiene una alta probabilidad de mostrar un error no descubierto hasta entonces. Una prueba tiene éxito si descubre un error no detectado hasta entonces.

Principios de las pruebas A todas las pruebas se les debería poder hacer un seguimiento hasta los requisitos del cliente. Las pruebas deberían planificarse mucho antes de que empiecen. Las pruebas deberían empezar por “lo pequeño” y progresar hacia “lo grande”.

Principios de las pruebas No son posibles las pruebas exhaustivas. Para ser más eficaces (pruebas con la más alta probabilidad de encontrar errores), las pruebas deberían ser realizadas por un equipo independiente.

Principios de las pruebas Se debe inspeccionar a conciencia el resultado de cada prueba para, así, poder descubrir posibles síntomas de defectos. Cada caso de prueba debe definir el resultado de salida esperado. Al generar casos de prueba, se deben incluir tanto datos de entrada válidos y esperados como no válidos e inesperados.

Principios de las pruebas Las pruebas deben centrarse en dos objetivos (es habitual olvidar el segundo) Probar si el software no hace lo que debe hacer Probar si el software hace lo que no debe hacer, es decir si provoca efectos secundarios Se deben evitar los casos desechables.

Principios de las pruebas No deben hacerse planes de prueba suponiendo que, prácticamente, no hay defectos en los programas, y dedicando pocos recursos a las pruebas. La experiencia indica que donde hay un defecto hay otros. Las pruebas son una tarea creativa como el desarrollo de software.

Facilidad de Prueba Operatividad Observabilidad Controlabilidad Capacidad de descomposición Simplicidad Estabilidad Facilidad de comprensión

Bondad de una Prueba Debe tener una alta probabilidad de encontrar un error. No debe ser redundante. Debe ser la mejor de todas las posibles. No debe ser ni demasiado sencilla ni demasiado compleja.

El proceso de Prueba La depuración (localización y corrección de defectos). El análisis de la estadística de errores.

Ciclo completo de las Pruebas

Enfoque de Diseño de Casos de Prueba Enfoque estructural o de caja blanca. Enfoque funcional o de caja negra. Enfoque Aleatorio.

Pruebas de Caja Blanca Garanticen que se ejercita por lo menos una vez todos los caminos independientes de cada módulo. Ejerciten todas las decisiones lógicas en sus vertientes verdadera y falsa. Ejecuten todos los bucles en sus límites y con sus límites operacionales. Ejerciten las estructuras internas de datos para asegurar su validez.

Criterios de Cobertura lógica Cobertura de Sentencias. Cobertura de decisiones. Cobertura de Condiciones. Criterios de decisión/Condición. Criterio de Condición Múltiple. Criterio de Cobertura de Caminos (impracticable) Menos Riguroso (Mas Barato) Más Riguroso (Más Caros)

Grafo de Flujo de las Estructuras Básicas de programa X X X Mientras x Hacer … (While x Do … ) Secuencia Si x Entonces… (If x Then … Else…) Hacer … hasta x (Do … Until x) Repetir Separar todas las condiciones Agrupar sentencias ‘simples’ en bloques Numerar todos los bloques y tambien las condiciones

Grafo de Flujo de un programa (Pseudocodigo) Abrir Archivos; Leer archivo ventas, al final indicar no mas registros Limpiar linea de impresión 1 WHILE (Haya registros ventas) DO 2 Total Nacional = 0 Total Extranjero = 0 3 WHILE (haya reg. ventas) y (mismo producto) DO 4 IF (Nacional) THEN 5 Sumar venta Nacional a Total Nacional ELSE 6 Sumar venta extranjero a total extranjero a12 END IF 7 8 Leer Archivo ventas, al final indicar no mas registros END WHILE 9 Escribir línea de listado Limpiar área de impresión 10 END WHILE 11 Cerrar Archivos

Variantes de Prueba de Caja Blanca a) Prueba del Camino Básico. b) Prueba de Condición. c) Prueba de Flujo de Datos. d) Prueba de Bucles.

Prueba del camino Básico Complejidad Ciclomatica(La complejidad de McCabe V (G)) La métrica de McCabe ha sido muy popular en el diseño de pruebas. Es un indicador del número de caminos independientes que existen en un grafo.

Formas de Calcular la Complejidad Ciclomática V(G) V (G) = a – n + 2 V (G) = r V (G) = c + 1 Donde a : # de arcos o aristas del grafo. n : # de nodos. r : # de regiones cerradas del grafo. c : # de nodos de condición.

¿Qué es lo que se logra con la complejidad ciclomática? V (G) marca el límite mínimo de casos de prueba para un programa. Cuando V (G) >10 la probabilidad de defectos en el módulo o programa crece mucho entonces quizás sea interesante dividir el módulo.

Ejemplo de calculo de V (G) 1 2 3 4 5 6 7 8 9 10 11 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 Región 1 Región 2 Región 3 Región 4 Región 5 a) V (G) =14-11+2=5 b) V (G) = 5 Regiones Cerradas. c) V (G) = 4+1= 5 Condiciones

Prueba de Condición Ventajas La cobertura de la prueba de una condición es sencilla. La cobertura de la prueba de las condiciones de un programa da una orientación para generar pruebas adicionales del programa.

Estrategias de prueba de Condiciones Prueba de Ramificaciones. Prueba de Dominio. E1<operador-relacional>E2 Se necesitan 2n (n>0) pruebas como máximo para encontrar errores.

Prueba de flujo de datos Esta técnica selecciona caminos de un programa de acuerdo a las definiciones y uso de las variables. El enfoque de prueba de flujo de datos es efectivo para la protección contra errores.

Prueba de bucles Tipos de pruebas: Bucles simples. Bucles Anidados. Bucles Concatenados. Bucles no estructurados.

Pruebas de Caja Negra. Intenta encontrar errores de las siguientes categorías: Funciones Incorrectas o Ausentes. Errores de Interfaz. Errores en estructuras de datos o acceso a bases de datos externas. Errores de rendimiento. Errores de inicialización y terminación.

Pruebas de Caja Negra. Variantes de pruebas de caja negra. a) Métodos de prueba basados en grafos. b) Partición Equivalente. c) Análisis de valores límite. d) Prueba de Comparación. e) Conjetura de Errores.

Métodos de prueba basados en grafos Pasos a seguir para una prueba de caja Negra: Entender los objetos que se van a modelar y las relaciones que conectan a estos. Definir una serie de pruebas que verifique que “todos los objetos tienen entre ellos la relaciónes esperadas”

Partición equivalente Pasos para identificar clases de equivalencia. Identificación de las condiciones de entrada del programa. Identificar las clases de equivalencia: Datos válidos. Datos no válidos.

Partición equivalente Pasos para identificar casos de prueba. Asignar un número único para cada clase de equivalencia. Escribir casos de pruebas para todas las clases válidas. Escribir casos de pruebas para todas las clases no válidas.

Ejemplo de clases de equivalencia Aplicación bancaria en la que el operador debe proporcionar un código, un nombre y una operación. Condición de Entrada Clases Válidas Clases Inválidas Código de Área # de 3 dígitos que no empieza con 0 ni 1: 1) 200≤ código ≤ 999 2) Código < 200. 3) Código > 999. 4) No es número. Nombre Para identificar la operación 5) Seis caracteres. 6) Menos de 6 caracteres. 7) Más de 6 caracteres. Orden Una de las Siguientes 8) “Cheque” 9) “Depósito” 10) “Pago factura” 11)“Retiro de fondos” 12) Ninguna orden válida

Análisis de valores limite Las reglas para identificar las clases son: Si una condición de entrada especifica un rango que deben generar casos para los extremos. Si la condición de entrada especifica un número finito y consecutivo de valores, escribir casos para los números máximo, mínimo, uno más del máximo y uno menos del mínimo de valores Usar la regla 1 para la condición de salida. Usar la regla 2 para cada condición de salida.

Prueba de Comparación Se desarrollan versiones independientes de una aplicación con las mismas especificaciones. Probar todas las versiones con los mismos datos de prueba. Luego se ejecutan las versiones en paralelo y se hace una comparación en tiempo real de los resultados.

Conjetura de Errores Enumerar una lista de equivocaciones que pueden cometer los desarrolladores. Generar casos de prueba en base a dicha lista. La generación de casos se obtiene en base a la intuición o la experiencia.

Pruebas Aleatorias Se simula los posibles datos de entrada en la secuencia y frecuencia que pueden aparecer en la practica. Si el proceso de generación se ha realizado correctamente, se crearán eventualmente todas las posibles entradas del programa en todas las posibles combinaciones y permutaciones. Baja probabilidad de encontrar errores.

BIBLIOGRAFIA Fairley R. Ingeniería de Software. Pressman, R.S. Ingeniería del Software. Un enfoque práctico.