Mobile Apps Testing & Mobile Apps Automation In the highly competitive digital world of mobile applications the ability to get high quality apps to market quickly can make or break the success of a product or company. With new applications for iOS Android and Windows platforms being released daily, all battling for media attention and consumer dollars, the pressure to get apps built, tested and deployed has never been greater. Testing methods that have worked previously for web and desktop applications do not meet the needs of mobile. Companies must now test their applications across different devices, models, networks, operating systems, browsers and locations. This calls for a new approach, one that presents benefits and challenges.
• Pressure to get mobile apps built, tested and launched quickly and effectively has never been higher.
• Testing methods that have worked for web and desktop apps fall short for mobile applications.
• A new approach is required specifically for Mobile Apps Testing. Challenges Defining the scope of mobile apps testing must take into consideration the following: Devices and Operating Systems With a mass of device makers each producing a multitude of devices released year after year, test teams must carefully consider the various operating systems, screen sizes and hardware specific to each of these devices. In doing so, they need an adequate coverage of handsets to test against including various generations of operating system updates. Testing must pinpoint target users of the app under test, prioritising their chosen devices, which includes being up-to-date with the most popular devices in the market. Networks Networks are an important and complex consideration as mobile applications depend on both Wi-Fi and 3/4G connections. Network test scenarios should cater for offline activities as well as interruption to calls, alerts and low battery, testing the data connection and the expected responses. Test teams should also consider the network provider, as each has a different network infrastructure which can also affect performance and user experience. Application Types There are 3 types of mobile applications each with its own set of challenges for test teams:
• Native apps are client-side apps downloaded from stores onto the device. These require dedicated testing effort across each platform/ language that the app is designed and coded.
• Web apps are mobile optimized web pages, which access websites through a mobile device’s browser. These require tests to be run on different types of browsers on devices connected via a mobile or Wi-Fi network. • Hybrid apps are a combination of both native and web, which run on the device and are platform dependent. While the code remains the same there are different factors that come into play for testing due to the need to address characteristics of both native and web apps. Strategies Risk-based and Attack-based Test Strategies need to be considered for mobile testing, evolving through the lifecycle and focusing on early testing to unearth defects during development. Exploratory testing provides feedback loops to teams, with testers determining if more or less test attack type testing is needed, constantly assessing risks refining scope and going beyond basic user story and requirements validation. Performance and security testing also form the main components of a clearly defined mobile test strategy. Tests should be executed on real devices to maximise confidence for product release while also leveraging emulators or remotely connect to devices and web browsers in the cloud. Effectively leveraging Test Automation as part of a mobile test plan provides the ability to continuously test and run the same test case over multiple platforms and devices. This saves testers valuable time, increases quality and improves the team’s ability to correctly repeat tests without errors in test script execution. Difference between the Emulator and Simulator based Testing Both Emulators and Simulators are virtual devices. A virtual device is not the real phone but software which gives same functionality as the real phone (except few functionality like the camera). But there are some differences between an Emulator and Simulator describe as below – The simulator based testing The emulator based testing Simulator’s objective is to simulate the internal state of an object as close as possible to the internal state of an object. The emulator aims at emulating or mimicking as close as possible the outer behavior of an object Simulators are preferable whenever the testing team needs to test the mobile’s external behavior like calculating, making transactions and so forth. Emulators are preferable whenever the testing team needs to test the mobile’s internal behavior like its internal hardware, firmware and so forth. The simulators can be difficult in terms of debugging purpose. Emulators are more suitable when it comes to debugging purpose Advantages of Real Device and Emulator/Simulator based testing Issue Emulator Testing Real Device Testing Situation-based application There are specific situations where the deadline to produce text execution results are short and purchasing the required mobile devices may be not possible. Thereby it might be necessary to use the emulator/simulator in these circumstances for testing the relevant mobile applications which need to be tested. The real device allows the testers to test almost all the real-time scenarios which can be tested for the mobile applications. These devices are operated using fingers and simulate real-life usage. Feeling of closeness towards the real handheld devices The wide gamut of mobile devices creates the problems, whereby the testers are not confident about which mobile devices to invest in for testing, considering the budget constraints. The real device allows the testers to test even usability issues like the look and feel of the application, color resolution of the screen. Simulation of validation of battery scenarios The emulator/simulators are not able to simulate the battery issues. Real world devices can easily perform the same. Validation of incoming interrupts The emulator/simulators are not able to simulate the incoming interrupts for SMS as well as the incoming calls. Real world devices can easily simulates incoming interrupts. Validation of the performance The performance of the emulator/simulator tends to be slower than the original devices at times. The original devices tend to perform faster than the emulator or the simulators. Cloud-Based Mobile App Solution allows the developers and testers around the world to communicate and connect to mobile devices via the internet. In cloud technology, testers get access to almost all the range of devices with different OS platforms, versions, network carriers etc. Apps can be uploaded via API or web clients. Testing which is done by using real devices become expensive, hence cloud-based testing is preferred. Simulators and Emulators available in the cloud, allows testers to perform everything that a real user could do like swiping, double tapping, zoom, scrolling, rotate etc. Benefits of Cloud Mobile Testing
• End User gets a choice of devices, OS platforms, display densities etc thereby reducing the overall infrastructure and maintenance cost.
• Supports parallel testing, hence saves a lot of time.
• Apps can be tested in a secure environment.
• Tools can be accessed from anywhere by both the Developer and the QA.
• Supports recording test results. • Easy access and is available always.
• Supports testing in a real-time environment with real network carriers.
• Pay per user basis. Some of the Cloud Mobile App Testing Service Providers
• Experitest • Saucelabs • Xamarin • Perfecto • Device connect • Silk Mobile • Appium