Introducción a las pruebas del software. Javier Gutiérrez /

Slides:



Advertisements
Presentaciones similares
Introducción a las pruebas del software.
Advertisements

Clase 09.  Garantizar la calidad de software  La prueba nunca termina, del IS translada se translada al usuario  Las casas de software invierte del.
Sistemas de Información Enfoques para la Construcción de los Sistemas de Información MBA Luis Elissondo.
ENFOQUE PRÁCTICO RECOMENDADO PARA EL DISEÑO DE CASOS Integrantes del equipo: Rosa Isela Gerónimo Miguel Ángel Cruz Juan Guadalupe Alegría Humberto Mendoza.
Diseño de esquema de pruebas Analisis y Diseño 2 Segundo Semestre 2008 Victor Leonel Orozco
NTC - ISO 9001 NORMA TÉCNICA COLOMBIANA (TERCERA ACTUALIZACIÓN)
ALCIBIADES VALLEJO BERRIO 2.1 INTRODUCCION 2- Requerimientos  Una de las fases más importantes en el proceso de construcción de software es la de adquisición,
FACULTAD DE INGENIERÍA CIVIL Y MECÀNICA CARRERA DE INGENIERÍA MÈCANICA EMPLEO DE NUEVAS TECNOLOGÍAS DE INFORMACIÓN Y COMUNICACIÓN (NTIC´s II) TEMA: PASOS.
Calidad de Software.   ¿Qué es?  ¿Quién lo hace?  ¿Por qué es importante?  ¿Cuáles son los pasos?  ¿Cuál es el producto final?  ¿Cómo me aseguro.
MAPEO DE PROCESOS. INTRODUCCION Las empresas u organizaciones para poder ser competitivas no solo deben tener planes y estrategias adecuadas, además los.
Pruebas de Funcionalidad de Software: Caja Negra y Caja Blanca Curso: Diseño de Sistemas 9no. Semestre.
Sistema de Información Gerencial - ERP(Planificación de recursos empresariales) Rolando Espinosa Annie Williams Joel Nieto
Análisis de Proyecto de Software.
INGENIERÍA DE INFORMACIÓN Y APLICACIONES
Proceso de Implantación y Aceptación del Sistema de Información (IAS)
Evaluación de la calidad del software
Ingreso , proceso y salida de datos
Programación Avanzada
IEEE-std Práctica Recomendada para la Especificación de Requerimientos de Software Fuente: IEEE Recommendad Practice for Software Requirements.
Pruebas de software Msc. Ing. Ernesto Soto Roca.
Programación 1 Curso: 5to. I TT
SWEBOK.
Programación Orientada a Objetos
Metodología Desarrollo de Sistemas de Información.
CICLO DE VIDA DEL SOFTWARE
MOPROSOFT.
CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA
Especificación de Requisitos
Presenta: TSU. Yuridia Luna Marcos Asesora de tesis:
Grupo Abigaíl Mejía.
CICLO DE VIDA DEL SOFTWARE
UNIVERSIDAD NACIONAL DE LOJA Área de la Educación, el Arte y la Comunicación Informática Educativa IV INGENIERIA DE SOFTWARE Taller de Análisis y Diseño.
Universidad Pedagógica Francisco Morazán
LINEAS DE ESPERA.
Tipos de pruebas Hector Leonardo Arias.
Consultoría y servicios logísticos
Algoritmo Capitulo Cinco.
Verificación y Validación de Software
Ingeniería del Software
Roles del Analista de Sistemas Y Ciclo de Vida del Desarrollo de Sistemas.
Unidad 5: Evaluación de los sistemas
Ciclo de vida del Software
FUNDAMENTOS DE MERCADEO PLAN DE VENTAS PROFESOR: ANA MUGNO PRESENTADO POR: FRANCISCO CAMPO 2018.
LAS ETAPAS DE LA SIMULACION NUMERICA
CICLO DE VIDA DE SOFTWARE
PROYECTO DE GRADUACIÓN
Tema: Administración de la configuración de software UNIVERSIDAD TECNOLÓGICA ISRAEL CALIDAD DE SOFTWARE.
IEEE Estándar para documentación de pruebas de software
INSTITUTO TECNOLOGICO DE VERACRUZ
1 Introducción al proceso unificado de desarrollo de software.
DOS MANERAS DE OBTENER NUEVOS PRODUCTOS LA ADQUISICION: se refiere a comprar una empresa entera, una patente o una licencia para comercializar el producto.
IEEE-STD PRÁCTICA RECOMENDADA PARA LA ESPECIFICACIÓN DE REQUERIMIENTOS DE SOFTWARE.
ASIGNATURA: REINGENIERÍA DEL SOFTWARE CUATRIMESTRE: I DOCENTE: ING. IRENE MARTÍNEZ MEJÍA CORREO: Managua, 26 de Enero 2019
INTEGRACIÓN DE SISTEMAS DE GESTIÓN MTO. LUIS EDUARDO ROCHA MAGAÑA Integración de Sistemas de Gestión.
1 SISTEMAS II CICLO DE VIDA. 2 Sistemas II. CICLO DE VIDA DE Los Sistemas de Información “ Es un proceso por el cual los analistas de sistemas, los ingenieros.
PROYECTO DE GRADUACIÓN
Desarrollo de Sistemas de Información Contable - Sis USB 1 METODOLOGIAS DE DESARROLLO DE SOFTWARE.
NORMA ISO/IEC 9126 Norma publicada en Usada para la evaluación de la calidad de software. Establece las características de calidad para productos.
GESTIÓN DE PROYECTOS La gestión de proyectos está conformada por todas aquellas acciones que debes realizar para cumplir con una objetivo definido dentro.
GC-F-004 V.01 CENTRO DE INDUSTRIA Y LA CONSTRUCCIÓN REGIONAL TOLIMA.
MODELO EN CASCADA Integrantes: Felipe Alemán Lester Blandón.
Desarrollo de Sistemas de Información Contable - Sis USB 1 METODOLOGIAS DE DESARROLLO DE SOFTWARE.
Desarrollo de sistemas
Alcance Reto de diseño Entregables esperados
PRUEBAS DE CAJA NEGRA. -Internationa Software Testing Qualification Board (ISTQB) Internationa Software Testing Qualification Board (ISTQB) Técnica de.
Estudio de Viabilidad del Sistema (EVS). Estudio de Viabilidad del Sistema Cuestiones ¿Qué es la viabilidad de un sistema? ¿Cuáles son los objetivos del.
PROYECTO DE GRADUACIÓN
Diseñas y elaboras algoritmos para la solución de problemas
HOJA DE VERIFICACIÓN DE CALIDAD. Una hoja de verificación es una herramienta expresada en un formato que se utiliza para recolectar de manera estructurada.
FIGURE: Algoritmos. CONCEPTOS BÁSICOS. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
Transcripción de la presentación:

