Friday, October 11, 2013

Interview Questions on Mobile application Testing

Interview Questions on Mobile application Testing.

These are some of the basic questions asked in interview of Mobile application Testing.I am writing my point of view please add or delete content in the answers as per your knowledge.

Question 1:  What is mobile application testing and how is it different from Mobile Testing?

Answer: Mobile Application Testing (MAT) is the testing of application on mobile devices and it is different from Mobile Testing (MT) in the term that in MT we focus on the native application features of the Mobile devices like Call, SMS, Media Player etc while in MAT we focus only on the functionality & features of the application under Test. i.e, MT is generally done in handset makers like Samsung, HTC, Nokia, Sony, Apple etc while MAT is done in various product based companies and through there vendors like service based companies which  do testing of various mobile applications products on different devices like Gmail on mobile, Skype on mobile etc. 

Question 2: What kind of application you have tested and on which platform of mobile ?

Answer: The kind of application depends upon project on which you have worked on like from multimedia application, banking applications, healthcare applications, social networking application so this part is specific to your particular application and any one can explain about his/her work easily.

Regarding Second part of question:

Platform is also specific to your project/product on which you worked but now a day’s generally all applications are generally developed for iOS (Apple), Android, Blackberry & Windows platforms mainly and on Symbian & Bada platforms also.
While explaining these platforms the interviewers generally want to know about your knowledge of devices or OS that what are specific features on these devices/OS and how does these impact any kind of application.

For example-
  • What is the extension of application developed on different platforms OS : Answer is *.ipa for iOS,*.apk for Android, Blackberry *.jad, for windows  phone *.exe and for palm *.prc file.
  • How can a testable build installed on device: For iOS platform iTunes is required, for Android you need android SDK &; adb install command is used to install build on device.
  • What is latest OS version: 8.0 beta for iOS , Blackberry has OS 10.2.1, Android has 4.4.3 (Kit Kat){at the time of writing blog} 
Question 3: What are the names of various Android OS (Generally asked about latest and just previous) ?

Answer: 

Android 1. 0  (Name not applicable):
·  Was released on 23 September 2008. The first Android device, the HTC Dream (G1),
·  Download and upgrade support from Market.
·  WiFi and Bluetooth support.
·  Google Sync support.
·  Maps with street view  support
·  Voice dialer without typing Name.
·  Static Wallpaper Support      

Android 1. 1  (Name not applicable):
·   Was released on 9 February 2009. 
·    Support Map view with business details
·    Support Saving the attachment from MMS.

Android 1. 5  (Cupcake):
·   Was released on 30 April 2009 based on Linux Kernel 2.6.27.
·   Support third party virtual keyboard with text prediction.
·   Support widget
·   Supports video Recording
·   Copy Paste feature
·   Shows user picture & thumbs for Favorites
·   Animated screen transitions. 

Android 1. 6  (Donut):
·   Was released on 15 September 2009 based on Linux Kernel 2.6.29.
·    Voice and text entry search
·    Multi-lingual speech synthesis engine
·    Updated technology support for CDMA/EVDO802.1xVPNs, and a text-to-speech engine

Android 2.0/2.1 (Eclair):
·    Was released on 26 October 2009 based on Linux Kernel 2.6.29.
·    Can add multiple account and performed sync.
·    Exchange Email supports
·    Ability to search saved SMS or MMS
·    Improve Google Maps
·    Addition of Live wallpaper
·    2.1 SDK was released on 12 January 2010

Android 2.2 (Froyo):
·    Was released on 20 May 2010based on Linux Kernel 2.6.32.
·    Speed, memory and performance optimization
·    Support for the Android Cloud to Device Messaging (C2DM) service, enabling push notifications
·    USB tethering and Wi-Fi hotspot functionality
·    Support for installing applications to the expandable memory

Android 2.3 (Gingerbread):
·     Was released on 6 December 2010 based on Linux Kernel 2.6.35.
·     Updated user interface design with increased simplicity and speed
·     Native support for SIP VoIP internet telephony
·     Support for Near Field Communication (NFC)
·     Supports for multiple Camera , Front Camera Support,
·     OS 2.3.4 supports voice & Video chat using Gtalk.
·     OS 2.3.7 introduced Google Wallet support for the Nexus S 4G

Android 3.0 (Honeycomb):
·     Was released on 22 February 2011 based on Linux Kernel 2.6.36.
·     First android OS Tablet support for Motorola Xoom .
·     Multi-tasking Supports
·     Multiple browser tap
·     Supports Video Chat by Gtalk.
·     Supports for Multi-Core processors.
·     New two-pane Email UI
·     Resizable home screen widget
·     Supports Joysticks and gamepads.
·     Improved Adobe Flash supports in browser.
·     Added System Bar, featuring quick access to notifications, status, and soft navigation buttons, available at the bottom of the screen.
·     Ability to view albums and other collections in full-screen mode in Gallery, with easy access to thumbnails for other photos

