Introducción al Proceso de Pruebas.



Documentos relacionados
Demo. TDD desde Cero. Acceptance Test Driven Development.

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

WINDOWS : COPIAS DE SEGURIDAD

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Empresa Financiera Herramientas de SW Servicios

Ingeniería del Software. Pruebas. Pruebas en el PUD. Las pruebas del software. Tipos de prueba Estrategias de prueba

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

CURSOS PRÁCTICOS SEDEN SEDEN

SSTQB. Nivel Fundamentos. Examen ejemplo. Programa de estudios 2010

Introducción. Definición de los presupuestos

Toda base de datos relacional se basa en dos objetos

1. Descripción y objetivos

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS

Plan de estudios ISTQB: Nivel Fundamentos

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

Elementos requeridos para crearlos (ejemplo: el compilador)

Manual del Cotizador

Práctica 7. Pruebas. Introducir conceptos básicos de pruebas unitarias en sistemas orientados a objetos.

Combinar correspondencia (I)

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente.

Testing. Tipos, Planificación y Ejecución de Pruebas

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

TOPICOS IV: ING. YIM APESTEGUI FLORENTINO

GUÍA RED SOCIAL FACEBOOK

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

La ventana de Microsoft Excel

Internet como herramientas de comunicación: El correo electrónico

Resumen. Funcionamiento. Advertencia

La elección de Blogger como la plataforma o lugar donde

Ingeniería del Software. La última lección. Resumen del curso. Buenas prácticas. Conclusión

Solución a las diferentes preguntas que puedan entrar en el examen de CCNA. David Santos Aparicio

Manual de operación Tausend Monitor

Seminario de Informática

Manual del Usuario Groupware

Internet Information Server

MINITUTORIAL SOBRE EL PROGRAMA GESFINCAS

TÉCNICAS DE GESTIÓN ADMINISTRATIVA PARA PEQUEÑAS EMPRESAS

LECCION 5. Herramientas de Pintura y Edición Parte II. Crear formas de Pincel

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE

TUTORIAL PRÁCTICO DE BASES DE DATOS EN ACCESS CREAR UNA AGENDA

Instalación de FreeBSD Server 8.4. Marcos Rodríguez Javier

MANUAL DE USO DE LA ELEteca INSTRUCCIONES EXTENSIÓN DIGITAL DE LOS MATERIALES DE EDITORIAL EDINUMEN

Curso Internet Básico - Aularagon

Migrar una organización Microsoft Exchange 2003 a Microsoft Exchange 2007

Guía de uso del Cloud Datacenter de acens

INSTRUCCIONES ALBARANES XML

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

SOLUCIÓN CASO GESTIÓN DE PERSONAL I

Manual del Alumno de la plataforma de e-learning.

MANUAL APLICACIÓN. SOFTWARE GESTIÓN DE CLÍNICAS DENTALES

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

Ayuntamiento de Eivissa

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

GESTION DE LA BASE DE DATOS

Solución Caso Nomina

HERRAMIENTAS DE ACCESS ACCESS Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Software Criptográfico FNMT-RCM

6 Anexos: 6.1 Definición de Rup:

ISO 9001:2000 DOCUMENTO INFORMATIVO DOCUMENTO ELABORADO POR CHRISTIAN NARBARTE PARA EL IVECE

Parte I: Introducción

NexTReT. Internet Status Monitor (ISM) Whitepaper

Configuración de correo en Mozilla Thunderbird

Actualmente existen dos maneras de enviar y publicar las estadísticas en la página web de la Federación Española de Baloncesto:

El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos.

Gestión de proyectos

USO DE PLANTILLAS EN WORD

Hablemos de RESULTADOS de los últimos años por un segundo. He estado:

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra.

Tema: CREACIÓN DE CONSULTAS E INFORMES EN UNA BASE DE DATOS CON MICROSOFT ACCESS 2013.

PROPORCIONALIDAD - teoría

Hacer Realidad BPM en su Organización ADOPTAR BPM A PARTIR DE UN PROYECTO O NECESIDAD DE AUTOMATIZACIÓN

Vicerrectorado de Planificación, Calidad, Responsabilidad Social y Comunicación

Funcionalidades Software PROYECTOS GotelGest.Net Software para la gestión de Proyectos GotelGest.Net

