We know that complete testing is impossible so how do we decide which finite set of tests to perform out of the infinite cloud of possible tests for a story, feature or release?
This problem can seem overwhelming, but focusing on risk is a good approach so let's look at risk-based testing.
Think of risk as the possibility of a negative or undesirable event or outcome; a risk is a problem that might happen.
Quality risk is the possibility that the software might fail to deliver one or more of its key quality attributes, e.g. reliability, usability, performance, capability, etc.
Risk-based testing uses an analysis of quality risks to prioritize tests and allocate testing effort.
This approach allows testing to be more efficient and targeted, especially in time and/or resource constrained situations (which is pretty much always the case!).
The concept of risk-based testing is straightforward and you can put it into practice easily - by starting simple!
Identifying quality risks is the first step in making use of a risk-based approach to testing.
Risk analysis workshops are a good way to involve different stakeholders in this process and you can drive these workshops in at least a couple of different ways:
Tips:
After identifying quality risks, the next job is to order them.
Consider the likelihood and impact of each risk as a simple way to perform this ordering exercise. So a risk that seems quite likely to eventuate and would result in significant impact to all of your users would rank higher than one that is less likely to happen or would only cause problems for a small number of users.
Formulate your test plans to address the highest risks first, to ensure that you're covering the riskiest stuff first and increasing the chances of finding the most important problems earlier rather than later.