Android 4.0 (Ice Cream Sandwich):
·    Was released 19 October 2011
·    Speed, memory and performance optimization
·    Support for the Android Cloud to Device Messaging (C2DM) service, enabling push notifications
·    Separation of widgets in a new tab, listed in a similar manner to apps
·    Ability to access apps directly from lock screen
·    Unlock, a feature that allows users to unlock handsets using facial recognition software. 
·    Supports Google+ , hangout feature.


Android 4.1 (Jelly Bean):
·    Was released 27 June 2012
·     Google Voice Search and Google Now
·      Smart App Updates
·      High Resolution Contact Photos
·      Expandable Notifications
·      Resizeable App Widgets

Android 4.2 (Jelly Bean):
·    Was released 13 November 2012
·     Ability to swipe to open camera from locked screen
·     New redesigned camera app
·     New redesigned clock app
·     New Gesture Keyboard

·     Always-on VPN


Android 4.3 (Jelly Bean):
·    Was released 24 July 2013
·     Autocomplete in dial pad 
·     Support to high performance graphics
·     Location detection through Wi-Fi
·     Restricted profiles - put your tablet into a mode with limited access to apps and content

·     Bluetooth Smart support


Android 4.4 (Kit Kat):
·    Was released 31 October 2013
·     Dialer Search which help in searching nearby thing by phone number
·     Hangouts SMS Integration
·     Wireless printing capability
·     Music and movie-seeking from lock screen
·     Location in Quick Settings
·     Downloads app redesign


Few more question n answers

1. What are some tools used to capture app logs on Android: 

We can use monitor.bat file located under tools folder of android sdk to see log and we can select and save the log from it.other than this alogcat is a free log getting tool which is present in Google Play

2. Screenshot capabilities for Android, and Android phones: 

Same with Android Debug Monitor (Monitor.bat) if device is connected use screen capture  feature and also for Samsung device like note2: Power and Home buttons at the same time & wait for capture sound

3. How do you perform end to end testing in respect to mobiles:

It totally depend upon the project to project,can you please elaborate on the question because this is project specific as starting from installation and version upgrade ,uninstallation etc we do apart from functional testing. Security and Performance of application also need to be tested.

4. Some issues you faced during testing in regards to the platforms you used: 

Some time some issue appear on particular version device and OS of device also do matter.

5. Issues faced with cross platform testing: 

Generally the issue depends upon the different OS/device version, it might be same thing is working on one OS while it might not work on another version.Example we faced issue that our application was working fine on iOS 6.x version devices but on tapping few modules on iOS 5.x devices application crashes and same happened with 2.3.5 Vs 

6. What kind of testing did you perform (functional, interruption, connectivity, etc) : 
Very first test we have to perform installation , after that we check the basic functionality and after that we check the connectivity related stuff of the application, Then we uninstall the build and verify how application respond when we interrupt during installation and also we check interruption scenarios when our application request network call .

We also do low network/poor connectivity testing during network call. Upgrade from older version to newer version. navigation in the application without network if it supports this feature.Compatibility of  app on different kind of phones like having external buttons & devices do not have external buttons or other than this flip phone etc

1) When performing end to end Mobile Testing what major criteria are taken into consideration

Major areas are Installation,first time launching application without having network , uninstallation of app, orientation of app if it support it , testing application performance on different kind of devices and network scenarios , testing the application response how it is responding when invalid user credentials are provided and try to change them after installation n so on.

Also if your application is accessing network then you must see the logs generated during that period so that sensitive information should always go in encrypted form, like if it is payment related CC number etc . 

2) Examples of Defects found during Mobile Testing

Issue is saving contact on phone memory or deleting it or some time conference call issue while an active call is there n like that.

3) Testing on Different Networks (WiFi/Cellular Data Plan)

We have to test the application on 2G/EDGE, 3G and Wifi network because some times application faces issues on slower networks 

4) How do you test patches/defect fixes intended for an app already in production 

We generally do regression of relative module and mainly focus on the area which are related to the bug fixes as per  the developer as we can not do entire regression in very short span of time, so just do sanity of rest of the application modules on high priority devices(on which you have major customer base if you have crunch of time members & if team size is not an issue do sanity on all major devices)

5) what major criteria are taken into consideration when testing sms/mms/call logs

6) Defect Tracking Mechanism

This is of same nature like any other software testing project using any tool like Jira, Bugzilla etc

7) What are the tools used in debugging ?

We generally use logs to see the cause of issue where the failure is occurring , so for iOS iPhone configuration utility  for Android Monitor.bat etc can be used and if you provided logs from these tools developer can easily under stand the cause of issue.

