Bertrand Meyer: 7 Principles of Software Testing

rats on 2008-05-13T12:29:20

I can't find a link for a really useful article I received today via email on software testing. (Subscribe to Eiffelworld newsletter) (No attempt to insert whole article here, but here's the 7 principles. Read the article for explanations.)

Principle 1: Definition of software testing
To test a program is to try to make it fail.

Principle 2: Tests versus specs
Tests are no substitute for specifications. One can derive tests from specifications, not the other way around.

Principle 3: Regression testing
Any failed execution must yield a test case, to remain permanently part of the project's test suite.

Principle 4: Applying oracles
Determining success or failure of tests must be an automatic process.

Principle 5: Manual and automatic
An effective testing process must include both manually and automatically produced test cases.

Principle 6: Empirical assessment of testing strategies
Evaluate any testing strategy, however attractive it may appear in principle, through objective assessment based on explicit criteria and a reproducible testing process.

Principle 7: Assessment criteria
The most important property of a testing strategy is the number of faults (or, if faults are not directly measurable, failures) it uncovers as a function of testing time.