There are no bugs in software
A 'bug' is a wingless or four winged insect with mouth parts adapted for piercing and sucking of the order Hemitera.
Code does not have bugs, it has defects!
When you make an error in your thinking (or your typing) you introduce a defect in your code, if you do not catch it before it goes to testing (or worse, it ships) it will show up as a fault when the code is running. Faults are caused by defects. Defects are caused by errors. Bugs hatch from eggs.
Defects are cancer in code; the earlier there are detected the easier they are to remove.
- If it is detected before it is checked in, it is as if it never happened.
- If it is detected by the testing team, it can be eliminated before the customer sees it.
- If the beta testers detect it, it will not ship to the main customer base.
- If it ships, you will need to deal with it for as long as the defective release is being supported!
We are convinced that code is defect free when either:
- It is so simple there is obviously nothing wrong with it or
- It is so complex there is nothing obviously wrong with it.
- Mathematically proven it to be defect free (and proven that your proof is correct), and
- Run it through a full coverage test suite that deals with restricted resources, device failures, all possible timing issues, and all other possible condition under which the code could fail (such a test suit is probably not even theoretically possible).
But always remember, bugs do not sneak into code, programmers put defects there!
Labels: Programming