My Take On Risk Based Testing And Exhaustive Testing?
Hi Tester !
As a tester, I have to decide what to test.
And also how much to test. This question usually arises while planning for regression testing. Because regression test is to make sure that any new code is not breaking anything.
Now what is the best way to test?
Ideally, I should be testing everything.
That is executing all test cases from regression. Even for a bug fix. This confirms that the fix is not introducing any new bug in working functionality.
This is called as exhaustive testing.
I have another option.
That is testing only what is required. But deciding what is to be tested, what is required is crucial. This I think comes mainly by experience.
This is called as risk bases testing.
I usually analyse what is the risk, if I don’t test a particular feature. I call it as Impact analysis. I analyse what is the impact of a bug fix or new feature on existing features.
Other view of impact is impact on the product, if bug exists.
To Summarise, there are 2 testing techniques:
They are:
- Exhaustive Testing
2 . Risk Based testing.
Now here are the characteristics of each of these methodologies.
How to become a good QA Lead-learn from my experience !
Exhaustive Testing
Exhaustive testing is a technique to test every conceivable aspect of a software application.
In this method, I aim to test every existing feature. I usually plan this by executing regression test cases. This testing gives me confidence in quality as I would have tested every functionality.
This thoroughness may seem like the ultimate quality assurance approach.
But it comes with its own set of challenges and limitations.
Steps:
I follow these steps in carrying out Exhaustive testing.
- Identify all possible input data and conditions
- Test case creation for each possible combination of input data and conditions
- Execute all of these test cases
- Analyze the execution results and report bugs
Advantages of Exhaustive testing
Based on my experience, following are the advantages of Exhaustive testing:
- Possibility of uncovering maximum defects is more
- Quality assurance level is more
- Most comprehensive testing
Challenges of Exhaustive testing
The challenges with the Exhaustive testing are:
- Time consuming
- Cost of testing is high
- Difficult to test with all possible combination of data and conditions
- Creating test cases for all combinations is laborious work
- Can be difficult to execute all test cases
You now know the advantages and challenges of Exhaustive testing.
Now, you can see that, these can be applicable for:
- Smaller applications
- Suitable for products with critical safety or security requirements
- Can best be used for life-critical applications
Risk Based Testing
Risk-based testing focuses on testing risky areas.
The areas/ features of the software most likely to have defects or cause problems. This is done by identifying and assessing the risks associated with the software.
Then prioritizing the tests based on the level of risk.
This is technique is not a complete testing. But it attempts to test the features of the application, which is most used and or features which are impacted by the bug fixes.
Steps:
I follow these steps in carrying out Risk based testing.
- Risk identification
- Assessing risks-probability of risk occurrence
- Prioritize the risks
- Develop/update test cases for prioritized functionalities
- Execute tests
- Analyse results
- Continue with next priority of risks
Advantages of Risk based testing
Based on my experience, following are the advantages of Risk based testing:
- Improved testing efficiency
- Reduced cost of testing
- Improved application quality
- Reduced risk of application failure
Challenges of Risk based testing
The challenges with the Risk based testing are:
- Difficulty in risk identification
- Challenges in risk impact analysis
- Difficult to prioritise the risks
You now know the advantages and challenges of Risk based testing.
Now, you can see that, these can be applicable for:
- Suitable for larger applications
- Suitable for non critical products
- Best applied for complex applications.
Conclusion:
The best approach to testing will depends on case to case, the specific software system being tested. For small, simple applications, exhaustive testing may be the best option. For large, complex software products, risk-based testing is often a more practical approach.
Additional things to consider when choosing between exhaustive testing and risk-based testing:
- The time and budget available for testing
- The complexity of the software system
- The criticality of the software system
- The risk tolerance of the organization
Need more details, feel free to ask me on linkedin