TrainingConferencesAbout UsContact UsAdvertiseSQE.comRSS Feed

StickyMinds.com: brain food for building better software

Log In
 Clarify Your Search Criteria

Tips on Using Our Search Feature(s)
 
StickyMinds.com Home
ResourcesTopicsCommunityPowerPassBlogs
Home  >  Detail: How Do You Spell Testing?



A StickyMinds.com Original
Article Picture
How Do You Spell Testing?
A Mnemonic to Jump-Start Exploratory Testing

By James Bach

Send This Content to a FriendGet a Short Link to This ContentPrint This ContentSee User Comments About This Content

Summary: Exploratory testing operates fluidly in real time. But that doesn’t mean the process has to be random or scattered. The use of heuristics and mnemonics can serve as a road map to follow as you dive into the exploratory process. In this column, James Bach shares the mnemonic he relies on most for testing and how you can use it to make sure you’re covering all the bases.


Rally Software
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. 
 
Structure (what the product is): What files does it have? Do I know anything about how it was built? Is it one program or many? What physical material comes with it? Can I test it module by module? 
 
Function (what the product does): What are its functions? What kind of error handling does it do? What kind of user interface does it have? Does it do anything that is not visible to the user? How does it interface with the operating system? 
 
Data (what it processes): What kinds of input does it process? What does its output look like? What kinds of modes or states can it be in? Does it come packaged with preset data? Is any of its input sensitive to timing or sequencing? 
 
Platform (what it depends upon): What operating systems does it run on? Does the environment have to be configured in any special way? Does it depend on third-party components? 
 
Operations (how it will be used): Who will use it? Where and how will they use it? What will they use it for? Are there certain things that users are more likely to do? Is there user data we could get to help make the tests more realistic? 
 
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.


About the Author
James Bach is the founder of Satisfice, Inc., a test training and consulting company. A pioneer in the emerging disciplines of Good Enough quality and exploratory testing, James specializes in expert testing under chaotic conditions. He can be reached at james@satisfice.com. For more testing heuristics, see http://www.satisfice.com/tools/satisfice-tsm-4p.pdf.

Back to Top
 

StickyMinds.com Weekly Column From 5/14/01 

Member Comments
Add Your CommentExpand Comments
 
Comment:    
by Charles Harper 8/5/2009

I am a latecomer to this discussion but a fanatic of Mr. Bach's SFDPO approach. It is a helpful guide while writing a test plan at the beginning of a project but also while doing a particular test case, as it reminds me of all the possible explorations I can make within the bounds of the particular test case.
Speaking of "exploring", I am a bit confused by the relative weight Mr. Bach gives to a structured approach such as SFDPO versus exploratory testing. I was reading a blog entry today - http://blog.testlabs.com/2009/08/will-hosts-of-heaven-and-earth-pause.html - which seemed to denigrate the Exploratory testing approach.Read On

Author's Response:
8/5/2009    
I don't consider the authors you cited to be an expert on any aspect of testing, frankly, and they certainly do not understand what I do for a living. Some of the people who criticize my ideas actually propose fresh ideas of their own. I may criticize such people, but I have to respect them for trying to create something. But there are other people in this industry who rather than contributing merely comment without insight on the hard work and experimenting that others do. I think you encountered some of those.

If you look at where he supposedly called me to task for claiming to have invented testing, you'll see that in the blog post in question, what I actually claimed to have done is "reinvented testing for myself." This is the equivalent of a car mechanic who takes apart a car and puts it together again, in the process learning how cars work and getting ideas about how to make better cars. It's hardly a controversial claim. In fact, I recommend that everyone reinvent testing for themselves. It's excellent education.

As for your question, exploratory testing is not unstructured testing. There is almost no such thing as unstructured testing, actually. Show me something that is "unstructured" and I'll show you its structure! The question is what kinds of structure guide and inform testing. Guideword heuristics are particularly useful devices for guiding exploratory testing.

Bear in mind that nearly all testing is exploratory to some degree. Don't fall into the trap of thinking that only undocumented, unplanned, spontaneous testing is "exploratory", any more than "exploring Rome" would mean not using a map and not having any sort of schedule or itinerary to work with. Yes, you can explore Rome with none of those things, but you can also explore it WITH those things.

 
 
Comment:    
by Tom Carroway 5/16/2001

Mr. Bach's comments and suggestions / ideas are a great framework to approach testing of a technical system, however, and my bias may be apparent here, depending on the application and type of system being tested, I would also suggest that Chris DiNardo is onto something else - you can always start by going back and reading through the requirements, and looking for use cases. A very practical way to minimize the possibility that you've just thoroughly tested a very technical solution and found it to meet 100% of the requirements technically, but that you may have not tested the system in scenarios or ways that will mimic or recreate how the...Read On

 
 
Comment:    
by James Bach 5/15/2001

Oh Yogita. Now I'm all self-conscious. I won't be able to write another column until I invent something totally new like psychic aura-based test coverage. The pressure to innovate in 750 words is too much to bear! Actually, I kinda thought that what I wrote is new, in the sense that I meet almost nobody who makes a determined used of mnemonics as test design aids. I have others: CRUPIC STMPL, CITBEPSTD, and HICCUPP (I didn't say I was *good* at making up mnemonics, but they work for me). Altogether, I find that by using these, I can think of more tests off the top of my head than anyone I know (except Cem Kaner) has the time or patience...Read On

 
 
Comment:    
by Chris DeNardis 5/14/2001

Good ideas to follow here. I believe many of us testers/ test managers have ideas similar to these, but not as organized as it is presented here. Some other ones that were not so touched on, and are at the root of testing are Requirements, and Background. Requirements probably could fall into the Funcationality section, but without those it becomes one developers idea to another, without a common ground. Background, if a tester is more experienced in the area under test, they are more likely to find items than a test who is a novice. That is why we as test managers need to be aware of our testers so as to provide them with enough...Read On

 
 
Comment:    
by yogita sahoo 5/14/2001

I must admit that the article was not very interesting, atleast for those who have read Mr. Bach's previous articles on Exploratory Testing. They were just the right kinds, one looks for on Stickyminds.At first I was very glad to see Mr. Bach's name for this week's column and was quite hopeful that I will read something substantial about ET. The article, no doubt, gives more tips to organize ET.But these tips are very common and don't talk about anything new. And we all know the author for his abilities to give meaning to un-conventional ideas (e.g. exploratory testing).With Mr.Bach,I've always associated something new. Though I still remain...Read On

 
Back to Top



 
Ads By Google
What's This?
 
 



Home   |   Resources   |   Topics   |   Community   |   PowerPass



© 2010 StickyMinds.com. All rights reserved.
StickyMinds.com is a division of Software Quality Engineering.
Privacy Policy    Terms & Conditions    Link to StickyMinds.com    Feedback


Klocwork

Infosys




STARWEST 

Agile Development Practices