Today I read about a useful heuristic called RCRCRC on an article called ‘How To Do Good Regression Testing’. This is taken from the section ‘Working As A Team To Deal With Regressions’.

  • Recent: new features, new areas of code are more vulnerable
  • Core: essential functions must continue to work
  • Risk: some areas of an application pose more risk
  • Configuration sensitive: code that’s dependent on environment settings can be vulnerable
  • Repaired: bug fixes can introduce new issues
  • Chronic: some areas in an application may be perpetually sensitive to breaking

I decided to simplify RC3 (as I like to call it) for my own use and it gave me RiCE. Take what works and discard the rest, why not?

  1. Recent - includes bugs, changes and new features
  2. Core - essential functions
  3. Environment Settings - same as config settings

My changes:

  • Removes Risk and Chronic, the scope feels too broad to me for these two.
    • Risk - Yes, some areas of an application pose more risk but they always do. We can identify the vulnerable areas as part of Recent, Core and Repaired.
    • Chronic - Surely if there is a sensitive part that keeps breaking, it will be clear to the tester to include in their coverage?
  • Combines Recent and Repaired into one
  • Renamed Configuration to Environment Settings

Have you adapted any testing heuristics or methods into your own? Let me know!