Applying the SFDPOT heuristic to mobile testing

One of the comments I’ve made about mobile testing is that we need to “find our mobile sanity” in part what I mean by this is – we need to recognize that everything we’ve learned about software testing doesn’t change because we have a new computing platform – in fact, we can apply lessons we’ve learned and skills we’ve already acquired to mobile testing. Perhaps this is obvious but I’ve met a few testers so anxious about “figuring out their mobile testing strategy” that I thought it was worth stating.

I thought I’d take the well-known testing heuristic from James Bach known as SFDPOT (sometimes referred to as San Francisco Depot) and apply that heuristic to mobile testing. If you’re not familiar with this heuristic see:
James Bach:

Let’s see how it holds up:

Structure. Test what it’s made of.
Can I download the app?
Can I download an update?
Can I update the app when I have multiple apps to update?
What happens when the operating system of the device is updated?
Does the app write to an SD card? What if the card is filled, removed or changed?

Function. Test what it does.
Does the app or site perform the tasks or features it was designed to?
Does the app or site prevent, block or not include features not intended on a mobile device?
Does the app or mobile website ever direct me to the “full site or desktop version”?
Does the app direct me to turn on necessary related services such as location services if those services are shut off?

Data. Test what it does it to.
Does the app find time related data (if relevant, such as movie show times) based on the device time?
Does the app find locations based on my location (such as movie theaters or hotels)?
Does the app integrate with any hardware such as bar code scanners for payment or other purposes?
If the app tracks rewards or points for frequent purchases, does this data get updated?
If the app integrates with a desktop profile or account information (such as My Profile or My Account), does the app and the desktop version keep information in sync with each other?

Platform. Test what it depends upon.
Does the app use location services?
Does the app depend on any device settings?
Does the app detect the platform it is running on such as a phone or tablet?
Can I find the app in the app store?

Operations. Test how it’s used.
Does the app function when I am moving and traveling around?
What happens when I switch to wifi vs 3G ?
What happens if my wifi connection is down or intermittent?
What happens when a mobile interruption occurs such as an incoming call or text message?
What happens when the device is set to airplane mode?

Time. Test how it’s affected by time.
What happens if the time zone is switched?
What happens when my location is switched?
Does the device auto detect a change in time zones and reset the time (and possibly) the day and date?
Does the app find time-related data based on my device time (such as reservation times available or movies show times)?

Can you think of more specific testing ideas based on your mobile app or mobile website – good.

Can you think of more ideas “generically” ? Good, please email or add a comment to this blog. I’d be happy to build on this for all of us in the software testing community.

Comments are welcome.

This entry was posted in heuristics, mobile. Bookmark the permalink.