Thursday, November 5, 2009

Learning How To Test Mobile Device Applications (Part 3) - BlackBerry

In this HOWTO series, we've covered two popular mobile device platforms, webOS and Android, in these articles:
Learning How To Test Mobile Device Applications (Part 1) - Palm webOS
Learning How To Test Mobile Device Applications (Part 2) - Android
Today we'll look at BlackBerry. As we've stated in previous articles, our goal is learn enough from developing simple apps on each platform so that we have a better understanding of the platform as testers. And we want to accomplish this without having to buy each mobile device or any development software. Fortunately, developer offerings from RIM meet these requirements, albeit with less hipness than webOS and Android.

Wednesday, November 4, 2009

iPhone App Project Managers - How Did You Test Your App?

iPhone application development is exploding (How Hot Is The iPhone Application Development Market?). And users are demanding better quality - no longer is it acceptable for an iPhone app to crash unexpectedly with the explanation that apps crash every so often because of the iPhone OS. Moreover, with more-and-more iPhone and iPod touch models to choose from, developers face a compatibility testing challenge. So how are project managers testing their iPhone apps?

We'd like to hear from iPhone application developers and managers who have navigated their way onto the App Store and can share with us the problems they faced in testing their apps, as well as tips and recommendations.

If you are interested in helping out, please leave a comment or email us. We will send you questions by email and publish your interview here.

Thursday, October 29, 2009

Learning How To Test Mobile Device Applications (Part 2) - Android

Last week we introduced this series on learning how to test mobile device applications based on the idea that developing a simple mobile app on each platform will help you understand how to test them (Learning How To Test Mobile Device Applications (Part 1) - Palm webOS). And we want to do this for free and without having to buy an actual device. That's worked for webOS from Palm and will work with this week's platform - Android.

And as we recommended in Part 1, testers should start by downloading and installing the SDK and building one of the included apps. For the Android platform, the steps for building your first app is explicitly laid out at Android Developer's SDK page. The instructions provided take you through the following steps:

Monday, October 26, 2009

iPhone Development Basics - Memory Management Part 4

So far we've seen 3 videos by Mark Johnson on iPhone memory management:
iPhone Development Basics - Memory Management Part 1
iPhone Development Basics - Memory Management Part 2
iPhone Development Basics - Memory Management Part 3
And we've been using these videos to understand iPhone application memory management and gain some insight has to why iPhone apps crash.  In today's video, Mark describes a memory management programming convention used by iPhone developers for managing objects - either they're in the Autorelease pool or they are not. It's a very technical video but worth listening to because Mark warns of things not to do otherwise an app will crash - something worth being curious about when talking to your dev team.

Suggested questions for Part 4:
(4:02min) Why does returning a reference to a deleted object cause a crash? Why would that happen?
(5:17min) What does it mean to "own" an object versus having it be part of an Autorelease pool?

Tuesday, October 20, 2009

Learning How To Test Mobile Device Applications (Part 1) - Palm webOS

I recently visited Palm and our friends there gave us a Palm webOS book - signed by the author Mitch Allen (VP, Software CTO at Palm)!  Very cool.  While reading this book I thought I would use this opportunity to start a HOWTO series on learning to test mobile device apps, and model it after the process we used in our labs - develop apps to learn how to test them. Basically, we took testers through the process of setting up a development environment, compiling a simple app and then installing and testing that app.

We'll start with Palm webOS and then cover the iPhone and Android platforms.  The place to start for any of these platforms is the software development toolkit, or SDK.  And in the case of webOS, as the book points out, the SDK is available for free.  It's called the Mojo SDK and it's available at http://developer.palm.com or can be directly downloaded here.

Monday, October 19, 2009

iPhone Development Basics - Memory Management Part 3

In our previous articles on iPhone memory management:
iPhone Development Basics - Memory Management Part 1
iPhone Development Basics - Memory Management Part 2
we've seen how developers allocate and de-allocate memory. And we've created some questions, for developers, on how crashes may occur when memory is not handled correctly. In today's video, the author, Mark Johnson introduces a variation on these things called "Autorelease pools". In the video, he shows how an object that is part of an autorelease pool can be retained despite releasing the entire pool. Seems to me that this could cause problems if not handled correctly.

Suggested questions for Part 3:
I've heard about a way to retain individual UI objects when releasing memory using autorelease pools. Do we do that and can you explain why you would retain something when it's part of an autorelease pool?


Wednesday, October 14, 2009

Top 10 iPhone Groups On LinkedIn

Last month we posted an article on the Top 10 Software Testing and QA Groups On LinkedIn. Since I also belong to an iPhone group (iPhone Developers - www.iPhoneintouch.com) on LinkedIn, I thought I'd look to see if there were enough iPhone groups for a similar Top 10 list. As it turns out, there are plenty of iPhone and mobile device groups on LinkedIn and definitely enough to round out a Top 10 list.

Based on membership, the Top 10 11 iPhone groups on LinkedIn are:
  1. iPhone Developers Connection (424 members): This group intends to connect iPhone developers, designers, and entrepreneurs with each other. It intends to serve as platform for members to be able to share exclusive info, get peer reviews, get lead user feedback on apps, discuss projects etc.
  2. iphone developers worldwide (463 members): Worldwide group for professionals in iphone application development. Contact others, share ideas, business and job opportunities.
  3. Cocoa Touch - iPhone Technology Users Group (568 members): Cocoa Touch Developers Network for software developers, managers and marketing professionals working with the Cocoa Touch platform for iPhone and iPod touch.
  4. Mad4iPhone - The official iPhone users group (614 members): Connect with the Mad4iPhone community today! Discover 3rd party solutions. This is a constantly growing, online, independent iPhone user group...a network of users and professionals. Solve iPhone problems. Get solutions. Give advice. Connect with other users and experts.
  5. iPhone Dev Team (619 members): For all iPhone developers.

Monday, October 12, 2009

iPhone Development Basics - Memory Management Part 2

We introduced this series, created by Mark Johnson, last Monday (iPhone Development Basics - Memory Management Part 1) to help testers understand memory management from the developers point-of-view in order to develop some insight as to why applications crash because of memory problems. As mentioned last week, these videos should be used to develop questions for the developer team that may lead to more effective and reproducible testing.

Suggested questions for Part 2:
(0:52min)Does our iPhone application use something called "Autorelease pools"? I've heard that this method can help avoid bugs because you don't have to keep track of so many memory management calls.

Can autorelease pools cause crashes by releasing UI objects too early?