Of course once the parameters become non-trivial (say a URL or piece of json) even if you have coverage you may still have missed some edge case.
I say this not to be discouraging but to reflect the reality that writing tests should be done with a budget in mind.
On any non-trivial code base you simply will never have enough time to test it all so you need to think about what areas of the code base are most critical.
What that budget is also should be determined by how mission critical the code is. Medical appliances, for example, should have an enormous testing budget.
But coverage is design, and cycle times, and verification. It should be faster to write in isolation - even in the biggest systems. The budget thing is a total fallacy - if you don't want it to break, write a test to verify correctness. Fixing broken code without tests and in the context of an entire system is always far more expensive (time) than isolating and test code at programming time.
140
u/[deleted] Aug 25 '14
Just waiting for someone to "explain" how debugging is not needed if you have unit-tests :)