Mobile Application Testing Interview Questions and Answers

Mobile application testing is a process by which application software developed for handheld mobile devices is tested for its functionality, usability and consistency. Mobile application testing can be an automated or manual type of testing. Mobile applications either come pre-installed or can be installed from mobile software distribution platforms. Mobile devices have witnessed a phenomenal growth in the past few years. A study conducted by the Yankee Group predicts the generation of $4.2 billion in revenue by 2013 through 7 billion U.S. smartphone app downloads. Additionally, wearable application testing is an interesting market. Bluetooth, GPS, Sensors, Wi-Fi are some of the core technologies at play in wearables. A lot of importance is needed here for field testing, user focus, and looking at areas where hardware and software need to be tested in unison.

Mobile testing or Mobile Application testing is the process through which applications are tested for required quality, functionality, compatibility, usability, performance and other characteristics. Mobile Application testing makes helps to improve the quality of Mobile Apps. It includes a broad range of application testing and evaluation techniques that encompasses both standard software testing and mobile-platform-specific testing procedures. Mobile applications are getting complex and there is a need for end-to-end testing. Right from whether the application is downloadable effectively, works seamlessly, and gives the same kind of experience across various devices.

Testing is in fact an important part of every software development process and with mobile apps it has become even more important. The growing number of mobile devices is leading to a massive fragmentation of OS, screen sizes, variations of standard OS and more. With agile processes, software testing is performed every so often to assure the best possible quality. New features and bug fixes need to be released with short intervals, so users don’t lose interest and new features should not bring new bugs. Testing becomes vital for an app’s survival.

Functional Testing: Functional testing performs on the functional behavior of the application to ensures that the application is working as per the requirements.

Performance Testing:The testing process is carried out by tester to test the performance. Many of us are familiar with issues such as draining of battery owing to heavy battery uses, bandwidth problems while switching from 3G to 4G or Wi-Fi, difficulties while transferring heavy files because of low memory, etc.

Memory Leakage Testing: Memory leakage is one of the bad issues of the mobile application testing that directly effect on performance of the mobile devices. Due to memory leakage, process might slow down while transferring the file or in-between accessing any application mobile device might switch off automatically.

Interrupt Testing: Interrupt testing is a process of testing a mobile application that functions may get interrupted while using the application.

Usability testing: Usability testing is used to test the mobile applications in terms of usability, flexibility, and friendliness.

Installation testing: Installation testing is used to test the particular application is installing, uninstalling, and updating properly without any interruption.

Operational testing: operational testing is used to test that the particular back-up and recovery process is working properly and responding as per the requirement.

Security Testing: security testing to test the application’s data and network security to check the application’s data and network security is responding as per the given requirement/guideline.

Black box Testing: This type of testing doesn’t include the internally coding logic of the application.Location Testing: Connectivity changes with network and location, but you can’t mimic those fluctuating conditions in a lab.

Crowdsourced Testing: Crowdsourced Testing consists in delegating software testing tasks to a community of expert quality assurance testers through an online platform. It is quickly emerging as the most efficient way to streamline interactive software production and improve the quality of the web and software products published by developers.

Native Application: This apps installed from application store like Android’s google play and apple’ app store. The application which can be installed into your devices and run is known as a native application for E.G. what’s App, Angry birds etc.

Web Testing is checking your web application for potential bugs before it’s made live or before code is moved into the production environment. It is a software testing technique exclusively adopted to test the applications that are hosted on web in which the application interfaces and other functionalities are tested.

WAP stands for Wireless Application Protocol, which is a standard that is used to guide how the mobile version of a website is designed, created, and displayed. Some mobile websites, including m.WXOW.com, have unique device detection capabilities. This means that the mobile website is able to identify not only that you are using a mobile device, but what kind of device you are using. The mobile website is then modified so that it displays in the best format possible for your specific device.

Spike Testing is a type of performance testing in which application is tested with extreme increment and decrements in the load. It is performed to estimate the weakness of an application. It helps to evaluate the behavior of the software system under sudden increment or decrements in user load.

Google provides an Android Testing framework that is part of the Android SDK and is built on top of standard JUnit testing extended with an instrumentation framework and Android-specific testing classes. The Android testing API also provides hooks into the Android component and application life cycle. These hooks are called the instrumentation API and allow your tests to control the life cycle events.

Simulator: A simulator is a piece of software that copies something from real life into a virtual environment. A simulator may be created by the device manufacturer or by some other company offering a simulation environment for developers. Simulators are used to recreate the operation or behavior of a system. The underlying principles can be same as the original or different. Simulators are used in a wider spectrum of fields than computing and electronics.

Emulator: An emulator is meant to copy something exactly as it exists in the real world. In the mobile development world, a device emulator is a desktop application that emulates mobile device hardware and operating systems, allowing us to test and debug our applications and see how they are working. Emulation is mainly used in computing and electronics.

There are various tools available in the market like google play or app store from where you can install apps like CPU Monitor, Usemon, CPU Stats, CPU-Z etc. these are an advanced tool which records historical information about processes running on your device.

Errors can be verified by the generated logs. We can use configuration utility on iOS and android monitor.bat on android. Here are few to name Android DDMS, Remote Debugging on Android with Chrome, Debugging from Eclipse with ADT, Android Debug Bridge, iOS simulator etc.

User Agent identifies the mobile internals i.e. Make, Model, Resolution etc. User Agent is mandatory while downloading appropriate contents onto mobile, whereas a simulator is used to test the downloading process using various user agents to check whether a device is recognized and specific content/build is sent through OTA.

The Access Point Name (APN) is the name for the settings your phone reads to set up a connection to the gateway between your carrier’s cellular network and the public Internet. Access Point Name (APN) configs is depends on ROM. APN’s can be stored in contexts, which are identified by number, and specify information on how to establish a data session (packet orientation, c.f. circuit switched).

GPRS is a packet-based wireless communication service that promises data rates from 56 up to 114 Kbps and continuous connection to the Internet for mobile phone and computer users. The higher data rates allow users to take part in video conferences and interact with multimedia Web sites and similar applications using mobile handheld devices as well as notebook computers. GPRS is based on Global System for Mobile (GSM) communication and complements existing services such circuit-switched cellular phone connections and the Short Message Service (SMS).

The term terminal equipment is generally used to refer to the variety of mobile phones and mobile stations that can be used in a GPRS environment. The equipment is defined by terminal classes and types. Cisco’s gateway GPRS serving node (GGSN) and data network components interoperate with GPRS terminals that meet the GPRS standards.Three classes of GPRS terminals are provided: Class A, Class B, or Class C.

Class A: It support GPRS and other GSM services (such as SMS and voice) simultaneously. This support includes simultaneous attach, activation, monitor, and traffic. Class A terminals can make or receive calls on two services simultaneously

Class B:It can monitor GSM and GPRS channels simultaneously but can support only one of these services at a time. Therefore, a Class B terminal can support simultaneous attach, activation, and monitor, but not simultaneous traffic

Class C: It support only sequential attach. The user must select which service to connect to. Therefore, a Class C terminal can make or receive calls from only the manually selected (or default) service. The service that is not selected is unreachable. The GPRS specifications state that support of SMS is optional for Class C terminals.

There are various tools available in the market like google play or app store from where you can install apps like CPU Monitor, Usemon, CPU Stats, CPU-Z etc. these are an advanced tool which records historical information about processes running on your device.