If you are interested in testing and architecture, I recommend a brief article published today by the SEI (Feb 22, 2011). But I was disappointed to see a glaring omission from their ideas.
I’m glad to see the SEI Architecture group emphasize the importance of testability as a basic quality attribute that architectures should exhibit. But I feel they are missing an important point that should be part of the conversation. Their project’s goal is to find answers to these two questions:
- How can architects design an architecture to make testing more effective?
- How can testers use a given architecture to make testing more effective?
The implied goal: Make testing more effective.
But over eight years ago, the practice of Test-Driven Development arose, in part, as a reaction to the “architecture first” mindset.” Their goal was also to “make testing more effective.” But the approach was to write the tests first, and drive the architecture. If one really values testing, then by writing the tests first, to express the requirements, then the architecture that emerges is guaranteed to be testable.
I am NOT ridiculing the SEI’s efforts to pursue their goals. I think the goals are worthy. But I want the agile approach included in the conversation. In other words, I would add a third question to their research
- How can tests be used to improve an architecture and make it more testable?
In my opinion, I believe this balances their inquiry and broadens their perspective in a way that does not dangerously dilute their focus. Sometimes I feel as if the up-front design proponents exist in a different universe from the evolving design proponents. I believe we have much to learn from each other.
And just for fun, can you come up with several other ways in which we can “Make testing more effective” that have some relationship to architecture?