Tema 2: Muestreo. Estadística. 4 o Curso. Licenciatura en Ciencias Ambientales

Diseño orientado al flujo de datos

Adaptación del producto

INSTRODUCCION. Toda organización puede mejorar su manera de trabajar, lo cual significa un

Capitulo 3. Test Driven Development

COPIAS DE SEGURIDAD CON COBIAN BACKUP INSTALACIÓN Y CONFIGURACIÓN

CASO PRÁCTICO. ANÁLISIS DE DATOS EN TABLAS DINÁMICAS

Manual del Cotizador. Línea de Atención Comercial Estamos para ayudarte

Año: 2008 Página 1 de 30

rg.o cm a Espec e i c fica c ci c ó i n ó n d e e r e r q e uer e i r mi m en e tos o l@ rza e b Di D s i e s ño d e b as a e s s s d e d at a o t s

Análisis de los datos

GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS

Técnicas Avanzadas de Testing Automático

Notas para la instalación de un lector de tarjetas inteligentes.

Pruebas de unidad con JUnit

15 CORREO WEB CORREO WEB

Nuevo enfoque basado en procesos

Un pequeñísimo tutorial para explicar cómo darse de alta al MEJOR SISTEMA de compartición, backup... en la web.

Estimado usuario. Tabla de Contenidos

Las mejores prácticas en Aseguramiento de Calidad o Por qué se debería trabajar con técnicos de pruebas profesionales? José Díaz.

Una vez que tengamos el padrón de un determinado tributo con todos sus datos actualizados, podemos generar los recibos de ese padrón.

Análisis de medidas conjuntas (conjoint analysis)

Cómo acceder a Google Drive? Tiene más funcionalidades una cuenta de Google?

ESPAÑOL BLACK-VS. Guía de uso e instalación

Arquitectura de sistema de alta disponibilidad

Transcripción:

Introducción al Proceso de Pruebas. Javier Gutiérrez / javierj@us.es Introducción al proceso de pruebas Objetivo: repasar las ideas principales sobre las pruebas del software y, en concreto, las que usaremos para probar casos de uso. 1

Índice 1. Introducción a las pruebas. 2. Un resumen del proceso de prueba. 3. Niveles de prueba. 4. Pruebas de casos de uso. 5. Automatización de pruebas. 1. Introducción a las pruebas. 2

Introducción a las pruebas Ariane 5. Lanzado por primera vez el 4 de junio de 1996. Ariane 5. 36.7 segundos después explotó. Motivo: Fallo software. La programación no se había probado lo suficiente. Introducción a las pruebas Sistemas software: Mayor tamaño. Mayor complejidad. Menor tiempo de desarrollo. Mayor calidad. Un reto a la Ingeniería de Software. Pruebas: Más importancia y protagonismo día a día. Garantizan la calidad del software. Garantizan la satisfacción de los requisitos. Ahorran tiempo y recurso en el desarrollo. Su objetivo: localizar, para subsanarlas, el mayor número de deficiencias lo antes posible. 3

Introducción a las pruebas Definición de prueba: Software testing consists of the dynamic verification of the behaviour of a program on a finite set of test cases [ ]. Dynamic verification means that testing always implies executing the program on (valued) inputs. Fuente: SWEBOK 2004 Introducción a las pruebas Definición de prueba: Verificación dinámica del comportamiento del software a partir de un conjunto finito de casos de prueba. Validación y Verificación dos conceptos muy relacionados: 1 2 Validación: proceso de evaluar un sistema o componente durante o al final del proceso de desarrollo para determinar si satisface los requisitos especificados. Verificación: proceso de evaluar un sistema o componente para determinar si los productos de una determinada fase satisfacen las condiciones impuestas al comienzo de la fase. No implican ejecución de código. 4

Introducción a las pruebas Definición de prueba: Verificación dinámica del comportamiento del software a partir de un conjunto finito de casos de prueba. Para probar un programa tenemos que ejecutarlo. La prueba tiene un límite. No vale ejecutar el programa de cualquier manera. Introducción a las pruebas Una prueba consta, al menos, de tres elementos: 2 3 1 5

