Geofence testing guide

Make the edge case a repeatable case.

A useful geofence test separates clearly inside, near the boundary, and clearly outside behavior. PinShift provides controlled coordinates; your app and iOS still decide when and how an event is delivered.

Fixed or Precision?

Fixed holds one known coordinate and is ideal for baseline inside/outside checks. Precision samples controlled nearby points inside a configured radius. An optional deterministic seed helps repeat the same sample sequence in a later run.

Precision does not emulate every radio, sensor, operating-system, or background-delivery condition. Use physical field testing when those conditions are part of the requirement.

Prepare a small test matrix

ScenarioCoordinate choiceRecord
InsideComfortably within the expected radius.Visible state, event, timestamp, and app lifecycle.
BoundarySeveral documented points near the edge.Distance, sample seed, observed transition, and repeatability.
OutsideClearly beyond the expected radius.Exit behavior, delay, and any cached content.

Run the geofence test

  1. Define the expected boundary. Record the center, radius, entry behavior, exit behavior, and timing your own app is expected to use.
  2. Test a clearly inside point. Use Fixed mode for a coordinate comfortably inside the boundary and record the observed result.
  3. Probe the edge. Use Precision mode with a documented radius and optional repeatable seed to sample near-boundary points.
  4. Test a clearly outside point. Move to a coordinate beyond the expected boundary and make the app request location again.
  5. Restore the device. Stop and restore real location before disconnecting the authorized iPhone.

Example: the café door with a very large welcome mat

Suppose a café app should reveal an arrival card within 100 metres. A Fixed test at the center confirms the baseline. Precision samples near the documented edge can show whether rounding or an overly generous threshold makes the welcome mat feel two streets wide. Finish with a clearly outside point, record what the app actually did, and keep the same seed for the regression run.

Restore and document

Use Stop and restore real location, wait for a confirmed clear, and then disconnect. Keep test coordinates public or synthetic in reports, remove full device identifiers, and describe the expected and observed behavior separately.

Related help