How to identify factors that can help reproduce web rendering errors for Android web browsers?

I recently worked on several tickets for web rendering errors that are visible only on a subset of Android devices (or even on a single Android device). Reproducing errors in this category seems really difficult - sometimes I find that I cannot do this at all, and even worse, sometimes I can on some devices, but not on others, and I have no idea why.

As an example: one ticket was recently reported by QA as affecting the Galaxy Tab / Android QA build 4.1. I tried

  • emulator launch (both ADT and Genymotion) with 4.1 (cannot be played there)
  • two different Galaxy Tab devices running 4.1 (cannot be played there)
  • Browserstack Galaxy Tab 2 10.1 emulator (running Android 4.0) ... and I definitely saw that the screenshot QA was attached to the ticket showed, successfully reproducing the problem.

It’s good that I finally solved this specific error, but, on the other hand, it would be easy to refuse after the first two attempts and never tried the browser. It seemed to me that I found a way to reproduce it. I would like to rely more on this and learn better (a) to identify the likely places where I can reproduce the problems (b) grill QA to give me all the details that I need.

What are the relevant variables? I think of things like:

  • Android version
  • Browser version
  • Maybe the kernel version?
  • Action against user OS (how big is the role that carrier / manufacturer variations can play)?
  • Screen Size / Resolution
  • Other equipment options?

But I don’t know much about how they interact or what other things can be in the game.

Another way to ask this question is if someone comes to me and says: "Hi, I see a problem on your website when browsing with my Samsum DroidTab?" (or another inaccurately defined device), what exactly do I need to find out in order to find another device / emulator on which I can reliably reproduce what they see?

+6
source share
1 answer

There are tons of what I would call environmental variables. As environment variables, I would define those factors that affect the behavior of the application or device, but do not depend on the device itself.

For example, the type of Internet connection is an environment variable. I came across a couple of times problems with connecting to the Internet. I requested full information about the device and the application, but I could not play it. Only when I decided to try different connections, until I came to the conclusion that the user is on a WiFi network that requires authorization, and therefore he could not perform some background operations. When the device is connected to the WiFi network, Android disconnects the 3G connection, even if the Wi-Fi network is not connected, so I had to solve the problem by hacking.

Another factor that can have a certain effect on the behavior of the application is device-level situations, such as battery level (Google Glasses does not allow voice commands when the battery is low, or some devices do not allow you to take pictures).

The implementation of stocks and user OSs is definitely on the list (i.e., the implementation of Date Picker varies in the Samsung layer).

+2
source

All Articles