8) Testing performed/modules handled by testers based on their project

We generally divide the modules among the team members and then shuffle the modules among team member with different devices.

9) Data Generation Tools

This is generally done by the Use cases, SRS and FRS document as you application specific test data can be only created using these things.

10) what tools you use for performance testing and automation ?

@ Performance testing of the Web service which your application uses you can use jMeter, it is an open source tool which can be used to test the api's performances.

@Automation: It is very subjective term & totally depends on the project need and type of application , there are several paid tools available in the market like SeeTest, Ranorex, Silk Mobile etc while good free automation tools are  Calabash, Appium , Robotium for Android, KIF for iOS and using free tools you require some coding skills like ruby or Java.
If you can send me you specific requirement, i can help you more on this.

11) tell about filter what you can create while checking logs.. ?

Filters helps you in finding relevant information about your application and you can create filter based on the application package name like com.abc.com and save this filter by name as My application ,when you click on this filter then you will see only logs which are from your application.

You can create filter based on Log tag which is related to the thing that line is doing example if you have placed system.out to print the output put then you can create a filter by tag System.out, then it will short list all the print output.
And you can create filter by Choreographer which helps in finding the skipped frames if you want to see it.

You can create filter corresponding to your PID and log message which is coming as text also.

12) How to check CPU usage and memory utilization of an app ?

You can use various tools like Usemon,CPU Usage Monitor, CPU Usage& Process List Viewer etc available in Google Play store and if you want to use sdk, then you can use systrace feature of Android Monitor

13) one thing which you cannot do with Emulator but can do with real device? 

You can test the interrupts like phone call, messages, battery drain out completely while you were using the application under test, low battery scenarios etc  on real devices , memory card mount/unmount scenarios , actual performance of you application can be test on real devices only, Bluetooth related testing can be only done on real devices.


14) Types of mobile applications? 

Mobile applications can be broadly categorized into three categories i.e, Native app, Web app and Hybrid App.

Native App: Native app are developed specifically for one platform, which is coded with a specific programming language (like Objective C for iOS, Java for Android) and installed directly onto the device and can take full advantage of all the device features — they can use the camera, the GPS, the accelerometer, the compass, the phone book etc. Native apps can use the device’s notification system and can work offline. Native apps are installed through an application store (such as Google Play or Apple’s App Store).Native mobile apps provide fast performance and a high degree of reliability. Example of native app: Temple Run, Candy Crush etc. 
 
Web App:Web applications are mobile web portals that are designed, customized and hosted specifically for mobiles. They are accessed through the mobile device’s web browser using a URL. Web apps became really popular when HTML5 came around and people realized that they can obtain native-like functionality in the browser. Mobile web applications cannot use device functionality. Example of web app: google.com, m.snapdeal.com, m.yahoo.com etc.

Hybrid App:Hybrid Apps are Web apps embedded in a native app, run on the device, and are written with web technologies (HTML5, CSS and JavaScript). Hybrid apps run inside a native container, and leverage the device’s browser engine (but not the browser) to render the HTML and process the JavaScript locally. A web-to-native abstraction layer enables access to device capabilities that are not accessible in Mobile Web applications, such as the accelerometer, camera and local storage. An hybrid app is NOT tied to any platform or any particular mobile device. So, it can run on any device once built. Write Once Run Anywhere (WORA) type of app. Example of hybrid app: Flipkart, Facebook, Twitter etc.


Full Form of various application extensions:

1. iPA: iOS APP Store Package
2. APK: Android Application Package file
3. exe: Executable File
4. jad: Java Application Descriptor 
5. prc: Palm Resource Compiler 

35 comments:

  1. These are Just what I was looking for rather than the so called basic questions and answers!!

    ReplyDelete
  2. much needed for me..thank u buddy...

    ReplyDelete
  3. Thanks dear for sharing, really useful... :)

    ReplyDelete
  4. Very well compiled, please update iOS version as 7.1.1 in answer 2 and Android version as 4.4 in answer 2. Appreciate your good work.

    ReplyDelete
  5. This is wht i m looking for..
    Thank u..

    ReplyDelete
  6. Thank you, it is very useful and can u please provide some more questions related to automation testing tools.

    ReplyDelete
  7. Very Specific... and informative.... Thanks

    ReplyDelete
  8. Thank you so much. Very useful info

    ReplyDelete
  9. Good info, Really appreciating...

    ReplyDelete
  10. Excellent Info.. Really appreciate your job!!.. Thanks

    ReplyDelete
  11. Good one dude..Update for Android L

    ReplyDelete
  12. Thanks for an awesome compilation of questions and answers. Appreciate your help. I also have this page that will help any QA tester to be more productive on their job.

    http://www.fromdev.com/2015/03/mobile-app-testing.html

    Hope it helps other fellow qa engineers.

    ReplyDelete