TÉCNICAS DE PRUEBA DEL SOFTWARE

Slides:



Advertisements
Presentaciones similares
Lic. Juan Gabriel Bernal López
Advertisements

Int. a la Ingeniería del Software UP 2004
Diccionario de Datos (DD)
PLANIFICACIÓN DE TESTING
También conocido como Diseño Lógico Rodrigo Salvatierra Alberú.
ANÁLISIS DE REQUERIMIENTOS
FUNDAMENTOS DE LAS PRUEBAS DEL SOFTWARE
Introducción a los Algoritmos
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
TÉCNICAS DE PRUEBA DEL SOFTWARE
TECNICAS DE PRUEBA DEL SOFTWARE
Prueba de la caja blanca
Pruebas de Unidad y Refactorización
METRICAS DE PROCESO Y PROYECTO
Resolución de Problemas Algoritmos y Programación
Laura Patricia Pinto Prieto
Diseño orientado al flujo de datos
Técnico en programación de Software
Ciclo de desarrollo del software
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Metodología de la Programación
Preguntas tipo test (I)
Preguntas tipo test (Tema I)
METODOLOGIA DE LA PROGRAMACION
METODOS DE PRUEBA DEL SOFTWARE
SISTEMAS DE INFORMACIÓN 2 SISTEMAS DE INFORMACIÓN 2.
Técnicas de Calidad en el Software
Proceso de información en la computadora
Prueba del Camino Básico
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:
Diseño del Software Diseño de datos Diseño arquitectónico
Pertinencia de la enseñanza del cómputo paralelo en el currículo de las ingenierías. Proyecto PAPIME PE

DISEÑO DE SOFTWARE 1ª. Parte
5.3 APROXIMACIONES AL DISEÑO
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.
Fundamentos de programación Organización de una computadora.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Metodología para solución de problemas
Ingeniería del Software
EXAMEN DE DISEÑO INSTRUCCIONAL PRIMER PARCIAL.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Metodología para la construcción de programas
Construcción de Software
Introducción a las pruebas del software.
Importancia en la efectividad del:
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Introducción a los programas
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
Capitulo 1 Roger S. Presman
Prueba de aplicaciones convencionales
Diseño del Software e Ingeniería del Software
Elaboración de algoritmos usando lógica de programación
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.
Desarrollo de lógica algorítmica.
TEMA: RESPONSABILIDAD DE ERRORES
Tecnicas del Mantenimiento del Software
Ciclo de desarrollo del software
República Bolivariana de Venezuela Universidad Nacional Experimental Politécnica de la Fuerza Armada (UNEFA) Carrera: Ingeniería de Sistemas Cátedra: Análisis.
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.
Entregables del Proyecto
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Ing. José David Ortiz Salas
Transcripción de la presentación:

TÉCNICAS DE PRUEBA DEL SOFTWARE El ingeniero intenta construir el software partiendo de un concepto Abstracto y llegando a una implementación Tangible

Objetivos de las pruebas 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. Nos quitan la idea que, normalmente, tenemos de que una prueba tiene éxito si no descubre errores.. Nuestro objetivo es diseñar pruebas que sistemáticamente saquen a la luz diferentes clases de errores, haciéndolo con la menor cantidad de tiempo y de esfuerzo.

FUNDAMENTOS DE LAS PRUEBAS El ingeniero crea una serie de casos de prueba que intentan «demoler» el software construido Las pruebas son uno de los pasos de la ingeniería del software que se puede ver (por lo menos, psicológicamente) como destructivo en lugar de constructivo.

A todas las pruebas se les debería poder hacer un seguimiento hasta cumplir con los requisitos del cliente Las pruebas deberían planificarse mucho antes de que empiecen. Principios de las pruebas El principio de Pareto es aplicable a la prueba del software. Las pruebas deberían empezar por «lo pequeño» y progresar hacia «lo grande Para ser más eficaces, las pruebas deberían ser realizadas por un equipo independiente. No son posibles las pruebas exhaustivas.

Operatividad. «Cuanto mejor funcione, más eficientemente se puede probar.» Controlabilidad. «Cuanto mejor podamos controlar el software, más se puede automatizar y optimizar.» Capacidad de descomposición. «Controlando el ámbito de las pruebas, podemos aislar más rápidamente los problemas y llevar a cabo mejores pruebas de regresión.» Facilidad de prueba Observabilidad. «Lo que ves es lo que pruebas.» Simplicidad. «Cuanto menos haya que probar, más rápidamente podremos probarlo.» Estabilidad. «Cuanto menos cambios, menos interrupciones a las pruebas.»

«Cuanta más información tengamos, más inteligentes serán las pruebas.» Una buena prueba tiene una alta probabilidad de encontrar un error. El diseño se ha entendido perfectamente Una buena prueba no debe ser redundante. El tiempo y los recursos para las pruebas son limitados. Facilidad de comprensión. Las dependencias entre los componentes internos, externos Una buena prueba debería ser «la mejor de la cosecha » Una buena prueba no debería ser ni demasiado sencilla ni demasiado compleja. Se han comunicado los cambias del diseño.

