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?

Friday, October 9, 2009

How Hot Is The iPhone Application Development Market?

We've just returned from the STARWEST 2009 software testing conference. While there we talked to hundreds of testing and QA people. And as we shared with them our outsource testing services and our new product, myQMT, we asked them what their iPhone development plans were. Since we both develop and test iPhone applications, we were interested in how many were developing for the iPhone market. What we found out was that most companies were planning an iPhone app. And this information was coming from their QA folks.

Today I have some links to articles that provide some insight on how hot this market is becoming:

39% average growth was experienced by most developers from adding mobile application development to their business models. NATIONAL SURVEY RESULTS: Developers Shift Business Model To Ride iPhone App Wave Developers and entrepreneurs change course and thrive as iPhone app development increases

University of Utah researchers created new iPhone programs. iPhone the body electric

The exploding iPhone Application development community. iPhoneAppQuotes Forges Strategic Partnership with Appular

American heavy metal band Metallica has launched a new iPhone application to allow fans to listen to its live show recordings on the move. Metallica launches iPhone application for fans

The App Store taps the creative energy of entrepreneurial developers. From cars to TVs, apps are spreading to the real world

Mercedes-Benz joins other consumer-oriented companies, including Pizza Hut, Kraft, and Whole Foods, in developing apps for customers.
Mercedes-Benz Launches iPhone App

Thursday, October 8, 2009

Technology Advisory: Apple Releases iPhone OS 3.1.2

Apple released iPhone OS 3.1.2 today. According to Apple, this update contains bug fixes and improvements, including the following:

- Resolves sporadic issue that may cause iPhone to not wake from sleep
- Resolves intermittent issue that may interrupt cellular network services until restart
- Fixes bug that could cause occasional crash during video streaming

iPhone users can download the update by connecting to iTunes and pressing Check for Update.

According to www.macrumors.com, a corresponding update is also available for the iPod touch, and the iPhone OS 3.1.2 update for iPhone in U.S. is accompanied by an update to AT&T's carrier settings file, which brings the settings to version 5.6.

Monday, October 5, 2009

iPhone Development Basics - Memory Management Part 1

For those of us involved in iPhone applications testing, it's useful to understand how memory management works on the iPhone OS. Most of the problems we see that result in some sort of application crash or failure are related to memory problems. Understanding how these memory problems can occur can help with trapping memory related defects so you can report reproducible defects.

We've discussed memory management issues in previous articles. In this series of articles, which will be posted each Monday, we have video presentations from Mark Johnson that introduce the basics of iPhone memory management in Objective-C for programmers starting out with the iPhone. These videos are very instructive for both developers and testers.

Tips for Testers: if you've never done any programming, the terms discussed by Mark may be new for you. I suggest that you use this information to develop a curiosity about iPhone app memory management so that when you talk with the developers, you can ask probing questions. And, as developers answer your questions, it often helps them sort through the complexity they deal with, as well as giving you more insight as to what may be cause the bugs you're seeing.

Suggested developer question for Part 1:
(2:50min) What is a NSMutableString object and why would the app ever release this object after it has been deleted? Would this cause a crash?