Cambiar a contenido. | Saltar a navegación
Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires
|
Testing y análisis de software
Calificaciones
Cualquier duda respecto de las notas, consultar a eci@dc.uba.ar Apuntes
Turno:Mañana (9 a 12 hs) Idioma:Castellano RequisitosSe asumirán conocimientos generales en Ciencias de la Computación. En particular, los alumnos deberán estar familiarizados con al menos un lenguaje de programación, como C, C++, o Java, y tener un entendimiento básico de algoritmos y estructura de datos. Conocimientos previos de conceptos de testing es un plus, pero no es requerido. Síntesis:Los sistemas de software son cada vez más complejos, dinámicos y se encuentran en más lugares. La calidad de tales sistemas no puede ser garantizada a menos que se utilicen técnicas efectivas y eficaces para analizar y/o testear los elementos generados durante el desarrollo del software. El material para el curso consiste principalmente de publicaciones dado que muchos de los temas presentados son resultados de investigaciones que no son cubiertas por ningún libro de texto. Todas las publicaciones serán proveídas a los estudiantes antes de comenzar el curso. Programa:
Esta primera parte abarca los conceptos fundamentales de análisis de programas, los cuales son necesarios para entender el resto del curso. Luego, se discuten algunos análisis avanzados de programas, como software slicing (tomar "tajadas" del software convenientemente), y técnicas de análisis utilizadas para manipular construcciones de programa (por ejemplo, punteros, arreglos, recursión). - Análisis de control de flujo. - Análisis "Data-flow". - Análisis de dependencias de control. - Slicing. - Complicaciones en el análisis.
En esta segunda parte se comparan las características del análisis estático y dinámico de programas, y se discuten varias técnicas para recopilar datos en tiempo de ejecución. También se analizan técnicas de análisis dinámico útiles para depuración de software, como por ejemplo slicing dinámico y técnicas 'record-and-play'. - Distintos enfoques de análisis dinámico. - Técnicas de instrumentación. - Slicing dinámico. - Análisis de cobertura dinámico. - Técnicas 'record and replay'.
La parte final del curso refuerza el material presentado en las dos partes anteriores. Como en la Parte 1, esta tercera parte incluye una discusión inicial de los conceptos fundamentales de testing de software. Luego se discuten resultados recientes de investigación en áreas de testing, con particular énfasis en testing de depuración y testing de regresión. - Conceptos básicos de testing. - Criterios de adecuacion. - Depuración. - Test de regresión.
Profesor:
Acciones de Documento |
|
