¿Cuáles son las primeras tareas para la implementación de la Unidad de Pruebas en Brownfield Aplicaciones?

StackOverflow https://stackoverflow.com/questions/66361

Pregunta

¿Refactorizar SQL primera?Su arquitectura?o su base de código?¿El cambio de idioma?Hacer que tirar todo y empezar de cero?[No refactorización]

¿Fue útil?

Solución

Estoy añadiendo pruebas de unidad para un gran legado de espagueti codebase.

Mi enfoque es, cuando se le preguntó para resolver un problema, intento crear una nueva envoltura alrededor de la parte de la base de código que es relevante para mi tarea actual.Este nuevo contenedor es desarrollado utilizando TTD (la escritura de la primera prueba).Algunos de los tiempo de llamada en la no-unidad de prueba de código de la herencia.En otras ocasiones tengo que hacer una nueva copia de un módulo ya existente y empezar a hacer de la violencia grave para ella.A veces me reescribir funcionalidad desde cero.

Pero como me estoy guardando bastante bien probado me siento bastante en el control.

Lo que me parece con esta base de código, el cual ha sido desarrollado con mucho copiar y pegar, es que una vez que obtenga una comprensión particular de una parte, y el extracto de algunas de las funciones de la misma (que se realizan pruebas en primer lugar) ...estas funciones a menudo resultan ser utilizable en muchos otros lugares y por lo que la tasa de sustitución del código de la herencia con mi propia unidad de prueba bibliotecas aumenta.

Yo no (y no tienen autoridad para) tratar de reescribir o añadir pruebas a las partes del código que no son tocados por mi problema actual (generalmente por un error yo estoy tratando de arreglar), pero sí tengo bastante agresiva actitud proactiva con respecto a cualquier cosa que se toca y que podría ser relevante.

Actualización :Penguinix preguntó :"¿Qué idiomas que usted trabaja?Hay una Prueba específica Arnés recomiendas?".

Ahora mismo estoy trabajando en ...er ...Las paperas!Pero el mismo principio funciona en cualquier lugar.

Algo que transformó mi comprensión de la UT fue MinUnit : http://www.jera.com/techinfo/jtns/jtn002.html

Cuando vi MinUnit, que era una especie de "zen" momento de la iluminación para mí.Se despojó de los malentendidos que tenía sobre la unidad de pruebas de ser algo complicadas que requieren de sofisticados OO marcos etc.Entendí que UT estaba a punto de escribir un montón de pruebas.El "arnés" usted puede escribir, en unos 3 minutos, en cualquier idioma que te gusta.Acaba de llegar y hacerlo.

Otros consejos

Esto realmente depende del estado de la base de...hay masivo de las clases?una clase con mega-métodos?Son las clases estrechamente unida?es la configuración de una carga?

Teniendo en cuenta esto, sugiero la lectura Trabajar de manera Efectiva con el Código Heredado, la elección de sus problemas, y la aplicación de las recomendaciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top