7

Our application is location based. We have tested its main functionality, (using mock locations) and now it is time to test how it reacts on real cases using GPS.

So, what are the main limitations and considerations that we should focus on?
What is the best way to test a location based app?

Any suggestions will be very appreciated.

1

2 Answers 2

8

Some ideas for the GPS part, based on my experience testing GPS's:

  1. Do field tests, and choose you locations wisely- from totally open skies to crowded tall buildings with limited to no GPS reception, from standing still to driving slow and fast, change heights during the tests (GPS is less accurate in reporting heights), choose different times of day, weather conditions and locations on earth.

  2. GPS results are not an X,Y (Z) location, they are a confidence ellipse with you in the middle. What most people call "GPS" is the software using those results smoothing them so they can be used. What's it got to do with testing ? a lot, for example:

    • How will you treat a position with high uncertainty (you are here, or a mile away...)
    • How will you treat a "moving" position which is really a stationary one (see this example)
  3. Test around the device's power up time, especially for a device that was powered off for days and/or with no internet connectivity.For a GPS to be accurate it needs to download certain parameters from the satellite (ephemeris, Almanac), this is sometimes done by contacting a dedicated server (assisted GPS). Those parameters become outdated after a few hours/days/days.

  4. Use different device settings, and different devices

  5. depending on you budget you can use a GPS simulator (buying a new one is in the 100K$ area)
0
1

The key to testing is ability to reproduce, so if you're using the real GPS module, you will obviously have several problems that are not solvable:

  1. The same tests would pass or fail on different computers, which completely invalidates all tests;
  2. The same test may pass or fail even on the same computer, due to minor deviation of GPS co-ordinates returned for several sequential tests;

Therefore, you can't afford using a real GPS module for testing purposes.

The common pattern is creating a mock module, also called emulator. It will have exactly the same API as your real GPS module has, but will also have an extra API for manipulation of mock results.

3
  • 3
    "can't afford" is a strong term. For some tests you need automated repeatability, for others you can let a human decide depending on the context. You answer assumes that you can emulate and understand every aspect of the underlying GPS hardware
    – Rsf
    Commented Dec 13, 2012 at 12:15
  • @Rsf As SQA, I should not understand every aspect of the software I'm working on; sometimes it can even be harmful. :) However yes, I have to understand basic principles of modularization in order to test effectively. This is how I understood the original question. Commented Dec 13, 2012 at 12:47
  • Basically I agree, but this not the software, this is the hardware and physics behind it and you better understand as much as possible of it before your clients get into trouble. There is much more than the few points I brought up, those are only common pitfalls that I learned the hard way while testing a location aware device.
    – Rsf
    Commented Dec 13, 2012 at 16:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.