Pruebas de Código Diplomado en Calidad en el Software NOTAS

Slides:



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

SISTEMAS DE INFORMACIÓN I
PLANIFICACIÓN DE TESTING
Fundamentos de Diseño de Software INFT.1
También conocido como Diseño Lógico Rodrigo Salvatierra Alberú.
Pruebas de Diseño Diplomado en Calidad en el Software NOTAS
¿Qué es Software Testing?
Pruebas de Requerimientos
FUNDAMENTOS DE LAS PRUEBAS DEL SOFTWARE
Introducción a los Algoritmos
Pruebas Orientadas a Objeto
Resolución de Problemas Algoritmos y Programación
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.
Diseño orientado al flujo de datos
Introducción a la Programación
Técnico en programación de Software
Tipo de Dato Abstracto Tipos de datos:
Preguntas tipo test (Tema I)
IEEE-std Práctica Recomendada para la Especificación de Requerimientos de Software Fuente: IEEE Recommendad Practice for Software Requirements.
Administración de Procesos de Pruebas
Evaluación de Productos
CICLO DE VIDA DE UN PROYECTO DE SOFTWARE
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.
Tema 6: Clases Antonio J. Sierra.
METODOS DE PRUEBA DEL SOFTWARE
SISTEMAS DE INFORMACIÓN 2 SISTEMAS DE INFORMACIÓN 2.
TRADUCTOR DE UN PROGRAMA
Semana 5 Subprogramas..

DISEÑO DE SOFTWARE 1ª. Parte
ESTRUCTURA DE DATOS ESD-243
ISF5501 Ingeniería de Software
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Modelos de desarrollo de Software
Ingeniería del Software
Elementos básicos del lenguaje
Metodología para la construcción de programas
Introducción a la tecnología Realizado por: Miguel Ángel Arias.
TEMA 10: DIAGRAMA DE: OBJETOS, SECUENCIA Y DESPLIEGUE EN UML
Representación de Algoritmos
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Trainning DFD.
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
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.
Metodología de la programación
Las Pruebas del Software y sus Fundamentos
ASIGNACIÓN DE ROLES.
Alexander Aristizabal Ángelo flores herrera
Diseño de Sistemas.
Elaboración de algoritmos usando lógica de programación
TIPOS DE PRUEBAS DEL SOFTWARE
Ingeniería de Requerimientos
Introducción al proceso de verificación y validación.
Desarrollo de lógica algorítmica.
TEMA: RESPONSABILIDAD DE ERRORES
Ciclo de Vida del Software
Ciclo de desarrollo del software
Proceso de desarrollo de Software
6.6 Administración de defectos
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
Taller de investigación 1
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.
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
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.
El Conjunto de Datos de Prueba Auditoría Operativa y de Sistemas de Información.
Verificación y Validación del Software
Entregables del Proyecto
Transcripción de la presentación:

Pruebas de Código Diplomado en Calidad en el Software NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Ejercicio Verificación de Código Diplomado en Calidad en el Software Para el código dado del problema del triángulo, verifique si el programa hace lo correcto. Utilice cualquier técnica que Ud. conozca y considere útil. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Actividades de la Verificación de Código Diplomado en Calidad en el Software Comparar el código con las especificaciones del diseño interno. Examinar el código contra un checklist específico para el lenguaje. Utilizar herramientas de análisis estático para checar el cumplimiento con los requerimientos de contenido y sintáctico. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Actividades de la Verificación de Código Diplomado en Calidad en el Software Verificar la correspondencia de términos en el código con el diccionario de datos y la especificación de diseño interna. Buscar por nuevas condiciones límite, posibles cuellos de botella para el rendimientos, y otras consideraciones internas que puedan formar la base para pruebas de validación adicional. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Checklist para Verificación de Código Diplomado en Calidad en el Software Errores en la referencia de datos ¿Se hace referencia a una variable no asignada o no inicializada? Errores en la declaración de datos ¿Hay variables con nombres similares? ¿Hay variables con nombres no significativos? Errores de cómputo ¿Es la variable a donde se asigna una expresión, de menor capacidad que la expresión asignada? NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Checklist para Verificación de Código Diplomado en Calidad en el Software Errores en la comparación ¿Son manejadas adecuadamente las reglas de conversión entre datos o variables de tipo inconsistente? Errores en el Flujo de Datos ¿Existe la posibilidad de salir de un ciclo anticipadamente? NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Checklist para Verificación de Código Diplomado en Calidad en el Software Errores en la Interfaz Si un módulo tienen múltiples puntos de entrada: ¿existe un parámetro que no sea referenciado en el punto de entrada actual? Errores de Entrada/Salida ¿Hay errores gramaticales u ortográficos en el texto de salida del programa? Errores de Portabilidad ¿Cómo están organizados o empaquetados los datos? NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Validación del Software Diplomado en Calidad en el Software Validación del Software Introducción Métodos de Caja Negra Métodos de Caja Blanca Actividades de Validación Juan Antonio Vega Fernández  Derechos Reservados, 1999

