I have been having a discussion with Marc Clifton in regards to unit testing.
Marc has been confirming what I have been suspecting. Writing good unit test cases is hard. It is easy to write a positive test case that verifies that the application does the right thing if it is given expected conditions. But trying to find a negative test case that is likely to break the component it is much harder.
So while we have great tools, techniques and processes at hand, we have managed to address everything but the hard bit.
Compare this with system testing. System testers have the same problem yet they do come up with reasonable negative test cases.
I am speculating that it has to do with the specifications that are available. A system tester has (hopefully) Use Cases, which are narratives. The strength of narratives are that they can contain nuances and ambiguity that leads the reader to find potential weaknesses.
On the other hand the designer of a component has non-narrative style specifications: class diagrams, interfaces, sequence diagrams, state diagrams (in order of commonality). These are clear and concise pieces of instruction to the designer. And that may be the problem. They are so deterministic that they do not invite the reader to think of what might go wrong.
More about this later
Last Visit: 31-Dec-99 19:00 Last Update: 18-Dec-14 8:11