The application I am testing gives offline support as well to the Users. The Users can perform basic functionalities offline and when they have internet access, they can sync the changes to the server. How can I effectively test this offline functionality part?
You should test:
- Switching between being online and offline to see if the transitions causes issues.
- Switching between wireless and wired to see if any issues arise.
- Intermittent availability - internet is available, then isn't then is. How does the application perform?
- Can syncing be initiated manually? What if the user is offline when syncing is requested?
- Syncing being interrupted by going offline again while in the middle of it, is the syncing able to resume once online once again?
- Extra low bandwidth, does the application perform or does it consider super slow to effectively be offline. How long does it wait before being sure something is 'offline'
- Request a form while online. Fill it out while online, then go offline and try to submit it. What happens?
- Request a form while online. Go offline. Fill out the form correctly (ajax will not be available). Then try to submit the form.
- Request a form while online. Go offline. Fill out the form with some errors, e.g. invalid data or required fields not entered (ajax will not be available). Then try to submit the form.
- Request a form while online. Go offline. Fill out the form (ajax will not be available). Then go online and try to submit the form
You should be able to turn off your internet using your desktop. No need to unplug cables which might be hard to reach.
Wired: For example on a mac you would go here and use off
Wireless: On a mac you would use Wi-Fi: Off
A similar option should exist in most Operating System Desktops.
The answer is really very simple:
- If your application is a desktop application, unplug your network cable and test as usual.
- If your application is a mobile application, turn off wireless internet and phone data, then test as usual.
- If your application is a web application, unplug your network cable and test as usual.
You should already know what functionality is supposed to be available offline, and how the application should respond when the connection is restored, so it's standard testing once you've disconnected your network.
As a side note, every tester should know how to simulate network outages (unplug the cable, turn the wireless router off, whatever) and other conditions the application is supposed to handle.
Check with online & off line to identify the different behavior of your application.
If you are checking security application like banking or any login page in mobile, make some distraction to phone calls to identify the behavior of your application in office while submitting the form.
Check with valid & invalid data in the forms for error messages and network connection lost message.