Departamento: Depto Computacion y Dise o Nombre del curso: Pruebas de Software Clave: 004257 Academia a la que pertenece: Pruebas de Software Requisitos: Requisito de Prueba de Software: Programaci n III, Dise o de Software I con Pr ctica Profesional I Horas Clase: 3 Horas Laboratorio: 0 Horas Práctica: 0 Créditos: 5.62 Programa educativo que la recibe: Ingeniero de Software Plan: 2009 Fecha de revisión: Julio de 2011 Competencia a la que contribuye este curso: Producir aplicaciones de software a partir de especificaciones de diseño, haciendo uso de las mejores prácticas que aseguren la calidad del producto. Tipo de competencia: Específica Descripción: Este curso se imparte en el quinto semestre del programa de Ingeniería de Software del ITSON. En este curso el alumno aprenderá los fundamentos de las pruebas de software, el ciclo de vida de las pruebas, así como los diferentes métodos y técnicas para desarrollar pruebas funcionales y no funcionales. Este curso da soporte al proceso general de desarrollo de aplicaciones en materias posteriores. 1 Identificar los elementos 1) Contrastar el concepto de fundamentales para la realización calidad del software contra el de de pruebas de software. pruebas del software. 2) Realizar pruebas de software basadas en la no ejecución. 3) Identificar las pruebas de software acordes al modelo de pruebas que se utilice en un desarrollo de software. 1) Calidad de software a) Aseguramiento de la calidad del software b) Independencia general 2) Verificación y validación a) Pruebas basadas en la no ejecución (Peer reviews) i) Hacer recorridos ii) Inspecciones 3) Definición de pruebas de software 4) Motivo de las pruebas de software a) Utilidad, Confiabilidad, Desempeño, Corrección 5) Principios de las pruebas de software. 6) Pruebas de software en el contexto del ciclo de desarrollo de software. a) Modelos de pruebas 7) Técnicas de pruebas de software.
8) Tipos de pruebas de software. Tabla comparativa de los elementos considerados en pruebas de software y calidad de software. Reporte de un caso de estudio en el que se apliquen las pruebas de no ejecución. Ejercicios resueltos en los cuales se identifiquen las posibles pruebas a aplicar de acuerdo a las situaciones planteadas. Fundamentos de las pruebas de software. 2 Identificar las técnicas y 1) Hacer una planeación de pruebas en procedimientos que se aplican en base a los requerimientos del sistema. cada una de las etapas en el ciclo 2) Desarrollar casos de prueba de vida de desarrollo de pruebas dependiendo de los requerimientos del de software. sistema. 3) Identificar los elementos para la ejecución y reporte de pruebas de acuerdo a los casos establecidos. 4) Identificar los procesos de regresión en los casos de fallas o defectos. 1) Análisis de requerimientos 2) Planeación de la prueba a) Orden b) Metodología c) Criterios de salida d) Alcance e) Equipo f) Ambiente y Automatización 3) Desarrollo a) Casos y escenarios i) Partición de equivalencias ii) Análisis de variables limites iii) Adivinación de errores iv) Gráfica de causa efecto b) Datos de prueba c) Script de prueba d) Conjuntos de casos 4) Ejecución a) Casos b) Script c) Criterio de paro 5) Reporte a) Defectos, errores y fallas del software i) Ciclo de vida del defecto b) Categorización (severidad y prioridad)
6) Realimentación a) Pruebas de regresión b) El proceso de depuración c) Automatización Plan de pruebas elaborado conforme a un caso de estudio. Casos de prueba necesarios para probar un sistema dado. Documento digital Word (por correo) sobre los elementos para realizar la ejecución y reporte de pruebas de acuerdo a un caso definido. Documento digital Word (por correo) que contenga todos los elementos necesarios a realizar en la regresión de un caso dado. Documento digital Word (por correo) que contenga la definición del proyecto integrador junto con sus requerimientos identificados. El ciclo de pruebas y sus procesos principales. 3 Desarrollar pruebas funcionales basadas en los métodos de caja blanca y de caja negra. 1) Desarrollar pruebas unitarias de clase y de componente siguiendo las técnicas de ruta básica y estructura de control. 2) Desarrollar pruebas de integración siguiendo las técnicas de inter clase y componentes. 3) Desarrollar pruebas de integración siguiendo las técnicas de integración mediante el método de la caja negra. 4) Desarrollar pruebas de validación mediante el método de caja negra. 1) Prueba de caja blanca a) Pruebas unitarias i) Prueba de ruta básica ii) Pruebas de la estructura de control iii) Stub object, Mock object y Drivers b) Pruebas de integración i) Pruebas de inter clase ii) Pruebas de componentes iii) Stub object, Mock object y Drivers 2) Prueba de caja negra a) Pruebas de integración i) Métodos gráficos de prueba ii) Partición equivalente
iii) Análisis de valores límite iv) Prueba de tabla ortogonal b) Pruebas de validación c) Pruebas de aceptación 3) Patrones de prueba 4) Documentación de la prueba 5) Automatización Código fuente del proyecto en lenguaje JAVA (por correo) que contenga las pruebas unitarias correspondientes a un caso dado. Código fuente del proyecto en lenguaje JAVA (por correo) que contenga las pruebas de integración de inter clase y componente de un caso dado. Código fuente del proyecto en lenguaje JAVA (por correo) que contenga las pruebas de integración por el método de caja negra de un caso dado. Documento digital Word (por correo) que contenga el reporte de las pruebas de validación de un caso dado. Documento digital Word (por correo) que contenga los casos funcionales y la planeación de las pruebas a correspondientes al proyecto integrador. Distintos tipos de pruebas funcionales 4 Desarrollar pruebas no funcionales basadas en el método de caja negra. 1) Desarrollar pruebas de sistema no funcionales siguiendo el método de la caja negra. 2) Identificar los aspectos principales a tomar en cuenta en las pruebas de instalación y aceptación. 3) Identificar los aspectos principales a tomar en cuenta en las pruebas de entornos especializados. 1) Pruebas de sistema a) Principios de la prueba de sistema b) Pruebas de función c) Prueba de rendimiento d) Pruebas de stress. e) Pruebas de volumen. f) Prueba de recuperación g) Prueba de resistencia h) Prueba de desempeño 2) Pruebas de instalación 3) Pruebas de aceptación. a) Prueba de humo. b) Pruebas alfa. c) Pruebas beta. 4) Pruebas de entornos especializados:
arquitectura y aplicaciones a) Pruebas de interface gráfica b) Prueba de arquitectura cliente servidor c) Prueba de documentación y de funciones de ayuda d) Prueba de sistema de seguridad crítica e) Prueba del sistema en tiempo real 5) Documentación de la prueba 6) Automatización Documento digital Word (por correo) Diferentes técnicas y aspectos de las que contenga el procedimiento y reporte pruebas no funcionales incluyendo de las pruebas no funcionales dentro de pruebas de instalación, aceptación y los límites esperados del sistema. entornos especializados. Documento digital Word (por correo) que contenga el procedimiento y reporte de las pruebas no funcionales fuera de los límites esperados del sistema. Casos no funcionales y documentación correspondiente aplicados al proyecto integrador. Código fuente de las pruebas funcionales y no funcionales aplicadas al proyecto integrador. Actitudes Responsabilidad en la entrega de las asignaciones. Tolerancia, respeto y proactividad en el trabajo en equipo y participación en clase. Liderazgo en el trabajo en equipo. Compromiso en el desarrollo de las competencias del curso. Ética en la realización de las asignaciones. Evaluación Criterio Ponderación 1 25 % 2 25 % 3 25 % 4 25 %
Bibliografía Básica. Bibliografía De Consulta. Pfleeger, Shari Lawrence, Ingenieria de software, teoría y práctica. Edición 2002. Editorial: PEARSON EDUCACION, S.A., Piattini, Mario G., Calvo Manzano José A., Cerve, Análisis y diseño de aplicaciones informáticas de gestión una per. Edición 2004. Editorial: RA MA, Pressman, Roger S., Ingeniería de Software. Edición 2005. Editorial: McGrawHill, Sommerville, Ian, Ingeniería de Software. Edición 2002. Editorial: ADDISON WESLEY, Weitzenfeld, Alfredo, Ingeniería de Software Orientada a Objetos con UML, Java e Intern. Edición 2005. Editorial: THOMSON,