What is Risk?
A Risk, essentially is a possible problem. That is, it is some event that may, or may not happen, depending on other variables. In the software testing arena, a risk may be defined as a potential occurrence (leading to loss) which is a result (usually undesirable) of the presence of an issue or a bug in the product. Testing for these unwanted, possible events is known as risk-based testing.
Additionally, the definition of risk is incomplete without introduction to mitigation and contingency.
- Mitigation: Mitigation is the act performed that reduces the possibility to defects to show up.
- Contingency: This is the backup plan of action to be performed in case a risk becomes a possibility, and which helps to reduce the impact.
Types of Risks
In theory, there may be innumerable risks. However, following is a list of the most commonly faced risks in different domains:
Business or Operational Risks
- Over dependence on a specific system, subsystem, function, or feature
- Business-Criticality of a feature or function, subsystem, including the cost of failure
- Security related loopholes
- Integration failures – of product or website pages
- Regulatory requirements
- Failures of functions
- Performance and Usability related failures
- Collocated development teams
- Complexity of a product
What is Risk-based Testing?
Risk-based testing (RBT) is an organizational principle that helps to prioritize testing the features and functions of a software according to the probable risks of failure, the need of the function, etc.
RBT thus is a ranking of tests, and subtests, for functionality. Tools and techniques such as equivalence partitioning, state transition tables, decision tables, boundary-value analysis, Path Flow testing, all-pairs testing etc. help assess the most risk-prone areas.
As there usually is not enough time to test complete functionality of a product, RBT involves testing the functionality that has the highest probability of failure – and thereby biggest impact.
RBT, to be fully effective, must be started in the initial stages of product development. It involves:
- Identifying risks to system quality and guiding the process of planning, preparation and execution of the tests.
- Risk analysis that helps identify opportunities to remove or prevent defects.
- Mitigation–testing (that reduces the possibility of high-impact defects) and contingency–testing (that identifies the possible work-arounds for the defects found).
- Measuring the effectiveness of finding/removing defects in critical areas.
4 Phases of Risk Based Testing Process
There are four main phases to be kept in mind while executing RBT:
- Identify and define all the possible risks for all the functional modules of the application under test (AUT) and assign them to the responsible stakeholders.
- Prioritize the tests based on the criticality of the risk associated. Come to an agreement on the prioritization, and update the functional requirement document and shared with the stakeholders.
- Plan and define tests according to requirement prioritization.
- Execute tests according to the accepted functional document.
Advantages of Risk Based Testing
- As all the critical functions of the application are tested, it improves the overall quality of the product.
- Planned prioritization helps take care of the business-critical areas which ensures that the product even in case of a risk-impact, does not get impacted much. On the other hand, you must keep in mind to test even the low-ranked risks so that they do not become real and cause trouble.
- Since the problem areas are discovered early, preventive measures can be started immediately – which ends saving a lot of time and costs during production.
- In case of limited resources (time or team), it helps as a negotiating tool for prioritization.
- Helps make testing a better planned and organized activity.
- Continuous monitoring of risks helps focus on the complete testing strategy and goal throughout the testing life cycle.
- Improves customer satisfaction.
That said, the main objective of risk-based testing is to perform testing in accordance with the best practices in risk management. This helps create a product that is properly balanced in terms of quality, features, budget and schedule.
At Gallop, we cover all the bases and ensure that effective testing is performed by the right set of experts. We ensure the best quality for your product and that your customers are happy. Our tool agnostic test automation frameworks ensure accelerated testing so that you get higher productivity and an enviable time to market.