Wednesday, February 24, 2010

Making your iPhone App Environmentally Friendly

With a traditional desktop application, most of your users will be sitting at a desk, using a keyboard and mouse. So you can test the applications reasonably well by sitting at *your* desk, using your mouse and keyboard. Sure, there's edge cases, like laptops and graphics tablets. But your test lab or office cube is a pretty good approximaation of their home office or work cubicle.

Stop and think for a minute of all the places where you've used your cell phone lately. A lot of places besides your desk, right? In the next 24 hours, I bet I will use mine sitting at my desk, sitting in meetings, waiting for the bus, riding in a friend's car, shopping at a yarn store, and lying in bed. And all of these environments can reveal bugs that you won't find sitting at your desk.
- At a meeting: In a meeting, I might try to pull up important information on my iPhone and every second the app takes to load, my colleagues get more annoyed with me.
- At the bus stop: I may be interrupted at any moment, when the bus shows up. So don't penalize me for quitting the app. Pause my game so I can continue it later. Save my data.
- In a vehicle: Location isn't just something that can change every time I use the app. It can change *while* I'm using the app. Use the app while you're moving, and figure out whether the user will be happier if you update location-related stuff periodically, or let the user tell you when to update.
- In a store: I've probably only got one hand available, because the other's holding a shopping basket. Can I navigate the application without setting my stuff down?
- In bed: I like to read while lying on my side. So "upright" for me is now perpendicular to the floor. I turn an iPhone perpendicular, and in many applications, it happily rotates the screen for me, so text is still parallel to the floor. Not helpful. Amazon's Kindle app actually handles this very nicely. For a few seconds after a rotation, it shows a lock icon. Tap the lock and the text will get locked into position. After that, I can happily turn it any which-way and still read my book.
- On a plane: If you fly much, you know that all electronics get turned off for the first bit, and then they can be on, but with cell and wifi turned off. Can I use your application with no connection to the outside world? The first time I tried to use OmniFocus on a plane, it went into a loop of insanity, trying every minute or so to connect to the server and sync my data. By the time I dismissed the alert that sync had failed, it'd be nearly ready to try again. If you must fail, make sure you fail gracefully.

So figure out which of these environments are right for your app. I don't need to play an immersive multi-player game while browsing the grocery store aisles, but I better be able to check my shopping list! Test in these environments, or at least find ways to simulate these environments in your test lab. This is one case where a tin foil hat might actually be a legitimate approach!

Wednesday, February 10, 2010

And now a word from our sponsors....

I'm not blogging to make money. Let me make sure that's clear up front.

But I buy a ton of stuff from Amazon, and when it's good stuff, I tell other people about it. Amazon likes that, so they'll pay me for this. And when someone wants to pay me for something I'm doing already, I'm generally willing to go along with that.

So I'm going to try out this Amazon Associates thing. I'm hoping that it will make it easier for me to link to books and such in my posts. I also hope it will improve your experience of looking up the stuff I'm linking to. But if it turns out that it actually interferes with the primary point of this blog (discussing software testing), then I'll give it the boot. So let's test this thing out, okay?

Right now I'm reading Beautiful Testing: Leading Professionals Reveal How They Improve Software (Theory in Practice) and I hope to post a review of it soon. Maybe separate reviews for each chapter, since it's an anthology?

Thursday, February 4, 2010

The road to a presentation starts with a single step...

I have an opportunity to give a talk at another company soon. I've got a (very rough) idea of what the talk needs to contain, so I'll be coming back to it soon. But first, I need a bio and a talk 'blurb'. I'd love constructive feedback on this first draft. In particular, there has got to be *something* better than "hot new development platform"!

Touch devices are the hot new development platform. As testers, we need to borrow strategies from testing both desktop software and pre-touch phones. However, we must also go beyond these perspectives, and develop new heuristics specific to touch devices. Liz will share some of the lessons she's learned in iPhone testing and why it's essential to literally get your hands on touch devices while testing touch-based software.

Liz Marley tests the Omni Group's Mac and iPhone productivity software. She's also very eager to begin testing iPad apps as soon as possible! Liz has 6 years of professional testing experience, and 4 years of debugging homework assignments while earning a computer science degree from Harvey Mudd College.