A Little Treatise on the Nature of Software
- A piece of code can be anywhere between engineering and craft
- Engineers have comprehensive testing suites to cover rigorously detailed requirements and conditions
- Craftsmen don't test at all - they try it out
- Software requirements can only be defined in terms of input-output...
- ...and when used in complex manner it is very hard to predict/cover all possible situations
- Smaller the unit is, more comprehensive test can be designed
- It can be very hard to provide an adequate testing environment for the small units