How Do You Spell Testing?

A Mnemonic to Jump-Start Testing

by James Bach

This first appeared on as a column feature

In exploratory testing, we design and execute tests in real time. But how do we organize our minds so that we think of worthwhile tests? One way is through the use of heuristics and mnemonics. A heuristic is "a rule of thumb, simplification, or educated guess." For example, the idea of looking under a welcome mat to find a key is a heuristic. A mnemonic, by contrast, is a "word, rhyme, or other memory aid used to associate a complex or lengthy set of information with something that is simple and easy to remember." Heuristics and mnemonics go together very well to help us solve problems under pressure.

SFDPO Spells Testing

A mnemonic and heuristic I use a lot in testing is "San Francisco Depot," or SFDPO. These letters stand for Structure, Function, Data, Platform, and Operations. Each word represents a different aspect of a software product. By thinking of the product from each of those points of view, I think of many interesting tests. So, when I'm asked to test something I haven't seen before, I say "San Francisco Depot" to myself, recite each of the five product element categories and begin thinking of what I will test.

Bringing Ideas to Light

I can get ideas about any product more quickly by using little tricks like SFDPO. But it isn't just speed I like, it's reliability. Before I discovered SFDPO, I could think of a lot of ideas for tests, but I felt those ideas were random and scattered. I had no way of assessing the completeness of my analysis. Now that I have memorized these heuristics and mnemonics, I know that I still may forget to test something, but at least I have systematically visited the major aspects of the product. I now have heuristics for everything from test techniques to quality criteria.

Just because you know something doesn't mean you'll remember it when the need arises. SFDPO is not a template or a test plan, it's just a way to bring important ideas into your conscious mind while you're testing. It's part of your intellectual toolkit. The key thing if you want to become an excellent and reliable exploratory tester is to begin collecting and creating an inventory of heuristics that work for you. Meanwhile, remember that there is no wisdom in heuristics. The wisdom is in you. Heuristics wake you up to ideas, like a sort of cognitive alarm clock, but can't tell you for sure what the right course of action is here and now. That's where skill and experience come in.

Good testing is a subtle craft. You should have good tools for the job.