Compatibility testing mobile apps is an important step in guaranteeing that an app works correctly with a wide range of devices, network conditions and operating systems. I begin by setting target devices, OS and screen resolution all within the boundaries of the market analysis and user demographics. The next step takes this foundational step; we can test in the real world and get to as many users as possible.
After scoping the feature out, I note a matrix of device, OS and hardware configs for a matrix of tests. With variations in manufacturers (other than the OS), custom UI skins and hardware capabilities on the Android and iOS platform as a whole, I take a look. It also lets us deal with most of the most painful cases without testing all the various devices.
Then I exploit manual and automatic test methods. While testing by hand gives you an understanding of your UI inconsistencies, your touch response problems or how your app behaves with other user interactions. Regression testing and faster test cycle (SPT folks love their 'faster test cycle') with tools such as Appium or Espresso because we don't want to keep testing against different devices and OS versions all the time.
Network compatibility is another important part. I then simulate 2G, 3G, 4G and Wi-Fi network conditions to see how an app behaves with different network conditions and observe how an app behaves at different times of bandwidth fluctuation, disconnection or increased latency. The reason is that it enables the app to work with a high reliability even when the networks are bad and that is important for user satisfaction and/or retention.
Last but not least, I analyze how the app integrates with third party services and hardware features (GPS, camera and sensors). Among them I also look at performance metrics such as battery consumption and memory usage. It’s an appropriate step to ensure apps can never, ever index load the device resource.
conclusion
Finally, my approach to compatibility testing is strategic, data driven, but comprehensive. I designed my approach to focusing on covering various scenarios and user environments gradually so Mobile applications will work with stability and reliability and eventually improving the global quality, reducing user problems and increasing the app success rate in crowded vendors market.