Introducción a la Validación del Software Diplomado en Calidad en el Software Introducción a la Validación del Software Juan Antonio Vega Fernández  Derechos Reservados, 1999

Axiomas de las Pruebas de Validación Diplomado en Calidad en el Software (1) Testing se utiliza para mostrar la presencia de errores, pero nunca su ausencia. (2) Uno de los problemas más dificiles de testing es saber cuándo parar. (3) Evite casos de pruebas no planeados, no reutilizables y que se pueden arrojar a la basura, a menos que se esté probando un prototipo que después se va a arrojar a la basura. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Axiomas de las Pruebas de Validación Diplomado en Calidad en el Software (4) Una parte necesaria de los casos de prueba es la definición del resultado o salida esperada. Siempre compare cuidadosamente el resultado actual con el esperado para todos los casos de prueba. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Axiomas de las Pruebas de Validación Diplomado en Calidad en el Software (5) Los casos de prueba deben ser escritos para condiciones de entrada inválidos e inesperados, al igual que para condiciones válidas y esperadas. Inválido se define como una condición que está fuera del conjunto de condiciones válidas, y deberá ser diagnosticado como tal por el programa. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Axiomas de las Pruebas de Validación Diplomado en Calidad en el Software (6) Los casos de prueba deben ser escritos para generar condiciones de salida esperadas. Los testers con menos experiencia tienden a pensar desde la perspectiva de las entradas. Los testers con más experiencia determinan las entradas requeridas para generar un conjunto prediseñado de salidas. Asegúrese de incluir la salida “Inválida” en ese conjunto. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Axiomas de las Pruebas de Validación (7) Con la excepción de las pruebas unitarias y de integración, un programa no deberá ser probado por la persona u organización que lo desarrolló. (8) El número de errores no descubiertos es directamente proporcional al número de errores descubiertos. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Cobertura de Pruebas Diplomado en Calidad en el Software ¿Cómo medimos que tan bien probado fue un producto? ¿En que grado nuestros casos de prueba cubren al producto? ¿Cómo medimos que tan buen trabajo estamos haciendo como testers? NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Cobertura de Pruebas Un caso de pruebas . . . Diplomado en Calidad en el Software Un caso de pruebas . . . Cubre cierta parte de los requerimientos Cubre cierta parte de la funcionalidad (Diseño Funcional) Cubre cierta parte de la lógica interna del programa Lo que se debe hacer es generar suficientes casos de prueba para cubrir todos los puntos de cada nivel. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Estrategias de Pruebas Diplomado en Calidad en el Software Caja Negra Se realizan a partir de las especificaciones del diseño funcional sin importar la estructura interna del programa. En la práctica es importante probar, o al menos hacer los planes de prueba, de los requerimientos y el diseño funcional sin tener mucho conocimiento del código. El conocer el código contamina la manera como se ven los requerimientos. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Estrategias de Pruebas Diplomado en Calidad en el Software Caja Blanca Se realizan a partir de las especificaciones del diseño interno y del código. Estas pruebas no detectan funciones faltantes u omisiones. Son necesarias para probar rutas lógicas que no son discernibles en la funcionalidad externa (ejem. una función matemática que tiene dos algoritmos diferentes dependiendo de los datos). NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

