7 Principles of Software Testing

Posted on March 26, 2011 | Tagged as: , | 3 comments

As software development techniques have advanced during the last decades, some basic principles of testing have also been established. Describing theoretical ideas and practical hints, these principles can be seen as a basic guideline for both, software testing and coding.

Software Testing shows presence of errors

In general, testing proves the presence of errors. Sufficient testing reduces the likelihood of existing, not discovered error conditions within the test object. It does not verify that no more bugs exist, even if no more errors can be found. Testing is not a prove that the system is free of errors.

Exhaustive testing is not possible

An exhaustive test which considers all possible input parameters, their combinations and different pre-conditions can not be accomplished (except for trivial test objects). Test are always spot tests. Therefore, the effort must be managed by risk, priorities and thoughtful selection.

Test early and regularly

Testing activities should begin as early as possible within the software life cycle. They should be repeated regularly and have its’ own agenda. Early testing helps detecting errors at an early stage of the development process which simplifies error correction (and reduces the costs for this work).

Accumulation of errors

There is no equal distribution of errors within one test object. The place where one error occurs, it’s likely to find some more. The testing process must be flexible and respond to this behavior.

Fading effectiveness

The effectiveness of software testing fades over time. If test-cases are only repeated, they do not expose new errors. Errors, remaining within untested functions may not be discovered. In order to prevent this effect, test-cases must be altered and reworked time by time.

Testing depends on context

No two systems are the same and therefore can not be tested the same way. Testing intensity, the definition of end criteria etc. must be defined individually for each system depending on its testing context. E-commerce websites require a different approach than online-banking applications.

False conclusion: no errors equals usable system

Error detection and error fixing does not guarantee a usable system matching the users expectations. Early integration of users and rapid prototyping prevents unhappy clients and discussions.

3 Responses to “7 Principles of Software Testing”

  1. Mustafa August 1st, 2011 at 4:59

    Good work that’s helps me heaps in answering my questions.. cheers

  2. LuckyS May 30th, 2012 at 21:31

    I’m really happy to come across your site….It’s helps me about testing company questions…

    thanks muchos..

  3. STAI March 2nd, 2016 at 15:02

    Well written and formatted.
    Thanks for sharing your knowledge..

    Happy Testing 🙂

Comments are closed

agile brand development interaction design leadership mobile persuasion product management requirements engineering search seo service design system design testing user experience user story