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.
Senior engineer insight
The shift that changed how I approach risk scoring was realising that a likelihood of 5 doesn't mean a defect is inevitable — it means your team has the least institutional knowledge in that area. When a squad inherits a legacy payment integration they didn't write, "likelihood" encodes uncertainty as much as probability. That reframe made me push harder for developers to co-own the register; they know exactly which modules have undocumented behaviours hiding in them. Once we started scoring together, our register stopped being a tester's artefact and became the team's shared map of where the ground was soft.
Most common mistake: treating the exposure number as a final decision rather than a conversation starter — then never having the conversation.
From the field
On a central government programme modernising the Revenue NZ's tax debt reconciliation module, the team assumed the highest-risk area was the new user-facing dashboard because it was the most visible deliverable. The risk register was scored in week one by a single analyst and never revisited. Eight weeks in, an automated batch reconciliation job — scored exposure 8 because it was "just moving existing data" — began silently writing incorrect write-off amounts when debt records had been split across tax years. The error ran undetected for three weeks because no one had mapped it to a test suite. The NZ Government's risk management framework (NZGF) explicitly requires that risk registers reflect the consequence of systemic failures, not just user-visible ones; the team had treated compliance risk as a checkbox rather than a scoring input. After the incident, we rebuilt the register collaboratively with the Revenue NZ's enterprise risk team, added batch processes as a mandatory scoring category, and linked every high-exposure item to a named exit criterion. The lesson that generalises: silent automated processes almost always carry higher impact than their technical simplicity suggests.
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 Revenue NZ 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 |
| Revenue NZ income verification (automated data sync) | 5 | 5 | 25 | DEEP — integration testing with Revenue NZ 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 Revenue NZ integration are both high-likelihood and high-impact. A calculation error means the broker issues incorrect policies, creating legal and compliance liability. Revenue NZ 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.