Estoy a punto de asumir la tarea de volver a implementar una interfaz ya definida (un conjunto de archivos de encabezado C ++) en una base de código relativamente grande y antigua. Antes de hacer esto, me gustaría tener una cobertura de prueba tan completa como sea posible, para poder detectar errores de reimplementación tan pronto y fácilmente como sea posible. El problema es que la base de código ya existente no fue diseñada para ser fácilmente comprobable, con (muy) grandes clases y funciones, un alto grado de acoplamiento, funciones con (muchos) efectos secundarios, etc.
Sería bueno saber de cualquier experiencia previa con tareas similares, y algunos consejos buenos y concretos sobre cómo hizo para adaptar las pruebas automatizadas (unidad, integraciones, regresión, etc.) a su código heredado.