Distilled ramblings on Distributed systems
Let's say you're testing a platform or framework that is going to be used broadly, where the number of application scenarios is huge. You can't possibly build all of the possible kinds of applications to test those scenarios, no matter what your resources are, so how do you attain reasonable coverage? One answer is to complement application building and individual test cases with something in-between: building blocks. And a very nicely documented type of building block is the design pattern.
If you can implement design patterns successfully in your framework, that confirms a larger set of scenarios based on those patterns is achievable. If you can implement a complete suite of patterns, that really says a lot. There's a lot of bang for the buck here, because you don't have to go and build all those individual applications. There are two other valuable by-products of implementing design patterns: usability data and samples. You can grade the ease of implementation of patterns to identify usability issues. And the design pattern code may make great samples to include with your product.
Where design pattern testing falls short is when you have a feature area that no body of design patterns have addressed yet. Security is a prime example of this, where it seems we're still waiting for consensus and documentation of what the essential design patterns are.
Anonymous comments are disabled