Pure-reference catalog of Michael Bolton's HICCUPPS-F oracle heuristic - the reference points a tester consults to decide 'is this a bug?': History, Image, Comparable products, Claims, Users' desires, Product (internal consistency), Purpose, Standards/statutes, plus Familiar problems. Use mid-session to test an observation against each oracle. For what to VARY use sfdpot-exploratory-heuristic, for what to MODEL use fcc-cuts-vids-heuristic, for quality criteria use crusspic-stmpl-heuristic.
80
100%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
HICCUPPS-F is Michael Bolton's oracle heuristic - a mnemonic for the kinds of references a tester consults to decide whether an observation is a problem. It's published at developsense.com/blog/2012/07/few-hiccupps.
The point: a "bug" is a relationship between an observation and some expectation. Different expectations come from different oracles. HICCUPPS-F gives the tester a checklist of oracle types to consult before deciding "no oracle ⇒ probably not a bug" or "oracle says X ⇒ behaviour Y is wrong."
This skill is a pure reference consumed by individual testers
during sessions (session-based-test-management-reference).
Per Bolton's published catalog:
Does the system's current behaviour match what it did before?
Behaviour regressed from a known prior version = bug. Sources:
qa-test-impact-analysis)Does the behaviour match the company's brand and reputation?
The product's overall feel: error messages should not be hostile, loading states should look professional, copy should be on-brand. Sources:
Does the behaviour match what competitors / peers do?
Industry conventions. A login form that lacks "forgot password" when every competitor has one. Sources:
Does the behaviour match what stakeholders said it would do?
The spec, the requirements document, the customer-promise email, the sales-deck slide. Sources:
Does the behaviour match what users actually want / need?
Users may want something different than what the spec says. Sources:
Does the behaviour match other behaviours in the same product?
The settings page uses a save button; the profile page does auto-save. The same data field is formatted differently across two screens. Sources:
Does the behaviour match the actual reason the feature exists?
The feature exists to help X do Y; the behaviour doesn't help X do Y. Sources:
Does the behaviour comply with relevant standards + regulations?
WCAG accessibility, GDPR data handling, ISO 25010 quality characteristics, PCI-DSS for payments, HIPAA for health, RFC for network protocols. Sources:
Have we seen this kind of bug before, in this or other systems?
Pattern-matching against known bug classes:
Sources:
qa-defect-management)Observation: Cart total shows $24.99 when promo "TAX10" applied,
but receipt PDF shows $25.49.
Walk HICCUPPS-F:
- H (History): Old screenshots from v1.4 show consistent totals.
→ This is a regression. **BUG.**
- I (Image): Inconsistent values reflect badly on the brand. Even
if there's no other oracle, this fails Image.
- C (Comparable): Stripe / PayPal flows always show consistent
totals across cart + receipt. **Industry convention violated.**
- C (Claims): Promo code spec says "TAX10 applies 10% before tax."
Cart applies it before tax (correct); receipt applies it after
tax (incorrect). **Spec violated.**
- U (Users' desires): Users will dispute the $0.50 difference
with support. **Visible to customer.**
- P (Product): Cart and receipt should be consistent at minimum.
**Internal consistency broken.**
- Purpose: Promo feature exists to encourage purchase; mismatched
totals erode trust. **Purpose undermined.**
- S (Standards): Statutory? Possibly - depends on locale (some
jurisdictions require receipts to match displayed totals).
- F (Familiar problems): Rounding-order bug; classic off-by-cent
pattern. **Known bug class.**
Conclusion: Multiple oracles agree this is a bug. File
high-priority.| Anti-pattern | Why it fails | Fix |
|---|---|---|
| Consulting only one oracle | Misses bugs visible from other angles | Walk all 9; even briefly |
| "I don't see an oracle ⇒ probably fine" | Some bugs only one oracle catches (F - familiar problem patterns from elsewhere) | Look at F (familiar problems) before concluding "no oracle" |
| Charter doesn't pre-state expected oracles | Session aimless | Charter should hint at applicable oracles ("explore X with HICCUPPS-F focusing on Claims + Users + Standards") |
| Bug report without HICCUPPS-F citation | Report's "why is this a bug?" weak | Every bug report should cite at least one oracle from HICCUPPS-F |
| Treating Standards as final authority | Standards lag; users / purpose may indicate the real bug | Use all 9 as inputs, not as final-word hierarchy |
| Skipping F (familiar problems) for new product | Most "new" bugs are familiar patterns from other systems | Always check F |
sfdpot-exploratory-heuristic,
fcc-cuts-vids-heuristic,
crusspic-stmpl-heuristic,
exploratory-tours-reference,
session-based-test-management-reference.