Introducción a las pruebas Veamos un ejemplo sencillo: Funciona el teléfono?. Valores de prueba 123-45-67-89 Acciones 1. Descolgar auricular. 2. Marcar número de Pepote. 3. Esperar contestación. Resultado esperado (Pepote): Digameee. Introducción a las pruebas Veamos otro ejemplo sencillo: Me está bien esta camisa? Valores de prueba Mi cuerpo. Acciones 1. Ponerme la camisa. 2. Abrochármela. 3. Moverme un poco. 4. Mirarme al espejo. Cuidado con la etiqueta o con arrugarla por si hay que devolverla Resultado esperado Elegancia y confort. 6

Introducción a las pruebas public int suma(int a, int b) { return a + b; } Qué casos de prueba podemos escribir?. Valores de prueba??? Acciones Suma(a, b) Resultado esperado??? Los casos de prueba son finitos (y cuantos menos, mejor). Los casos de prueba buscan errores, queremos el menor número que encuentre los máximos errores. Introducción a las pruebas public int suma(int a, int b) { return a + b; } Qué casos de prueba podemos escribir?. Valores de prueba 0, 0 0, b = no 0 3, 4-2, -8-3, 6 Integer.MAX_V ALUE, 6 Acciones Suma(a, b) Suma(a, b) Suma(a, b) Suma(a, b) Suma(a, b) Suma(a, b) Resultado esperado 0 b 7-10 3-2147483643 Y algunas permutaciones más. 7

Características de una buena prueba Ha de tener una alta probabilidad de encontrar un fallo. Cuanto más, mejor. No debe ser redundante. Si ya funciona, no lo probamos más. Debe ser la mejor de la cosecha. Si tenemos donde elegir, elegimos la mejor. No debería ser ni demasiado sencilla ni demasiado compleja. Si es muy sencilla no aporta nada, si es muy compleja a lo mejor no sabemos lo que ha fallado. Un proceso de pruebas Objetivos de de prueba Diseño de de casos de de prueba Codif. de de casos de de prueba Nuestro objetivo Ejecución Análisis de de resultados 8

En conclusión Probar es ejecutar casos de prueba. Caso de prueba: entrada + acciones + salida salida obtenida == salida esperada salida obtenida!= salida esperada Un programa que pasa todos sus casos de prueba es un programa sin errores?. En conclusión No Las pruebas sólo pueden encontrar los errores que buscan. Por esto es tan importante un buen diseño de pruebas. 9

Niveles de prueba Niveles de prueba 10

Niveles de prueba Pruebas unitarias Herramientas: Cuando: Durante la construcción del sistema. Objetivo: Prueban el diseño y el comportamiento de cada uno de los componentes una vez construidos. 11

Pruebas unitarias Técnicas: Análisis de caminos. Partición de categorías. Mutaciones. Algoritmos genéricos. Análisis de valores límite. Gráficos causa-efecto. Etc. En general, han sido muy estudiadas. Pruebas de integración Herramientas: Cuando: Durante la construcción del sistema Objetivo: Comprueban la correcta unión de los componentes entre sí a través de sus interfaces, y si cumplen con la funcionalidad establecida. Las mismas, vamos sustituyendo los mocks por las clases reales y, si es necesario, escribiendo más casos de prueba. 12

Pruebas de integración Técnicas: Arriba abajo: El primer componente que se prueba es el primero de la jerarquía (A). Una de las ventajas es que las interfaces entre los distintos componentes se prueban en una fase temprana y con frecuencia. Abajo a arriba: Se prueban primero los componentes de más bajo nivel (E, F) Este tipo de enfoque permite un desarrollo más en paralelo, pero presenta mayores dificultades a la hora de planificar y de gestionar. Pruebas de sistema Herramientas: Cuando: Durante la construcción del sistema (partes completas). Objetivo: Prueban a fondo el sistema, comprobando su funcionalidad e integridad globalmente, en un entorno lo más parecido posible al entorno final de producción. Técnicas: probar el sistema como lo hará el usuario final. 13

