No puedo usar pruebas unitarias para algunas partes del código, así que estoy retrocediendo a las pruebas de regresión. Me gustaría comprobar si mi programa se comporta de la misma manera después de algunas modificaciones. Y por comportamiento me refiero sobre todo a un estado de estructuras de datos. Hasta ahora los estaba serializando en formato de texto legible para los humanos y los había descargado a algunos archivos en la primera ejecución. Luego, en los siguientes vertederos, podría comparar si el estado cambió o no. Y actualícelo si el cambio proviene de una nueva característica y no de un error.Pruebas de regresión en C++
Podría usar una biblioteca (C++) para organizar todo eso. ¿Conoce alguna? Junto con los archivos de volcado proporcionaría una unidad de prueba barata y masiva.
Lo más engorroso son los procedimientos de serialización. A veces simplemente dejo de lado el estado de la memoria, pero cuando es diferente, es difícil realizar una ingeniería inversa. Entonces me cambié a otro método. Ahora, durante la fase de comparación, leo un volcado de memoria en un objeto "fantasma" y ejecuto un método diff especializado (operador == con informes de errores enriquecidos), que a veces es más fácil de escribir que la serialización en formato de texto legible para el ser humano.
Básicamente tengo ganas de reinventar la rueda, por lo que mis preguntas son bastante generales:
¿Cómo se realizan las pruebas de regresión (si se hace)?
¿Utiliza alguna biblioteca/kit de herramientas?
¿Alguna vez ha implementado uno para sus propias necesidades?
Y solo por curiosidad:
¿Alguna vez has querido hacer pruebas de regresión, pero algo te detuvo?
Solo por curiosidad ... ¿por qué no puedes usar pruebas unitarias? – nathan
Principalmente porque el sistema funciona con una gran cantidad de datos y es difícil escribir aparatos para probar las subrutinas. –