Tengo la tarea de obtener una aplicación heredada bajo prueba unitaria. Primero algunos antecedentes sobre la aplicación: es una base de código RCP Java Java de 600k LOC con estos problemas principales
- duplicación masiva de código
- sin encapsulación, se puede acceder a la mayoría de los datos privados desde el exterior, algunos de los datos de la empresa también se hicieron únicos, por lo que no solo se pueden cambiar desde el exterior, sino también desde cualquier lugar.
- sin abstracciones (por ejemplo, sin modelo comercial, los datos comerciales se almacenan en Object [] y double [] []), por lo que no hay OO.
Existe un buen conjunto de pruebas de regresión y un equipo de control de calidad eficiente está probando y encontrando errores. Conozco las técnicas para ponerlo a prueba en libros clásicos, por ejemplo, Michael Feathers, pero eso es demasiado lento. Como hay un sistema de prueba de regresión que funciona, no tengo miedo de refactorizar agresivamente el sistema para permitir que se escriban las pruebas unitarias.
¿Cómo debo comenzar a atacar el problema para obtener algo de cobertura rápidamente , de modo que pueda mostrar el progreso a la gerencia (y de hecho comenzar a ganar de la red de seguridad de las pruebas JUnit)? No quiero emplear herramientas para generar conjuntos de pruebas de regresión, por ejemplo, AgitarOne, porque estas pruebas no prueban si algo es correcto.