7 Software Testing Principles
In the initial phase of my career, whatever I understand about this is, 7 key principles can add smartness to your hard work. And when possible, “Smart work over hard work is important.”
And, the principles are as following:
1) Exhaustive testing is not possible
It is not possible to do exhaustive testing but yes, some domains need testing in-depth.
As per some important aspects like risk assessment of the application, a tester can decide the depth of testing level at which effective testing can be conducted for an application and in given time the test cycle closure can be done. Else it will be very hard to complete the testing of whole application if he will go blindly on the exhaustive way.
2) Defect Clustering
It is all about distribution of defects, if you will analyze the defects clusters properly, you will get to know that, these are not across the app but some modules or sections have the most of them. Sometimes these defects are due to the silly mistakes are done by the developers.
3) Pesticide Paradox
It states, in farming, do not give chance to insects to develop a resistance for your pesticide by using same pesticides repetitively.
Discovery of new bugs will stop if a tester does not revise the test techniques and applies the old techniques repeatedly.
For effective results of testing, it requires to review and revise your test cases and adding the new or different cases continuously. Because same test cases will no longer help you to find new defects at all.
4) Testing shows the presence of defects
As a tester, many times you will face that some defects or bugs could not be discovered by you and it will be bug leakage. The probability of finding undiscovered defects or bugs will be very less if you follow this principle.
5) An absence of Error – fallacy
This can happen in many cases, but let us consider a case if testing of the application is done thoroughly for wrong requirements. It gives the result as a system with no defects and bugs but it is not as per the client’s requirement and not usable for the targeted users. So, this principle guides a tester to go on the right path.
6) Early Testing
This is one way through which a project could be saved from being in the escalation stage.
Most of the times, it happens that the major doubts which are not cleared in early stages become repeated bugs or defects of the application and the reason is lack of testing in early stages. They will be deferred by the developers every time and it will increase “client’s frustration”. So as per me, early testing is the better option than to burn in the heat of client’s frustration.
7) Testing is context dependent
You have to apply different testing techniques and methodologies for different types of applications as per its context. Obviously, a gaming app cannot be tested in a way that a banking app should be tested. Tester has to follow different approach as well as give a different focus for testing a game and for testing a banking application. So, which type of testing strategy should apply to any application can be decided on the basis of the context of the application.
So, by following these principles, do smart-work over hard work whenever it is required.
At BoTree Technologies, we build web and mobile applications to add value to our client’s business. We align ourselves to ensure that our client benefits the most out of our engagement.
We work in Ruby on Rails, Python, Java, React, Android, iOS and RPA as well.
Drop us a line to discuss how can we help take your business to the next level.
Choose Your Language
Subscribe to Our Newsletter
- Digital Marketing
- IT Consulting
- Project Management