DEV Community

Qaiser Abbas
Qaiser Abbas

Posted on

1

7 Principles of Software Testing

According to International Software Testing Qualification Board there are seven principles that should be considered when developing the testing strategy for a software product.

1) Testing shows presence of defects

By testing you can show presence of defects in a product but you can never prove that the product under test is defect free.

2) Exhaustive testing is impossible

Testing all possible scenarios (all combinations of preconditions and inputs) is not feasible. Techniques like risk analysis should be used to prioritize and focus the testing efforts.

3) Early testing

The testing activities should be started as early as possible during the software or system development life cycle. The cost to fix a bug increases exponentially if the bug is found in a later phase of the development life cycle.

4) Defect clustering

In a project, a small number of the module can contain most of the defects. Pareto Principle to software testing state that 80% of software defect comes from 20% of modules.

5) Pesticide paradox

The test cases should be reviewed and updated on regular basis. New tests should be developed to exercise new parts of the software or system. If this is not done and the same tests are repeated again and again eventually no new bugs will be found, but this does not mean that the system is defect free. Testing should focus on continuous improvement during the complete development life cycle.

6) Testing is context dependent

The testing approach depends on the context of the software developed. Different types of software need to perform different types of testing. For example, The testing of the e-commerce site is different from the testing of the Android application.

7) Absence of errors fallacy

If a systems does not fulfill the user needs and expectations then having a bug free system does not help. Functional testing and a deep understanding of the customer expectations is a must during the development life cycle.

Image of Timescale

Timescale – the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay