Antecedentes Trabajo en un equipo de 7 desarrolladores y 2 probadores que trabajan en un sistema logístico. Usamos Delphi 2007 y desarrollo modeldriven con Bold for Delphi como framework. El sistema ha estado en producción unos 7 años y tiene alrededor de 1,7 millones de líneas de código. Lanzamos a producción después de 4-5 semanas y después de casi cada versión tenemos que hacer algunos parches para los errores que no encontramos. Esto es irritante tanto para nosotros como para los clientes.Aumento de la capacidad de prueba, al codificar con Bold for Delphi framework
Prueba actual La solución es, por supuesto, más pruebas automáticas. Actualmente tenemos pruebas manuales. Un Testdbgenerator que comienza con una base de datos vacía y agrega datos de los métodos modelados. También tenemos Testcomplete que ejecuta algunos scripts básicos para probar la GUI. La falta de tiempo nos impide agregar más pruebas, pero los scripts también son sensibles a los cambios en la aplicación. Hace algunos años, realmente probé pruebas unitarias con DUnit, pero me di por vencido después de algunos días. Las unidades tienen conexiones muy fuertes.
condiciones previas Unidad de prueba creo que sé algunas condiciones previas para las pruebas unitarias:
- escribe el pequeño métodos que hacen una cosa, pero lo hacen bien.
- No te repitas.
- Primero escriba la prueba que falla, luego escriba el código para que pase la prueba.
- Las conexiones entre las unidades se sueltan. No deberían saber mucho el uno del otro.
- Usar inyección de dependencia.
Marco de usar Nos puede actualizar a Delphi XE2, principalmente debido a que el compilador de 64 bits. Miré un poco el Spring, pero esto requiere una actualización de D2007 y eso no sucederá ahora. Talves el próximo año.
La pregunta La mayoría del código aún no se ha probado automáticamente. Entonces, ¿cuál es el mejor camino a seguir para aumentar la capacidad de prueba del código anterior? ¿O tal vez lo mejor es comenzar a escribir pruebas solo para nuevos métodos? No estoy seguro de cuál es la mejor manera de aumentar las pruebas automáticas y los comentarios al respecto son bienvenidos. ¿Podemos usar D2007 + DUnit de vez en cuando para cambiar fácilmente a Delphi XE2 + Spring más tarde?
EDIT: Acerca de la metodología de prueba actual para las pruebas manuales es simplemente "libra y trata de romperla" como Chris llámala.
Votación para migrar a Programadores. Es una buena pregunta y más adecuada allí, creo. –
+1 Gracias por hacer esta pregunta. – jrodenhi