Atributos
Sigla: 
CI-0142
Créditos: 
4
Horas: 
5
Correquisitos: 
Clasificación: 
Curso propio
Énfasis y ciclo: 
Ingeniería de Software 4.II
Descripción: 

Este es un curso introductorio de pruebas de software, el cual abarca los fundamentos teóricos y prácticos de su planificación, diseño, ejecución y gestión dentro del ciclo de vida del software. El curso está diseñado para estudiantes de cuarto año de la carrera de Bachillerato en Computación e Informática que hayan completado el curso de Calidad de Software y estén llevando simultáneamente el curso Práctica Dirigida. En particular, el curso ofrece a los estudiantes los conocimientos y habilidades esenciales para probar software y gestionar el proceso de pruebas de un software. 

Objetivo general: 

El objetivo general del curso es que los estudiantes desarrollen habilidades para planificar, diseñar, ejecutar y gestionar pruebas dentro del ciclo de vida del software, para mejorar su calidad, mediante el uso de estrategias teórico-prácticas y de laboratorio.  

Objetivos específicos: 

Durante este curso el estudiante desarrollará habilidades para:

  1. Identificar los conceptos básicos de pruebas de software para interpretarlos y utilizarlos correctamente, mediante la discusión de lecturas y ejemplos.
  2. Planificar, diseñar, ejecutar, monitorear y evaluar el proceso de pruebas de un software para su correcta gestión, usando técnicas, estándares, modelos y herramientas apropiadas.
  3. Diferenciar entre niveles y tipos de pruebas, mediante la discusión de sus características y la presentación de ejemplos, para seleccionar el nivel y tipo más adecuado en diversos contextos.
  4. Diseñar pruebas para un software, mediante la aplicación y combinación de técnicas de diseño de pruebas, con el fin de generar una combinación adecuada de pruebas para un determinado contexto.
  5. Ejecutar pruebas manuales de software y reportar los defectos encontrados usando estándares, prácticas y herramientas apropiadas, para generar un reporte de pruebas e incidentes.
  6. Automatizar diferentes pruebas de software, mediante el uso de herramientas y la aplicación de buenas prácticas, con el fin de generar una batería de pruebas automatizadas y valorar su utilidad en relación con las pruebas manuales.
Contenidos: 
Objetivo específico Eje temático Desglose
1 Introducción a las pruebas de software Nociones básicas: aseguramiento y control de la calidad, verificación y validación, proceso de pruebas, caso de prueba, defecto de software. Aspectos psicológicos asociados al proceso de pruebas. Principios y factores de calidad relacionados con pruebas de software.
2,4 y 5 Proceso de pruebas El proceso de pruebas y actividades de V&V durante el ciclo de vida de un software. Gestión del Proceso de Pruebas, incluyendo su planificación, diseño, ejecución y monitoreo. Plan, Diseño, Especificación y Reporte de Pruebas según estándares internacionales actuales y enfoques alternativos. Gestión de defectos: reporte, seguimiento, verificación y cierre. Trazabilidad entre requerimientos, pruebas y defectos. Costo de reparación de defectos en cada etapa del ciclo de vida del software y estrategias para decidir cuándo terminar de probar. Enfoque “ágil” de las pruebas versus el enfoque tradicional. Métricas de pruebas de software. Modelos de madurez y de mejora del proceso de pruebas (por ejemplo, TMMi, TAP, TIM, TPI).
3 Tipos de pruebas Pruebas estáticas, dinámicas, manuales (revisiones de código, inspecciones), automatizadas, funcionales, no funcionales (carga y estrés, seguridad, localización, accesibilidad, usabilidad), exploratorias.
3 Niveles de pruebas Pruebas unitarias, de integración, de sistema, de aceptación (pruebas alfa, beta y finales). Pruebas de regresión.
4 Técnicas de diseño de pruebas Técnicas de caja negra: partición en clases de equivalencia, análisis de valor frontera, análisis causa-efecto, intuición y experiencia. Técnicas de caja blanca: criterios de flujo de control (de instrucción, de decisión, de condición, de decisión/condición, de condición compuesta, de caminos, de caminos base), criterios de flujo de datos (todas las definiciones, todos los usos, todos los pares definición-uso). Técnicas de pruebas combinatorias. Pruebas de mutación.
6 Automatización de pruebas ¿Qué son pruebas automatizadas? ¿Cuándo usar pruebas automatizadas? Bondades y limitaciones de las pruebas automatizadas. Herramientas de capture/replay para la automatización de pruebas. Plataformas (frameworks) para pruebas unitarias y dobles de prueba. Pruebas guiadas por datos y buenas prácticas de programación de pruebas. Herramientas para pruebas de carga y rendimiento, pruebas en bases de datos y generación automática tanto de datos de prueba como de pruebas.
Bibliografía: 

Libro de texto recomendado:
1.    Myers, G. J. The Art of Software Testing, 2da ed. Wiley-Interscience, 2004.

Otra bibliografía de apoyo:
2.    Burnstein, I. Practical Software Test Design. Springer, 2003.
3.    Coopeland, L. A Practitioner’s Guide to Software Test Design. Artech Hourse Publishers, 2004.
4.    Crispin, L., Gregory, J. Agile Testing: A Practical Guide for Testers and Agile Teams. Addison-Wesley, 2009.
5.    IEEE Computer Society. IEEE Std 610.12.1990 Standard Glossary of Software Engineering Terminology. 1990.
6.    IEEE Computer Society. IEEE Std 829.1998 Standard for Software Test Documentation. 1998.
7.    Kaner, C., Falk, J., Nguyen, H. Testing Computer Software. 2da ed., John Wiley & Sons, 1999.
8.    Kaner, C., Bach, J., Pettichord, B. Lessons Learned in Software Testing: A Context-Driven Approach. 1st ed., John Wiley & Sons, 2002.
9.    Lewis, W. Software Testing and Continuous Quality Improvement. 3rd ed, CRC Press, 2009.
10.    Naik, K., Tripathy, P. Software Testing and Quality Assurance: Theory and Practice. Wiley, 2008.
11.    Pezzè, M., Young, M. Software Testing and Analysis: Process, Principles and Techniques. Wiley, 2007.
12.    Quality Assurance Institute. CSTE Common Body of Knowledge. V6.2. 2006.
13.    Whittaker, J. Exploratory Software Testing, Pearson, 2010.
 

LIberación de responsabilidad: 

Este no es un documento oficial. Documentos oficiales se entregan en la secretaría de la escuela.