With the rise of personal technology devices, a mobile phone has grown to be from a mere convenient means of communication to somewhat of a personal assistant. The smartphones of today for many professionals can even replace desktop devices or other “heavy duty” technologies. According to Statista, the number of mobile devices users in the last decade grew from 1,06 to 3,8 billion and is expected to further grow by hundreds of millions per year. Increase in smartphone users worldwide according to Statista Always on the go, you barely have to reach to your pocket and find a plethora of apps to assist you with school and work, lifestyle and entertainment. But, of course, for the smartphone owners to make good use of these apps, the development team’s job is to make sure that the mobile app is functioning without a hitch. A bug-free app speaks for itself and earns the company a good reputation and the trust and loyalty of their customers. This is where mobile app testing comes into play. Mobile application testing is a process of detecting defects, bugs in software that has been developed for the use on handheld mobile devices (most commonly, applies to smartphones and tablets). It is tested for functionality, usability and consistency. Mobile apps can come pre-installed on the device or may need to be downloaded and installed from software distribution platforms (e.g., Play Market, App Store). The team of test engineers applies QA best practices to ensures the quality of the app on every step of the development process. Let’s look over some ways of how to test mobile applications that are most common to use when preparing them to go out on the market. Types of Mobile QA Testing There are two types of mobile testing that need to be done: Hardware testing. Internal hardware of the device is tested, including processors, memory space, battery, screen size and resolution, camera, sensors, card slots, etc. Software or Application testing. The main purpose it to test the functionality of the mobile applications. Here you will need to differentiate between the types of mobile apps such as: Native apps – created to be used only on one platform (e.g., mobile, tablet) Mobile web app – server-side apps that allow to access the web on mobile via browsers (Safari, Chrome, etc.)Mobile web app – server-side apps that allow to access the web on mobile via browsers (Safari, Chrome, etc.) These types of apps differ in the way they are developed and how they can be used and tested: Native apps are created with a specific platform in mind whereas mobile web apps should work cross-platform.Native apps are developed with native SDKs, while for mobile web apps developers can use basic web technologies.Native apps are updated from Google play store or app store, while with mobile web apps this is done centralized.Native apps need to be installed on your mobile device; mobile web apps can be accessed and used without installation via mobile web browser.Mobile web apps can only be used with an internet connection, while native apps typically don’t require this. Why Mobile Testing is Important When testing applications on mobile devices, the QA engineer can face some challenges that are linked to the following nuances: Wide range of mobile devices – various screen sizes and resolutions, hardware configurations, different brands especially for Android devices (HTC, Samsung, Huawei, Xiaomi, etc.); Different mobile operation systems – Android, iOS, Windows, BlackBerry; Different OS versions – IOS 10.x, IOS 11.x, Android 9.x, Android 10.x, etc. Types of Mobile Application Testing Mobile applications testing usually is designed to test for many different characteristics. Let’s look at some of the common types of testing to be used: Compatibility testing is handled on different OS versions, devices, screen sizes, cross-browser testing, etc. UI testing checks the theme and style of the interface correctness, buttons and menus, responsiveness of the app, etc. Performance testing analyses app performance with different network connection, battery usage, file sharing, etc. Installation tests checkhow the app behaves when repeatedly installed and deleted on the device.Operational testing is designed to prove the stability and reliability of the app (e.g., data loss when updating from the store, backups and restoration for when the battery goes down, etc.).Security testing performs to see if the user data is protected.Usability testing detects if the application is simple in use, navigation flows are easy to understand, user experience is satisfactory. What else you should focus on while testing mobile apps: How the application will work when switching to online/offline mode. When something interrupts the application: Notifications from other apps.Incoming phone calls.Forced system updates.When you switch from album to portrait view or the other way around.Device going into sleep mode.When you lock/unlock your devices while the application is running in the background. Basic Differences in App Testing: Android vs iOS First of all, there are a lot of different Android devices on the market with a huge variety of sizes, screen resolutions, etc. Basically, every company has its own standards. It’s much harder to develop and test on Android devices because you should make sure that every image, button, and other elements of the interface are not misaligned. Because of different companies developing on Android, software updated is not synchronized which can lead to problems with supporting. And of course, it leads us to the problems with security because of the variety of devices with Android. What are the Differences Between Testing on a Real device vs. Simulator vs. Emulator Both simulators and emulators are virtual devices. A virtual device is a software which allows providing the same functions as a real device, although there can be differences with some functionalities like a phone camera, etc. Advantages of a Simulator/Emulator When the deadline is coming and you have no time for purchasing a real device. The vast numbers of mobile devices from different manufacturers creates problems, whereby the testers are not confident about which mobile devices to invest in for testing, considering the budget constraints. Emulators and simulators are tailor-made to specifically address this situation. In most cases they are free.It’s easier to do web application testing, just copy and paste the link. Disadvantages of a Simulator/Emulator You can’t verify battery scenarios.You are not able to simulate any interceptions like phone calls, SMS, etc. They are not able to simulate the exact color display.Simulating memory-related issues. Advantages of the Real Device You could say that all of the disadvantages of a Simulator/Emulator are an advantage of a real device. You can test all real based scenarios and be sure that the issue is not related to Simulator/Emulator specifics. Disadvantages of the Real Device Money. Physical devices need to be purchased and to make sure that you are covering most of the popular devices, it will cost you much more than using some virtual devices. There is a great variety of mobile devices from Apple and Samsung to Pixels and Symbian, and so on. With all this wide range of mobile devices and operating systems, it is very hard for the software testing team to arrange testing for all sorts of mobile devices while working under a considerable amount of budget and timeline related constraints. Mobile Application Testing Tools to Get you Started There’s an abundance of great tools that you can work with but here are some of the essentials that you might want to consider trying: Charles proxy – Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables the tester to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. It’s a great tool to look for logs while you are using your application; Android studio – it has the same functionality as Charles proxy. All you need is to connect your Android device with a wire and all the logs will be displayed in the Android studio. Works only with Android devices; Xcode – mostly used for development purposes, but you can use it as an emulator of iOS devices. Bottom Line Mobile application testing comes as an important part of the product development process. How you approach it will determine whether your app will be a barely functional novelty or a daily staple in your customer’s life. For instance, Ladbrokes Coral focused on performance testing when preparing for UK’s greatest annual racing event and managed to support over two million user visits with no downtime, securing the brand’s reputation and popularity with the customers and increasing revenue. So, if you want to achieve similar results and see your app succeed, remember the following steps: Identify what platforms you will support. You should have at least a couple of physical devices. Use tools which will help you with testing.Use different simulators/emulators to expand your testing coverage. Don’t forget that you are creating something that will potentially bring a better quality of life for your users. Your part is to ensure the good quality of the mobile app. If you want to help create high-quality mobile applications to satisfy even the most peculiar user, see our open QA vacancies and apply.