The Bug That Only Appeared When I Used the App on a Train

by•

I tested on wifi. Fast, reliable, stable. The app worked perfectly.

Then I used it on a train. Spotty connection, switching between towers, occasional dead zones. It fell apart in ways I never saw in testing.

The offline handling was technically correct. It just wasn't correct for the actual conditions people used it in. I had built for the network I had, not the network they had.

Now I test every change on a throttled connection before it ships. Slow 3G, occasional disconnects. It's caught three problems that passed every other test.

What's the environment you keep forgetting to test in?

6 views

Add a comment

Replies

Best

Mine is the device clock. A user could not sign in with Google on an iPhone: the sign in sheet completed, then the app said the token had expired. The phone's time zone was set to UTC minus 7 while the clock showed Spanish wall time, so its idea of UTC ran nine hours ahead. The token check happens on the device against the device's clock, so a token fresh from Google looked expired and my backend was never even reached. Nothing in testing would show that, every test device has a correct clock. Now the app recognises that specific error and tells the person to check the date and time settings instead of a generic "sign in failed". The network is one environment we forget; the user's settings are another.