Testing Offline and Poor Network Behavior in a Google Play Closed Test

Most apps work fine on the developer's fast Wi-Fi. Then a tester opens the app on a train, on a weak mobile signal, or right after toggling airplane mode, and gets a blank screen or a crash. Network problems are among the easiest bugs to miss on your own desk and among the most useful things a closed test can catch.
This post covers how to decide what your app should do without a good connection, which scenarios to ask testers to try, and how to spread them across the 14 days so you get real answers instead of vague feedback.
Why a closed test is a good time to check this
Your testers use their own phones on their own networks. That gives you variety you can't easily simulate: different carriers, home routers, VPNs, data saver settings and battery optimizers. An emulator with a perfect virtual connection shows none of that.
But testers only find network bugs if they try the right things. Most people open the app, tap around on good Wi-Fi, and report that it works. If you want offline and flaky-network coverage, you have to ask for it.
Step 1: Write down your offline behavior first
Before asking anyone to test, decide what "correct" looks like. Otherwise every tester report becomes a debate about whether something is a bug. A simple table in your notes is enough:
- Works fully offline: for example, viewing previously loaded content or editing local data.
- Works offline, syncs later: actions that get queued and sent when a connection returns.
- Needs a connection: login, purchases, search. These should show a clear message, not a spinner that never ends.
If your app has no offline mode at all, that is a valid decision. The requirement then becomes: it must fail politely. No crash, no frozen screen, no lost input.
Step 2: The scenarios worth testing
These are the situations that most often break apps. Each one is simple enough for a tester to do in a few minutes.
Cold start with no connection
Turn on airplane mode, force-stop the app, then open it. Does it show cached content, an empty state with an explanation, or a crash? First-launch behavior matters too: a brand new install opened offline has no cache to fall back on.
Connection lost mid-action
Start something that talks to a server (submit a form, upload a photo, load a long list), then turn on airplane mode before it finishes. You are looking for:
- A clear error instead of an endless loading indicator
- No half-saved data
- A way to retry without retyping everything
Slow and unstable connections
A connection that is slow is often worse than none, because the app waits instead of failing. Ask testers to try the app with weak signal, in a lift or basement, or on a congested public network. Watch for timeouts that are too long, screens that jump around as data trickles in, and double submissions when the user taps a button twice out of impatience.
Switching between Wi-Fi and mobile data
Start a request on Wi-Fi, walk out of range, and let the phone fall back to mobile data. Some network clients hold on to a dead connection longer than you would expect.
Coming back after a long time offline
Leave the app in the background with the connection off, then return hours later with the connection on. Does stale data get refreshed? Does an expired login session send the user somewhere sensible?
Data Saver and battery restrictions
Android's data saver and battery optimization settings can limit background network access. If your app syncs in the background, ask a few testers to turn these on and report whether the app still behaves reasonably when they open it again.
Step 3: Give testers a script, not a vague request
"Please test offline mode" gets you little. A short numbered task gets you useful reports. Here is a format you can paste into your tester instructions or release notes:
Task for today (about 5 minutes): Turn on airplane mode. Open the app and try to create a new item. Tell us what you saw on screen, whether the app crashed, and what happened to the item after you turned the connection back on.
Testers using an app for about 20 minutes a day have time for one focused task like this plus their normal exploring. Spread the scenarios over the 14 days rather than sending a long list on day one:
- Days 1–3: normal use on a good connection, to establish a baseline.
- Days 4–6: cold start offline, and losing connection mid-action.
- Days 7–9: slow connection and Wi-Fi to mobile data switching.
- Days 10–12: returning after hours offline, data saver on.
- Days 13–14: re-test whatever you fixed.
Ask for three things in each report: the phone model and Android version, what the tester did, and what they saw. A screenshot or a short screen recording helps if they can manage it.
Step 4: Check the code paths yourself
Tester reports tell you where it hurts. These checks tell you why, and you can do most of them before the test starts.
- Catch network exceptions. Exceptions such as
UnknownHostExceptionandSocketTimeoutExceptionare normal on mobile. They should lead to a user-facing message, not an unhandled crash. - Set sensible timeouts. Default timeouts in some libraries can feel very long to a user staring at a spinner.
- Make retries safe. If a request is retried, make sure it can't create a duplicate record or charge twice.
- Queue work that can wait. For sync tasks that should survive the app closing, Android's WorkManager is the documented option, and it supports network constraints.
- Read connectivity state carefully. The official guide on reading network state explains what the system can and can't tell you. A device can report a connection that has no working internet access behind it.
To reproduce reports on your own device, airplane mode covers the basics. The Android Emulator's extended controls also let you adjust network speed and signal, which helps with slow-connection bugs. Check the current Android Studio documentation for exactly how these options look in your version.
Step 5: Sort what comes back
Not every network complaint needs a fix before production. A rough order of priority:
- Crashes and data loss. Fix these first.
- Screens that hang forever. Add timeouts and error states.
- Confusing messages. "Something went wrong" is better than nothing, but "No connection. Your draft is saved" is better still.
- Polish. Offline banners, smarter caching and retry buttons can wait for a later update.
If you fix something during the test, mention it in your next build's notes and ask the original reporter to confirm. That gives you a clear cycle of feedback, fix and verification during the 14 days.
Where TesterMob fits
Testing on a range of real devices and networks is only possible if you have testers who actually use the app. TesterMob's testers use their own Android phones, spend about 20 minutes a day in each app, and write feedback, so you can ask them for specific scenarios like the ones above. If you add the optional Android SDK, your dashboard shows daily tester activity, which helps you see whether people are opening the app on the days you asked them to test. You can read how it works on the developer page or check the cost on the pricing page: $9.99 per app, paid once in USDT.
Whichever testers you use, keep the expectations realistic. Good network testing improves your app, but it does not guarantee that Google will approve production access. Google Play requirements change over time, so check the current rules in Play Console Help. TesterMob is not affiliated with Google. For more common questions, see the FAQ.
A quick checklist
- Written decision on what works offline, what queues and what needs a connection
- Cold start offline tested by you
- Every network call has a timeout and an error state
- Retries can't duplicate data or charges
- One network scenario assigned per testing day, with a short script
- Reports include device, Android version, steps and what the tester saw
- Fixes noted in release notes and re-tested before the 14 days end
A closed test is the cheapest time to find out your app freezes in a lift. Ask testers to break the connection on purpose, and you will find out before your first real users do.