Risk-Based Prioritisation
You can't test everything equally. Risk-based prioritisation tells you where to aim first, how deep to go, and when to stop.
1 The Hook — Why This Matters
In 2021, a Wellington fintech startup shipped a major update to their lending platform. The team had two weeks to test. They spent the first week on UI polish and form validation, leaving only three days for payment integration. On launch day, POLi transfers above $10,000 silently failed. No error message reached the user. The startup processed $2.3 million in loans that never actually transferred.
The root cause wasn't a lack of testing. It was equal weighting. The team treated "wishlist icon alignment" with the same urgency as "bank transfer settlement." A risk-based approach would have flagged payment flows as exposure 25 (likelihood 5, impact 5) and allocated the deepest testing there first.
Time is always finite. Risk tells you where to spend it.
2 The Rule — The One-Sentence Version
Test effort must be proportional to risk exposure, which is likelihood multiplied by impact.
A feature that is complex and business-critical deserves deep, multi-layered testing. A feature that is simple and low-impact deserves light testing or none at all. Equal effort across both is not fairness. It's negligence.
3 The Analogy — Think Of It Like...
A hospital triage nurse on a Saturday night.
A patient with chest pain goes straight to resus. A patient with a sprained ankle waits. The nurse doesn't assess everyone for the same length of time. They assess urgency and severity, then allocate resources accordingly. Risk-based testing is triage for your product. If you spend twenty minutes on the ankle while the chest pain patient waits, people get hurt.
4 Watch Me Do It — Step by Step
Here is a real NZ e-commerce risk register. Follow these steps to build your own.
- Identify risks across four categories Brainstorm functional risks (user journeys), technical risks (integration complexity), business risks (revenue, reputation), and regulatory risks (compliance, data privacy).
- Assess likelihood and impact on a 1–5 scale Likelihood: how probable is a defect here? Impact: what happens if one slips through? Be specific. Use historical defect data where you have it.
- Calculate risk exposure: Likelihood × Impact This gives you a score from 1 to 25. It is a prioritisation input, not a prophecy.
-
Map exposure to test effort
- 20–25 (Deep): exhaustive functional, edge case, regression, and exploratory testing
- 10–16 (Moderate): standard functional and regression testing
- 1–9 (Light / None): smoke test or skip, depending on capacity
- Review and adapt throughout the project Risk is not static. New code, new requirements, and defect clusters change the picture. Update the register at sprint boundaries.
| Feature area | Likelihood (1–5) | Impact (1–5) | Exposure (L×I) | Test effort |
|---|---|---|---|---|
| Payment (POLi/Stripe) | 5 | 5 | 25 | DEEP |
| GST calculation | 4 | 3 | 12 | MODERATE |
| Address validation | 4 | 3 | 12 | MODERATE |
| Product search | 2 | 3 | 6 | LIGHT |
| Wishlist | 1 | 2 | 2 | NONE |
Second Example: Christchurch Insurance Broker App
A Christchurch-based insurance broker is releasing a major update: new policy quote engine, integration with IRD for income verification, and a customer dashboard redesign. The team has identified the following risks:
| Area | Likelihood | Impact | Exposure | Test Effort |
|---|---|---|---|---|
| Quote engine calculation (insurance premium logic) | 4 | 5 | 20 | DEEP — exhaustive; test edge cases (high income, dependants, pre-existing conditions); verify calculation accuracy against actual quotes from competitors |
| IRD income verification (automated data sync) | 5 | 5 | 25 | DEEP — integration testing with IRD test harness; verify end-to-end data flow; test timeout and retry logic for network failures; verify no customer data is cached insecurely |
| Dashboard redesign (UI only) | 2 | 2 | 4 | LIGHT — smoke test across browsers; check basic responsive behaviour |
Rationale: The quote engine and IRD integration are both high-likelihood and high-impact. A calculation error means the broker issues incorrect policies, creating legal and compliance liability. IRD integration failures could lock customers out of the application. The dashboard redesign is purely cosmetic; if it breaks, users can still access quotes and policies through the old interface.
5 When to Use It / When NOT to Use It
✅ Use risk-based prioritisation when...
- Time or budget is constrained (which is always)
- You are testing a new feature with unknown stability
- The system has regulatory or compliance requirements
- You need to justify test coverage to stakeholders
- Defect history shows clustering in specific modules
- You are defining entry and exit criteria for a release
❌ Don't use it when...
- The project is tiny and every feature is equally critical
- You have no access to business or technical context
- The team uses it as an excuse to skip testing entirely
- You treat the first risk register as final and never revisit it
- Scores are assigned by one person without team input
⚠ When It Fails
Risk-based prioritisation fails when low-exposure features cause high-impact failures. You skipped testing the login reset flow (exposure 6) and a user locked themselves out of their $50,000 investment account. It also fails when risk scoring is too subjective or outdated. A module you marked as low-risk has shipped three critical defects in the past two quarters, but you're still allocating it light testing. Re-validate your register every sprint using actual defect data. If predicted risk and actual defects diverge, update the scoring before making test allocation decisions.
📋 Decision Checklist: Should You Use Risk-Based Prioritisation?
- Do you have limited testing time or budget? (Almost always yes.) Risk-based prioritisation helps you allocate effort where it matters most.
- Can you access business and technical context? You need developers, product owners, and compliance leads to score likelihood and impact accurately.
- Will you update the risk register throughout the project? If you create a register in week one and ignore it for twelve weeks, you'll miss emerging risks and defect clusters.