1 Introducción
Objetivos Generales
Objetivos Específicos
Contribuciones de esta tesis
Publicaciones y trabajos vinculados a esta tesis
2 Refactoring: nociones básicas
2.1 Conceptos
2.2 Justificación del refactoring
2.3 Aseguramiento del resultado del refactoring
2.4 Herramientas de refactoring
3 Pruebas automatizadas36
3.1 Pruebas automatizadas y TDD
3.2 Cobertura de las pruebas
3.3 Pruebas y diseño en capas
4 Fragilidad del refactoring ante cambios de protocolo
4.1 El problema
4.2 Propuestas de solución existentes
5 Refactoring asegurado por niveles de pruebas
5.1 Propuesta de este trabajo
5.2 El método aplicado
6 Herramienta de cobertura múltiple y su aplicación en un caso de estudio
6.1 El caso de estudio
6.2 La herramienta Multilayer Coverage
6.3 Refactoring asegurado por niveles de pruebas en el caso de estudio
7 Conclusiones
7.1 Discusión
7.2 Trabajos relacionados
7.3 Recapitulación de los aportes de la tesis
7.4 Direcciones futuras
8 Bibliografía y referencias
9 Anexos
9.1 Anexo A: Algunos olores usuales que se evidenciaron en el caso de estudio
Anexo B: código completo de los ejemplos