Es diseñada después de tener el código fuente LAS PRUEBAS DE LA CAJA NEGRA Se basa las pruebas sobre la interfaz del software operatividad del sistema DE LA CAJA BLANCA Se basa Es el minucioso examen de los detalles procedimentales (Código Fuente). Es diseñada después de tener el código fuente comprueban los caminos lógicos del software proponiendo casos de prueba que ejerciten conjuntos específicos de condiciones y/o bucles. Se puede examinar el «estado del programa» en varios puntos para determinar si el estado real coincide con el esperado o mencionado.

LA PRUEBA DEL CAMINO BÁSICO Permite al diseñador de casos de prueba obtener una medida de la complejidad lógica de un diseño procedimental y usar esa medida como guía para la definición de un conjunto básico de caminos de ejecución Construcciones estructurales en forma de grafo de flujo: Según-sea (Case) Secuencia Si-si-no Mientras Repetir-hasta- Según Sea ‘ (If) (While) (Untii) (Case) Donde cada círculo representa una o más sentencias, sin bifurcaciones, en LDP o código fuente

Diagramas de Flujo Diagrama de Flujo Representa la estructura y control del programa camino 1: 1-11 camino 2: 1-2-3-4-5-10-1-11 camino 3: 1-2-3-6-8-9-10-1-11 camino 4: 1-2-3-6-7-9-10-1-11 Fíjese que cada nuevo camino introduce una nueva arista. Cual es el nuevo camino? Grafo de Flujo Representa el Flujo de control lógico mediante notación ilustrada Cada circula es un Nodo y corresponde a una secuencia de cuadros de proceso y a un rombo de decisión

Complejidad ciclomática Definición: El número de caminos independientes del conjunto básico de un programa y nos da un límite superior para el número de pruebas que se deben realizar para asegurar que se ejecuta cada sentencia al menos una vez La complejidad ciclomática es una métrica del software que proporciona una medición cuantitativa de la complejidad lógica de un programa Un camino independiente es cualquier camino del programa que introduce, por lo menos, un nuevo conjunto de sentencias de proceso o una nueva condición

Determinamos la complejidad ciclomática del grafo de flujo resultante. Se determina aplicando uno de los algoritmos descritos en la Sección Se debe tener en cuenta que se puede determinar V(G) sin desarrollar el grafo de flujo, contando todas las sentencias condicionales del LDP V(G) = 6 regiones V(G) = 17 aristas - 13 nodos +2 = 6 V(G) = 5 nodos predicado + 1 = 6

Determinamos un conjunto básico de caminos linealmente independientes. Los puntos suspensivos (...) que siguen a los caminos 4,5 y 6 indican que cualquier camino del resto de la estructura de control es aceptable

Usando el diseño o el código como base, dibujamos el correspondiente grafo de flujo.

Actividades de prueba de software Actividades de desarrollo P. validación Doc. Requisitos Análisis Diseño P. integración Cód. Completo P. unidades Doc. Diseño Cod. Módulos Codificación Integración Mantenimiento

PRUEBA D FLUJO DE DATOS: DEF(S) = { X I la entencia S contiene una definición de X } USO(S) = { X I la sentencia S contiene un uso de X) PRUEBA DE BUCLES: Los bucles son la piedra angular de la inmensa mayoría de los algoritmos implementados en software. BUCLES SIMPLES:1. pasar por alto totalmente el bucle 2. pasar una sola vez por el bucle 3. pasar dos veces por el nucle 4. hacer m pasos por el bucle con m < n 5. hacer n - 1, n y n+l pasos por el bucle BUCLES ANIDADOS: Si extendiéramos el enfoque de prueba de los bucles simples a los bucles anidados, el número de posibles pruebas aumentm’a geométricamente a medida que aumenta el nivel de anidamiento. BUCLES NO ESTRUCTURADOS: Siempre que sea posible, esta clase de bucles se deben rediseñar para que se ajusten a las construcciones de programación estructurada BUCLES CONCATENADOS: Los bucles concatenados se pueden probar mediante el enfoque anteriormente definido para los bucles simples, mientras cada uno de los bucles sea independiente del resto.

MÉTODOS DE PRUEBA BASADOS EN GRAFOS El primer paso en la prueba de caja negra es entender los objetos6 que se modelan en el software y las relaciones que conectan a estos objetos. Modelado del flujo de transacción. Modelado de estado finito. Modelado del flujo de datos. Modelado de planificación.

MÉTODOS DE PRUEBA BASADOS EN GRAFOS PARTICIÓN EQUIVALENTE:La partición equivalente es un método de prueba de caja negra que divide el campo de entrada de un programa en clases de datos de los que se pueden derivar casos de prueba. ANÁLISIS DE VALORES LÍMITE: Por razones que no están del todo claras, los errores tienden a darse más en los límites del campo de entrada que en el «centro». MÉTODOS DE PRUEBA BASADOS EN GRAFOS PRUEBA DE COMPARACIÓN: En la mayoría de los casos, la comparación de las salidas se puede llevar a cabo mediante una herramienta automática. PRUEBA DE LA TABLA ORTOGONAL: el número de parámetros de entrada es equeño y los valores de cada uno de los parámetros está claramente delimitado. En cualquier caso, cuando el número de valores de entrada crece y el número de valores diferentes para cada elemento de dato se incrementa, la prueba exhaustiva se hace impracticable o imposible.