by Michael S. Kaplan, published on 2005/11/12 01:01 -08:00, original URI: http://blogs.msdn.com/michkap/archive/2005/11/12/491519.aspx
Like any science (and please do not for a moment doubt that Test is an engineering discipline, and at heart a good engineer is an applied scientist!), software testing has some basic principles which cannot be proven but are simply universal truths upon which other theorems can be based.
(The original version of these was put up years ago by me in a newsgroup, but after many reformulations, the current ones have stayed stable for some time. There have been other corollaries and theorems proposed but I have not captured all of them here)
Here are the Tester's axioms:
Axiom I: If you have not tested it, assume it is broken.
Axiom II: If someone changes it, they probably broke it.
Axiom III: Sometimes when it is not changed, it breaks too.
Axiom IV: What is broken on the test machine often works fine on the dev machine.
Axiom V:There is always another bug that a user can find.
And there is of course the first theorem of test, which is largely based on applying on the developer's doubt of Axioms 2, 3, and 5 created by the circumstances of Axiom 4:
THEOREM I: Developers will often not believe there is a bug until it is proven to them, sometimes with extreme prejudice.
And of course the corollary to Axiom V:
There are at least as many bugs left to be found as there are users who haven't yet run your code.
(Special thanks to David Fenton for pointing out the corollary to Axiom V, years ago!)
# Maurits on Saturday, November 12, 2005 5:50 AM:
# Jonathan Wilson on Saturday, November 12, 2005 6:36 AM:
# Michael S. Kaplan on Saturday, November 12, 2005 9:30 AM:
# Michael S. Kaplan on Saturday, November 12, 2005 9:32 AM:
# Serge Wautier on Saturday, November 12, 2005 9:52 AM:
# Nicholas Allen on Saturday, November 12, 2005 10:52 AM:
# Marvin on Saturday, November 12, 2005 1:14 PM:
# Michael S. Kaplan on Saturday, November 12, 2005 1:29 PM:
# Michael S. Kaplan on Saturday, November 12, 2005 1:30 PM:
# Nicholas Allen on Saturday, November 12, 2005 2:21 PM:
# Michael S. Kaplan on Saturday, November 12, 2005 4:39 PM:
# Marvin on Saturday, November 12, 2005 9:30 PM:
# Michael S. Kaplan on Saturday, November 12, 2005 9:40 PM:
# Jerry Pisk on Sunday, November 13, 2005 3:27 AM:
referenced by
2012/05/02 Who owns keyboard testing?
2011/04/16 Chain Chain Chain, Chain of Dead Keys
2008/06/29 Did someone break GetTimeZoneInformation in XP?
2008/06/18 How Do You Solve a Problem Like Meiryo? (Windows XP edition)
2008/01/17 Expertise isn't always everything (aka When the one who is learning teaches us something important)
2007/07/13 GetLocaleInfo for other languages?
2007/01/01 Converting a Project to Unicode: Part 5 (Are we there yet? Well, not *just* yet)
2006/07/02 Support of 'Cross Language Support'
2006/06/11 Death of a Data Access Page Wizard
2006/04/12 Getting all you can out of a keyboard layout, Part #9a
2006/03/30 If at first you don't succeed, there's probably still a bug
2006/02/22 Keep off the grass