NashTech Blog

The Bug I Almost Missed: Switching Between WiFi and 4G in Mobile App Testing

Table of Contents
WiFi and 4G LTE icons illustrating network switching test between wireless connections

Introduction

For a long time, I underestimated one simple mobile testing scenario:

Switching from WiFi to 4G.

It sounded too minor to matter.

I assumed:

  • The operating system would handle it automatically
  • APIs would continue working normally
  • Network type wouldn’t affect app behavior

And honestly?

I simply never tested it intentionally.

Until one unexpected moment exposed a bug that could have easily reached production.

A Real Story From Mobile App Testing

One day, while testing a mobile app, my test device ran out of battery.

So I switched to my personal phone.

I was testing a screen that loaded a large amount of data.

The WiFi connection was unstable.

Suddenly, the phone automatically switched to 4G.

And then…

⏳ The loading spinner never stopped.

I closed the app and reopened it.

Everything worked normally again.

At first, I thought:

“Maybe the network was just weak.”

But something felt wrong.

So I decided to test it again — this time on purpose.

Reproducing the Problem Intentionally

Here’s exactly what I did:

  1. Opened the app using WiFi
  2. Started the login process
  3. Turned off WiFi midway
  4. Let the phone automatically switch to 4G

The result?

  • Sometimes the loading spinner becomes infinite
  • Sometimes the user got logged out
  • Sometimes requests silently fail

That’s when I realized:

👉 The issue was not WiFi.
👉 The issue was not 4G.

The problem existed during the transition between them.

Why Network Switching Causes Bugs

Those few seconds during network transition are more dangerous than many testers realize.

During the switch:

  • The old connection disconnects
  • The new connection is not fully stable yet
  • Active requests may fail midway
  • IP addresses can change
  • Sessions or tokens may become invalid

To users, this happens naturally every day.

But many test environments only simulate “perfect conditions.”

Real Users Don’t Have Stable Networks

In reality, users constantly move between networks:

  • Leaving home WiFi
  • Entering elevators
  • Riding trains or subways
  • Walking between buildings
  • Switching between office WiFi and mobile data

Real-world mobile networks are messy.

And mobile apps must survive in that environment.

The Mistake Many Testers Make

I realized something important:

I tested the feature carefully.
But I forgot to test the environment.

That assumption — “the network is stable” — was completely wrong.

A mobile app does not only run:

  • In meeting rooms
  • On office WiFi
  • Under ideal conditions

It runs in real life.

And real life is unstable.

How I Changed My Testing Process

After discovering this issue, I added a new habit to my mobile testing checklist.

Now I intentionally change networks during critical actions.

Scenarios I Always Test Now

During Login

  • Start login on WiFi
  • Switch to 4G midway
  • Observe authentication behavior

During Payment

  • Switch networks during checkout
  • Verify payment state consistency

During Image Upload

  • Interrupt upload by changing networks
  • Check retry and recovery logic

During Data Loading

  • Change connection while loading lists or dashboards
  • Watch for infinite loading states

During Countdown or Timers

  • Observe synchronization after reconnection

What Testers Should Observe

When testing unstable networks, ask these questions:

  • Does the app recover automatically?
  • Does it retry requests correctly?
  • Does loading stop eventually?
  • Does the user understand what happened?
  • Are duplicate requests created?
  • Is data lost?
  • Does the app crash?

These small details create huge user experience differences.

Stable vs Unstable Network Testing

ScenarioStable NetworkUnstable Network
LoginUsually worksSession may fail
API RequestsConsistentInterrupted midway
Image UploadSmoothPartial uploads
PaymentReliableRisk of duplicate requests
Loading StatesPredictableInfinite spinner risk

Step-by-Step Mobile Network Switching Test

Simple Manual Test Flow

1. Connect to WiFi

Open the app normally.

2. Trigger an Important Action

Examples:

  • Login
  • Payment
  • Upload
  • Refresh data

3. Disable WiFi Midway

Allow the device to switch to 4G automatically.

4. Observe the App

Check:

  • Loading state
  • Error handling
  • Retry behavior
  • UI feedback

5. Repeat Multiple Times

Intermittent bugs often appear inconsistently.

Common Bugs Caused by Network Switching

Here are some real problems teams often discover late:

  • Infinite loading spinners
  • Silent request failures
  • Unexpected logout
  • Duplicate API calls
  • Lost form data
  • Corrupted upload state
  • App crashes

These issues are often hard to reproduce unless tested intentionally.

Checklist for Testing Network Transitions

Use this quick checklist during mobile testing:

  • Switch WiFi → 4G during login
  • Switch 4G → WiFi during API calls
  • Test during image upload
  • Test during payment process
  • Observe loading states
  • Verify retry behavior
  • Check session persistence
  • Monitor duplicate requests
  • Ensure clear error messages

Key Lesson Learned

Switching between WiFi and 4G only takes a few seconds.

But those few seconds can:

  • Freeze the app
  • Lose user data
  • Break sessions
  • Trigger duplicate requests
  • Cause crashes

And that’s exactly why testers must test unstable situations — not only perfect ones.

Conclusion

Users do not care whether they are on WiFi or 4G.

They only care about one thing:

👉 Does the app continue working or not?

Sometimes, a single intentional network switch during testing can uncover a bug the entire team has never seen before.

And often, those are the bugs that matter most.

References

Picture of Hong Nguyen Thi Thu

Hong Nguyen Thi Thu

With over 10 years of experience in software testing and a background in programming languages. Automation testing is my area of expertise, and I use it to speed up and improve the testing process. As test lead for a game testing project, I am currently in charge of coordinating and managing the full testing lifecycle. I make certain that the testing procedure adheres to the aims and objectives of the software development project.

Leave a Comment

Your email address will not be published. Required fields are marked *

Suggested Article

Scroll to Top