Design For Testability
Leo un artículo interesante (introductorio) en MSDN Magazine, donde recalcan que una de las mejoras de testear temprano y diseñar pensando en el testing, es el que se consigue codigo mucho mas facil de probar y hacerle debug. Esto parece una ventaja muy grande y es mi principal incentivo para poder incorporar metodologias agiles (TDD, DDD) en nuestro proceso de desarrollo.
En el articulo tambien mencionan los principales problemas que se tienen al testear aplicaciones como las que hoy desarrollamos en Concepto, que son:
- el simular el funcionamiento de la base de datos para obtener resultados consistentes y rapidos
- chequear eventos externos (como el envio y recepcion de mail, webservcies, etc)
- workflows
Algunas de las conclusiones del articulo:
Smaller tests are cheaper to create, easier to understand, faster to run, and much simpler to debug. It sounds like more work to write a bunch of unit tests than a single integrated test, but I've frequently found it more efficient to test small units of code before attempting to integrate those units in a bigger test.The Big PictureI would say that my focus on testability over the past five years has had more impact on how I approach software design than anything else. Granted, there are times when I have to go out of my way in a design for no other purpose than to make the code testable. In the end, though, I think that testability goes hand in hand with the classical definition of a good design.Carefully considering the question, how can I test this in isolation? is yet another tool that will help you arrive at the classic design qualities of cohesion, coupling, and separation of concerns in your codebase.
Fuera de Tema:
Tengo una duda existencial
Testability como se traduce?. La traducen como:
comprobabilidad; Sinónimos: provability, verifiability; Possibility of having a proof. ; Capability of being demonstrated or logically proved.
pero me suena muy feo..
Hola Enrique,
ResponderBorraren el estándar SQuaRE (ISO 25000, antiguo ISO 9126) lo he visto en español siempre traducido a "facilidad de pruebas", y creo que transmite bastante bien el concepto.
Saludos