Some ideas for the GPS part, based on my experience testing GPS's:
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.
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)
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.
Use different device settings, and different devices
depending on you budget you can use a GPS simulator (buying a new one is in the 100K$ area)