Murphy Laws applicable to software testing.
1. Every non trivial program has at least one bug
Corollary 1 – A sufficient condition for program triviality is that it have no bugs.
Corollary 2 – At least one bug will be observed after the author leaves the organization
2. Bugs will appear in one part of a working program when another ‘unrelated’ part is modified.
3. Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited.
4. Adding manpower to a late software project makes it later.
5. A working program is one that has only unobserved bugs.
6. Software bugs are impossible to detect by anybody except the end user.
7. The number of bugs always exceeds the number of lines found in a program.
8. An expert is someone brought in at the last minute to share the blame.
9. A patch is a piece of software which replaces old bugs with new bugs.
10. The chances of a program doing what it’s supposed to do is inversely proportional to the number of lines of code used to write it.
11. It’s not a bug, it’s an undocumented feature.
12. If a project is completed on schedule, it wasn’t debugged/tested properly.
13. The worst bugs in your program will show up only during the final review.
14. If it works, it’s production. If it doesn’t, it’s a test.
15. The likelihood of problems occurring is inversely proportional to the amount of time remaining before the deadline.
16. After a software is released, the first bug found will be by a person who normally does not use that portion of the program but was wondering why he can’t do something he normally would not do.
17. Walking on water and developing software to specification are easy as long as both are frozen.
18. Good enough – isn’t, unless there is a deadline
19. Murphy works for Microsoft. In fact, he is in charge of their QA
20. “There is always one more bug”. Great work!
21. 90 – 90 law
“The first 90% of the software takes 90% of the time to build, and the last 10% of the software takes the other 90% of the time.”