7 Software Testing Principles

Arine Baghdasaryan
Fintegro Company Inc
4 min readFeb 19, 2019

It happens sometimes while testing a great number of new features testers forget even the most important principles in testing and thus making a lot of strategic and behavioral errors in software testing.

In this article, we want to point out the well-known and basic principles that should not be forgotten when testing any application or new feature.

Principles in software testing

1. Exhaustive testing is impossible by any of the testers.

I think that everyone understands that it is simply not possible to test all possible cases and combinations, of course if this is not a trivial case.

All cases simply cannot be included in the test suite, since it would take us a lot of time and in the end, it would not cost us such an effort. If each tester sits down and thinks through all the scenarios carefully and if you give this feature for testing to another tester, then he usually finds a bunch of possible scenarios and cases that can be included. Therefore, in software testing, it is accepted to analyze a product or a new feature and then focus efforts in testing on riskier and more priority cases and areas of our product.

2. Defect clustering

If you take a product and break it into modules, then during the testing process you will notice that the main part of the bugs lies in one or several product modules, therefore you can note the effect of the clustering of bugs. As a rule, this can be observed in completely different products. In order to effectively test our product, you should distribute your efforts in testing according to the real density of bugs in the product modules; if we test for the first time, it is proportional to the expected density. Over time, the trend with the clustering of bugs may change from module to module. This should be monitored and redistributed in further testing.

3. The effectiveness of early testing

It is very important to start testing as early as possible and anticipate possible errors that the developer can make.

Before developing and testing this or that product, you should find out all the specifics, possible conflicts in the specification, the inability of a new feature to interact with another module, make sure that the tester, developer, and product equally understand how it will be implemented. Remember the sooner there are bugs the cheaper to fix them.

4. The pesticide paradox.

This means that as you run your tests multiple times, they stop been effective in catching bugs. Moreover, part of the new defects introduced into the system will not be caught by your existing tests and will be released onto the field.

5. Testing is context dependent

Testing depends on our product. There are many programs, products and each of them should be approached individually in terms of testing. In some cases, you should pay more attention to safety, in some to usability. Therefore, it is not necessary to measure all tests with the same yardstick and test on one pattern.

6. The absence of errors fallacy

Testing shows the presence of bugs in the product, but not their absence. Many people think that if the new functionality has passed the testing stage, then everything means that there are no more bugs. This is a false judgment. Testing only reduces the chance of bugs appearing in the product. Consequently, in the process of testing a lot of bugs can be missed and this will not mean that if the product has been tested, now this product is 100% working correctly.

7. Shows presence of errors

Testing an application can only reveal that one or more defects exist in the application, however, testing alone cannot prove that the application is error free. Therefore, it is important to design test cases which find as many defects as possible.

BUT! Don’t forget about almost the most important thing!

Sometimes testing and searching for functional bugs, we forget to look at the other side and ask if the user needs it. If this feature does not meet the user’s expectations and needs, then no matter how high-quality our product is — this is not so important.

By the way, have you read our previous article? Don’t miss a chance to read it!

And let professionals provide your project with test automation!

Feel free to contact us and do not forget to follow us in social media:

LinkedIn: https://www.linkedin.com/company/fintegro-company-inc

Twitter: https://twitter.com/fintegro

Facebook: https://www.facebook.com/fintegro

--

--

Arine Baghdasaryan
Fintegro Company Inc

Research Specialist at Fintegro Company Inc. Interested in QA, Startups, travelling, books and learning foreign languages ;)