Introducción a las pruebas del software. Javier Gutiérrez /

Introducción a las pruebas Objetivo: repasar las ideas principales sobre las pruebas del software.

Índice 1.Introducción a las pruebas. 2.Niveles de prueba. 3.Automatización de las pruebas.

Introducción a las pruebas.

Introducción a las pruebas Ariane 5. Lanzado por primera vez el 4 de junio de Motivo: Fallo software. La programación no se había probado lo suficiente. Ariane segundos después explotó.

Introducción a las pruebas Sistemas software: Mayor tamaño. Mayor complejidad. Menor tiempo de desarrollo. Mayor calidad. 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. Un reto a la Ingeniería de Software.

Introducción a las pruebas Verificación dinámica del comportamiento del software a partir de un conjunto finito de casos de prueba. Definición de prueba: Para probar un software necesitamos ejecutar ese software.

Introducción a las pruebas Verificación dinámica del comportamiento del software a partir de un conjunto finito de casos de prueba. Definición de prueba: Dos conceptos muy relacionados: Validación: proceso de evaluar un sistema o componente durante o al final del proceso de desarrollo para determinar si satisface los requisitos especificados. 1 2 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.

Introducción a las pruebas 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:

Introducción a las pruebas ¿Funciona el teléfono?. Valores de prueba AccionesResultado esperado Descolgar auricular. 2. Marcar número de Pepote. 3. Esperar contestación. (Pepote): “Digameee”. Veamos un ejemplo sencillo:

Introducción a las pruebas ¿Me está bien esta camisa? Valores de prueba AccionesResultado esperado Mi cuerpo.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 Elegancia y confort. Veamos otro ejemplo sencillo:

Introducción a las pruebas public int suma(int a, int b) { return a + b; } ¿Qué casos de prueba podemos escribir?. Valores de prueba AccionesResultado esperado ???Suma(a, b)??? Los casos de prueba son finitos (y cuantos menos, mejor).

Introducción a las pruebas public int suma(int a, int b) { return a + b; } ¿Qué casos de prueba podemos escribir?. Valores de prueba AccionesResultado esperado 0, 0Suma(a, b)0 0, b = no 0Suma(a, b)b 3, 4Suma(a, b)7 -2, -8Suma(a, b)-10 -3, 6Suma(a, b)3 Integer.MAX_V ALUE, 6 Suma(a, b) Y algunas permutaciones más.

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.

Niveles de prueba

FASES DE LA PRUEBA Diseño de las pruebas (¿técnicas?) Generación de casos de prueba (¿datos de prueba?) Definición del procedimiento de la prueba (¿cómo, donde?) Ejecución de la prueba Informe de la prueba (¿resultados?) TÉCNICAS DE PRUEBA Pruebas estructurales o de Caja Blanca. Pruebas funcionales o de caja negra. ESTRATEGIAS DE PRUEBA Pruebas unitarias. Pruebas de integración. Pruebas de sistema. Pruebas de aceptación. Pruebas de regresión. Niveles de prueba Aspectos que trataremos hoy

Niveles de prueba

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

Pruebas unitarias Técnicas: –Análisis de caminos. –Partición de categorías. –Mutaciones. –Algoritmos genéricos. En general, han sido muy estudiadas.

Pruebas de integración Herramientas: Las mismas, vamos sustituyendo los mocks por las clases reales y, si es necesario, escribiendo más casos de prueba. 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

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. Herramientas: Técnicas: probar el sistema como lo hará el usuario final.

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.). Herramientas: 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 Herramientas: Cuando: Después de la implantación en el entorno de producción. Objetivo: Verifican que el sistema cumple con todos los requisitos indicados y permite que los usuarios del sistema den el visto bueno definitivo. Herramientas: Las mismas. Las pruebas se vuelven a ejecutar en el entorno real de producción y se añaden nuevas pruebas..

Pruebas de regresión 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 Herramientas: Las mismas.

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.

Automatización de las pruebas

“No sirven para nada” “Engaño” “Pérdida de tiempo” “Descartadas al primer cambio” “Imposibles de mantener” “Moda” ¿Por qué?. Algunas palabras que hemos escuchado hablando de pruebas.

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. La automatización nos permite reducir costes.

Automatización de las pruebas ¿Qué significa automatizar?. ¿Qué podemos automatizar?. En este caso concreto: realizar de manera automática mediante herramientas software. Diseño de las pruebas Codificación de las pruebas Ejecución de las pruebas Evaluación de resultados Lo más habitual, muchas técnicas y herramientas Menos habitual, pocas técnicas y herramientas. El objetivo de esta presentación

Automatización de las pruebas Ventajas de la automatización: –Mayor rapidez de ejecución. –Menos recursos. –Evitamos pruebas obsoletas

Automatización de las pruebas 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. BienMal. Gastamos más en la automatización que en la pruebas en sí. No buscamos automatizarlo absolutamente todo. Tenemos modelos y documentación del sistema. Construimos el sistema sobre la marcha. Nosotros controlamos las herramientas de prueba. Las herramientas de prueba nos controlan a nosotros.