views:

168

answers:

4

Hi there,

I have very easy question, but I simply have any idea of the answer.

I have developed a small mobile-application using java, for my nokia. The problem is that when installed on my samsung the application simply crashed. Then I tried on my other nokia but different model, and I didn't got the normal behavior.

So my question is, does anyone have any idea how companies that develop mobiles applications/games test their software. Does they have to have all models for all mobiles phones??

+1  A: 

I don't know if you need all models of all phones. But you will definitely need separate test (and probably different builds) for different phones regarding:

  1. MIDP version
  2. Screen Size
  3. Input Devices
  4. Speed & Memory

Java, in this case is, WOTA (Write Once Test Anywhere) instead of WORA (Write Once Run Anywhere). :-)

Pablo Santa Cruz
@Pablo The WOTA WORA comment made my day! thanks!
drubin
+1  A: 

Phone specs and Java implementations vary a lot, but within each manufacturers range there will be groups of phones that share the same specs and implementation.

I used to work at a company making J2ME games, what we did there was test on every handset we released the game on, but we had 2 types of test - Complete and Compatability.

We would adapt a version of the game for a specific phone, eg Sony Erricson K800i, and have it thoroughly tested according to the Complete Test spec. Once that had passed, we then used that build on phone known to have similar specs and good previous compatability with other games (we kept a database of specs and compatability records), eg Sony Erricson W910i, and submit it for a compatability test, which was a bit less thorough and a bit quicker.

Once you've been doing it a while you get to know the capabilities of phones and which phones you could use the same build on, but there is often a bit of guesswork involved :) Sometimes you get matches you wouldn't expect, and sometimes a match you would expect to work doesn't.

Edit: I was going to post this as a comment, but I can't (because i'm an SO noob :), out of interest, what phones are your Nokia's and Samsung?

I can't remember many specific handset names, but here is a quick rundown of compatability across manufacturers:

Sony Erricsons are generally excellent - if it works on one, it will likely work on all SE handsets with the same resolution. Nokia's are generally good within a certain smaller group eg N95 builds work well on most nokias with the same res that were released after the N95, but some handsets are a bit of a pain. Samsungs are pretty bad - the J2ME implementation on most is flawed (Hide/Show Notify methods not being called is an example), and the memory and speed are typicly a bit crap. Motorola phones are not great, but are generally quite compatable with oneanother. Same goes for LG, although their more recent models are much better.

Zeno
+1  A: 

Companies that target many phones in many countries usually only let you install the application on your phone if they recognise your handset User Agent in the HTTP headers of the request to download the .jad or .jar file.

There are multiple ways to test an application on many handsets for many mobile network operators.

From simply buying the phones, to establishing commercial parternships with handset manufacturers and mobile network operators, to having a Device Anywhere account.

QuickRecipesOnSymbianOS
A: 

Testing is one of the most labour intensive part of mobile phone development. Typically a company might simply buy a lot of different phones to test on for real, or target a particular subset such only as Series 40 Nokia phones.

But alternatives exist out there where you can remotely deploy your app to phones, such as Nokia's Remote Device Access Services.

One way that might limit the problems is to target J2ME MSA (Mobile Service Architecture) compliant phones, where MSA attempts to reduce variations in vendor implementations of J2ME.

David Johnson