The Software Tester's Axioms

Sorting it all Out
Michael Kaplan's random stuff of dubious value
Be sure to read the disclaimer here first!

The Software Tester's Axioms

  • Comments 26

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!)

Comment on the blather
Leave a Comment
  • Please add 2 and 2 and type the answer here:
  • Post
Blog - Comment List
  • Back near the beginning of the month, when I posted about how Everybody's doing the wraparound...., I...
  • (Previous posts in this series: Parts 0, 1, 2, 3, 4, 5, 6, 7, and 8)
    Today, we're going to take a look...
  • After Clint posted Death of an old friend -- Data Access Pages, I do not feel quite as guilty that I...
  • Reader Tina asked me about the 'cross-language support' section of the Knowledge Base article 910228...
  • Previous posts in this series (including today's!): Part 0 (The introduction) Part 1 (Business before

  • Serdar asked: Hi, Is it possible to call GetLocaleInfo in a different language? What I’m trying to do

  • The other day I was chatting by email with a developer on a unique problem -- she was trying to support

  • Apologies for the Sound of Music allusion! Via the Contact link, tiwunster asked me: Hi I have a question

  • Kim Gräsman asks via the Contact link: Subject: GetTimeZoneInformation changed on XP? Hi Michael, I haven't

  • Over in the Suggestion Box, Van Anderson asked: I've always wanted to know how to chain dead keys. Since

  • Our story thus far:

    It was almost 4½ years ago that I wrote some basic rules.

    Rules for

Page 2 of 2 (26 items) 12