Pruebas de implantación Herramientas: Cuando: Durante la implantación en el entrono de producción.. Objetivo: Comprueban el correcto funcionamiento del sistema dentro del entorno real de producción (rendimiento, copias de seguridad, etc.). Las mismas. Las pruebas se vuelven a ejecutar en el entorno real de producción y se añaden nuevas pruebas.. Pruebas de aceptación Cuando: Después de la implantación en el entorno de producción. Herramientas: Las mismas. Las pruebas se vuelven a ejecutar en el entorno real de producción y se añaden nuevas pruebas.. Objetivo: Verifican que el sistema cumple con todos los requisitos indicados y permite que los usuarios del sistema den el visto bueno definitivo. 14

Pruebas de regresión Herramientas: Las mismas. Cuando: Durante el mantenimiento del sistema. Objetivo: Comprobar que los cambios sobre un componente de un sistema de información, no introducen un comportamiento no deseado o errores adicionales en otros componentes no modificados 4. Pruebas de casos de uso. 15

Introducción Un código perfecto no es un sistema software perfecto. Un ejemplo: Un sistema software perfecto que almacena las facturas de un restaurante y que funciona perfectamente, pero Si un cliente quiere tomar algo después de imprimir su factura, hay que volver a introducir toda la factura. Si un cliente cambia la forma de pago después de imprimir su factura, hay que volver a introducir toda la factura. Introducción Si el código es perfecto, dónde está el fallo?.? Ya lo hemos visto, el sistema debe satisfacer las necesidades de sus usuarios. El sistema debe cumplir sus requisitos. 16

Prueba del sistema Pruebas del sistema 17

Pruebas del sistema PROCESO DE GENERACIÓN DE PRUEBAS DEL SISTEMA Requisitos funcionales Modelo de uso Datos de entrada y resultados esperados Escenarios. Diagramas de estados. Beneficios: Reduce el tiempo y los recursos necesarios. Permite sistematizar y automatizar el proceso. Las pruebas de sistema son independientes de la plataforma y arquitectura. Permite validar de forma temprana los requisitos, permitiendo corregir las deficiencias que presenten. Técnicas En resumen: Probar un caso de uso es definir un conjunto de escenarios y ejecutarlos sobre el sistema para comprobar si el resultado coincide con la definición del caso de uso. 18

5. Automatización de las pruebas Automatización de las pruebas Algunas palabras que hemos escuchado hablando de pruebas. No sirven para nada Engaño Pérdida de tiempo Imposibles de mantener Descartadas al primer cambio Moda pasajera Por qué?. 19

Automatización de las pruebas Las pruebas son polémicas: No son parte de la solución. No se las entregamos a nuestros clientes. Incluso pueden darles a nuestros clientes una mala impresión. Nuestros clientes no nos las pagan. Difíciles de mantener. Sin embargo, las pruebas son imprescindibles.? Qué hacer?. Automatizar. Automatización de las pruebas Qué significa automatizar?. En este caso concreto: realizar de manera automática mediante herramientas software. Qué podemos automatizar?. Diseño de las pruebas Codificación de las pruebas Ejecución de las pruebas Evaluación de resultados Menos habitual, pocas técnicas y herramientas. El objetivo de esta presentación Lo más habitual, muchas técnicas y herramientas 20

Automatización de las pruebas : Ventajas: Mayor rapidez de ejecución. Menos recursos. Evitamos pruebas obsoletas Inconvenientes: Muy pocas herramientas!. Necesitan una base a menudo inexistente. Un conjunto pobre de pruebas. Automatización de las pruebas Cuando automatizar y cuando no automatizar. Bien No buscamos automatizarlo absolutamente todo. Tenemos modelos y documentación del sistema. Nosotros controlamos las herramientas de prueba. Mal. Gastamos más en la automatización que en la pruebas en sí. Construimos el sistema sobre la marcha. Las herramientas de prueba nos controlan a nosotros. 21

Conclusiones Las herramientas son importantes pero Una herramienta de de prueba no noes una estrategia ni niun proceso ni niun plan de de prueba. Una Una herramienta de de pruebas sin sin saber técnicas, prácticas y tener experiencia en en pruebas es es tan tan útil útil como un un entorno de de programación sin sin saber el el lenguaje. Es necesario tener conocimientos!!! Fin Qué vamos a ver a partir de aquí? 1: 1: Cómo definir casos de de uso y otros requisitos para que se se puedan probar. 2: 2: Algunas propuestas existentes para extraer pruebas a partir de de casos de de uso. 3: 3: El El proceso ETUC y un un caso práctico. 22