1. Introducción
1.1. Objetivo
1.2. Contexto y Problemas Actuales
1.3. Tests de Regresión y Tests de Unidad
1.4. Trabajos Relacionados
1.5. Metodología de Diseño, Desarrollo y Especificación
1.6. Estructura de Contenidos
2. Ingeniería de Software, Calidad y Frameworks Actuales
2.1. Ingeniería de Software y QA
2.1.1. Ubicación de QA en la Ingeniería de Software
2.1.2. Tipos de Tests
2.2. Tests de Regresión Automatizados – Herramientas actuales
2.2.1. Selenium IDE
2.2.2. WebDriver
2.2.3. QALiber
2.2.4. Relación de estas herramientas al presente trabajo
2.3. Tests de Unidad
2.3.1. Automatización
2.3.2. Independencia de Escenarios
2.3.3. Tests de Unidad en el Modelo por Capas
2.4. Framework para Tests de Unidad: JUnit
2.4.1. Instanciación mediante Caja Blanca
2.4.2. Aserciones
2.4.3. Test-Suites y Dinámica del Framework
2.5. Tests de Unidad y Capa de Persistencia
2.5.1. Implementación de la Capa de Persistencia
2.5.2. Mapeadores Objeto-Relacional - Hibernate
2.5.3. Problemas del Esquema Planteado
2.6. Framework para Tests de Unidad con Persistencia: DBUnit
2.6.1. Aspectos Básicos
2.6.2. Especificación del Escenario de Pruebas
2.6.3. Instanciación mediante Caja Blanca
2.6.4. Ejecución de Tests y Aserciones
2.6.5. Problemas del Esquema Planteado
3. Sistema Financiero Cuenta Única del Tesoro
3.1. Modelo Financiero Cuenta Única del Tesoro
3.1.1. Introducción al Modelo Financiero CUT
3.1.2. Diagrama Básico
3.1.3. Descripción de las Entidades del Modelo Financiero
3.2. Sistema Informático Actual (SCUT)
3.2.1. Módulo de Ingresos
3.2.2. Módulo de Pagos
3.2.3. Módulo de Conciliación
3.2.4. Módulo de Planificación Financiera
3.2.5. Módulo Administrativo
3.2.6. Aspectos técnicos y Tecnologías utilizadas
3.3. Tests de Unidad en el Contexto Actual del Sistema CUT
4. Esquema General de Testing
4.1. Arquitectura de la Aplicación Objetivo
4.1.1. Arquitectura básica por capas
4.1.2. Arquitectura SOA
4.1.3. DTOs
4.1.4. Implementación de los Servicios
4.1.5. Arquitectura final de la aplicación objetivo
4.2. Esquema de Testing para Usuarios Finales
4.2.1. Definición estática y dinámica de tests
4.2.2. Aplicación Objetivo y Aplicación de Testing
4.2.3. Conexión de las dos aplicaciones
4.2.4. Exportación de Servicios
4.2.5. Uso básico de la aplicación de testing
4.2.6. Persistencia de la aplicación de testing
5. Modelo Básico de la Aplicación de Testing
5.1. Lineamientos de Diseño
5.2. Dinamismo mediante Reflection
5.3. Diseño del Modelo Básico
5.3.1. Test Dinámicos: extensión de Frameworks preexistentes
5.3.2. Modelo de ejecución de operaciones
5.3.3. Operaciones de Ejecución y Aserción
5.3.4. Operaciones de Aserción Grupales
5.3.5. Test Suites
5.3.6. Modelo básico completo
6. Modelo Extendido de la Aplicación de Testing para SOA
6.1. Técnicas de Extensión
6.1.1. Lineamientos de Diseño para la Extensión
6.1.2. Implementación de la extensión
6.2. Configuración del Modelo Básico para aplicación objetivo SOA
6.2.1. Configuración de Operaciones de Servicios
6.2.2. Localización de Servicios de la aplicación objetivo
6.2.3. Modelo de Descriptores de Servicios
6.2.4. Test Manager para Servicios
6.2.5. Importación de Descriptores de Servicios
7. Modelo Extendido de la Aplicación de Testing para Persistencia
7.1. Flexibilidad vs. Persistencia
7.2. Dos operaciones básicas: Persistencia y Regeneración
7.3. Persistencia de Objetos
7.3.1. Persistencia de Tipos Primitivos
7.3.2. Persistencia de Wrappers
7.3.3. Persistencia de DTOs
7.4. Persistencia de Métodos
7.5. PersistentObjects y PersistentMethods en contexto
7.6. Creación transparente de componentes de testing
7.7. Modelo Extendido Completo
8. Implementación y GUIs de las Aplicaciones Componentes
8.1. Aplicación Objetivo (SCUT)
8.1.1. Arquitectura de la aplicación
8.1.2. Uso de la aplicación
8.2. Aplicación de Testing
8.2.1. Arquitectura de la aplicación
8.2.2. Uso de la aplicación
9. Conclusiones y Trabajos Futuros
10. Fuentes y Referencias
11. Anexo A: Ejemplo de Uso Básico de DBUnit
12. Anexo B: Instalación del Software Entregado