La fuente de las Pruebas Diplomado en Calidad en el Software ¿De dónde sacamos los casos de prueba que validan al código? Documento de los requerimientos Documento del diseño funcional Documento del diseño interno NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Estrategias de Validación Diplomado en Calidad en el Software Pruebas basadas en requerimientos Estrategia de Caja Negra Pruebas funcionales Pruebas internas Estrategia de Caja Blanca NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Requerimientos de las Pruebas de Validación Diplomado en Calidad en el Software Definición de Resultados Si el resultado esperado no está especificado, es muy fácil interpretar el resultado obtendio como el correcto “El ojo ve lo que quiere ver.” (Myers, 1979). Repetición Si un error no se puede repetir, no es error. Es muy difícil en un ambiente de multiprocesamiento (o multi-hilos) asíncrono. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Definiciones de la IEEE/ANSI Diplomado en Calidad en el Software Una prueba (i) Una actividad en la cual el sistema o componente es ejecutado bajo condiciones específicas, los resultados son observados o grabados, y se hace una evaluación de algunos aspectos del sistema o componente. (ii) Un conjunto de uno o más casos de pruebas. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Definiciones de la IEEE/ANSI Diplomado en Calidad en el Software Un caso de prueba (i) Un conjunto de entradas de prueba, condiciones de ejecución, y resultados esperados desarrollados para un objetivo particular. (ii) La entidad más pequeña que siempre es ejecutada como una unidad, de principio a fin. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Definiciones de la IEEE/ANSI Diplomado en Calidad en el Software Un procedimiento de prueba (i) Las instrucciones detalladas para la implantación, ejecución y evaluación de los resultados para un caso de pruebas dado. (ii) Un caso de pruebas puede ser usado en uno o más procedimientos de prueba. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Métodos de Validación Métodos de Caja Negra Métodos de Caja Blanca Diplomado en Calidad en el Software Métodos de Caja Negra Partición de Equivalencias Análisis de valores límite Adivinar errores Grafos causa efecto Pruebas de sintáxis Pruebas de Transición de estados Matriz de Grafos Métodos de Caja Blanca Cobertura de sentencias Cobertura de decisiones Cobertura de condiciones Cobertura de rutas NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Partición de Equivalencia Diplomado en Calidad en el Software Partición de Equivalencia NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Partición de Equivalencias Diplomado en Calidad en el Software Es un proceso sistemático que identifica un conjunto de clases interesantes de condiciones de entrada a ser probados. Cada clase es representativa o cubre un conjunto grande de otras pruebas. Si se aplica partición, el producto se comportará de la misma manera para todos los miembros de las clases. El objetivo es minimizar el número de casos de prueba requeridos para cubrir las condiciones de entrada. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Pasos para la Partición de Pruebas Diplomado en Calidad en el Software (1) Identificar las Clases de Equivalencia (CE) (2) Identificar los Casos de Prueba NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Identificación de Clases de Equivalencia Diplomado en Calidad en el Software Para cada entrada externa: (1) Si la entrada especifica un rango de valores válidos, define una CE válida (dentro del rango) y dos CE inválidas (una fuera de cada límite del rango). Ejemplo: Si la entrada requiere un mes en el rango de 1-12, define un mes válido, uno <1, y otro >12. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Identificación de Clases de Equivalencia Diplomado en Calidad en el Software (2) Si la entrada especifica un número (N) de valores válidos, define una CE válida y dos CE inválidas , una <N y otra >N. Ejemplo: En el programa del triángulo, define un caso con tres valores (1, 3, 3), otro con dos o menos valores (1, 3) y otro con cuatro o más valores (1, 2, 3, 4). NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Identificación de Clases de Equivalencia Diplomado en Calidad en el Software (3) Si la entrada especifica un conjunto de valores válidos, define una CE válida (dentro del conjunto) y otra CE inválidas (fuera del conjunto). Ejemplo: Si un programa requiere un nombre del conjunto [HUGO, PACO, LUIS], selecciona un nombre válido [HUGO], y otro inválido [PANCHO]. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Identificación de Clases de Equivalencia Diplomado en Calidad en el Software (4) Si hay razones para creer que el programa trata cada valor de entrada diferente, entonces hay que definir una CE válida para cada entrada válida. Ejemplo: Si un programa que recibe un número trata a los pares de una forma y a los impares de otra. Hay que definir un número válido par y otro válido impar. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Identificación de Clases de Equivalencia Diplomado en Calidad en el Software (5) Si la entrada especifica una situación obligatoria, define una CE válida y otra inválida. Ejemplo: Si el primer caracter de una entrada tiene que ser cualquier letra del alfabeto, define una entrada con un primer caracter que sea letra del alfabeto (H567634) y otra entrada con un primer caracter numérico (1234567). NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Identificación de Clases de Equivalencia Diplomado en Calidad en el Software (6) Si hay alguna razón para creer que los elementos en una CE no son tratados de manera idéntica, subdivide la CE en clases más pequeñas. Ejemplo: Para el programa de los números pares e impares, una CE son los pares y otra CE son los impares. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Identificación de los Casos de Prueba Diplomado en Calidad en el Software (1) Asignar un número único a cada CE (2) Hasta que todas las CE válidas hayan sido cubiertas por casos de prueba: Escribe un nuevo caso de prueba cubriendo tantas CE no cubiertas como sea posible. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Identificación de los Casos de Prueba (3) Hasta que todas las CE inválidas hayan sido cubiertas por casos de prueba: Escribe un nuevo caso de prueba que cubra una y solo una CE no cubierta. (4) Si se prueban múltiples CE inválidas en el mismo caso de prueba, algunas de estas pruebas nunca van a ser ejecutadas porque la primera prueba puede enmascarar otras pruebas o terminar la ejecución del caso de prueba. Diplomado en Calidad en el Software NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Análisis de Valores Límite Diplomado en Calidad en el Software Análisis de Valores Límite NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Análisis de Valores Límite Diplomado en Calidad en el Software Es una variante y refinamiento de la partición de equivalencia con dos diferencias principales: (1) En lugar de seleccionar cualquier elemento en una clase de equivalencia como representativo, los elementos son seleccionados de manera que cada orilla de la CE sea probada. (2) En vez de concentrarse exclusivamente en condiciones de entrada, se exploran las condiciones de salida definiendo las CE de salida. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Guía para el Análisis de Valores Límite Diplomado en Calidad en el Software Si una entrada especifica un rango de valores válidos, escribe casos de prueba para los límites del rango y para las condiciones justo fuera de los límites. Ejemplo: Si el programa requiere una entrada que sea un número real en el rango de 0.0 a 90.0, escribe casos de prueba para 0.0, 90.0, -0.0001, y 90.0001. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Guía para el Análisis de Valores Límite Si para una entrada se especifica un número de valores válidos, escribe casos de prueba para los número límite de entradas y para las condiciones justo fuera de los límites. Ejemplo: Si el programa requiere de dos a cinco datos de entradas, escribir casos de prueba para 2, 5, 1, y 6 datos de entrada. Usar estos dos lineamientos para cada condición de salida. Diplomado en Calidad en el Software NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Ejercicio Diplomado en Calidad en el Software Realice la Partición de Equivalencia y el Análisis de Valores Límite para el Diseño Funcional siguiente. Trabaje en equipos pequeños de 2 ó 3 personas. Utilice el formato incluído para la Partición de Equivalencias. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Adivinar Errores Diplomado en Calidad en el Software Es un enfoque práctico basado en la intuición y experiencia del tester para identificar pruebas que se considere probables que muestren errores. Las historias de defectos pueden ser útiles; hay una alta probabilidad de que los errores que han aparecido en el pasado, puedan volver a aparecer. listas o strings vacíos o nulos cero ocurrencias o instancias números negativos NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Grafos Causa-Efecto Diplomado en Calidad en el Software Es un enfoque sistemático para explorar combinanciones de condiciones de entrada. Es un método rigoroso para transformar una especificación en lenguaje natural a una especificación en lenguaje formal. Es muy útil en la verificación del diseño funcional pero es muy difícil y consume mucho tiempo al implementarlo. Es una propuesta práctica cuando hay una herramienta que convierte el grafo en una tabla de decisiones. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Pruebas de Sintaxis Diplomado en Calidad en el Software Se aplica a programas que tienen un lenguaje que define los datos o acciones, por ejemplo el lenguaje de la línea de comandos de un sistema operativo. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Pasos para prueba de sintaxis Diplomado en Calidad en el Software Identificar el lenguaje Definir la sintaxis formalmente Prueba los casos válidos siguiendo un grafo de definición. Prueba nivel por nivel haciendo un error a la vez. Prueba casos inválidos. Automatiza la creación y ejecución de las pruebas. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Pruebas de Transición de Estados Diplomado en Calidad en el Software Es un método analítico que utiliza máquinas de estado finito para diseñar pruebas que tienen funciones de control similares pero diferentes. También se utiliza principalmente para la verificación funcional. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999

Matriz de Grafos Diplomado en Calidad en el Software Es una representación más simple de un grafo para organizar datos. Cada fila representa un nodo del grafo. Cada columna representa un nodo del grafo. M(i,j) define la relación entre el nodo i y el nodo j. Generalmente es una matriz dispersa. NOTAS __________________________________________ Juan Antonio Vega Fernández  Derechos Reservados, 1999