Take the 2-minute tour ×
Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. It's 100% free, no registration required.

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.

share|improve this question
    
One thing to keep in mind is that you can test GPS performance from a cold start using play.google.com/store/apps/details?id=com.eclipsim.gpsstatus2 to clear your GPS cache. –  Charles Munger Mar 26 '13 at 21:01
add comment

2 Answers 2

up vote 7 down vote accepted

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)
share|improve this answer
    
Thank you, those are very interesting points. –  Schaliasos Dec 13 '12 at 12:49
add comment

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.

share|improve this answer
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 Dec 13 '12 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. –  bytebuster Dec 13 '12 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 Dec 13 '12 at 16:03
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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