Practical Approach to Mobile application Testing
Practical Approach to Mobile application Testing
Prasanna V. Jayaprakash
Buy on Leanpub

1 Mobile App Eco System

Mobile OS and Mobile Applications - A Primer.

  • Mobile Application been existence for more than a decade.
  • Many of us experienced seeing how Palm Pilot was used and how Blackberry on its high years used as the only preferable platform for corporate email communication. Even now many enterprise uses the Blackberry smartphones for their email.
  • Many of these early devices had the Mobile applications and some even had an SDK for developers to develop and deliver the apps.
  • A real Mobile apps revolution started when Apple Introduced the iPhone in 2008 most importantly when they released the SDK (Software Development Kit) for developers to develop the apps for these devices.- The revolution followed by the release of Google open source Android Mobile Operating system during 2008/2009. Understanding SmartPhone Market:
  • SmartPhone Market nothing like PC where more that 80% of the world market is controlled by Microsoft. - From 2008 - 5 years on both IOS (iPhone, iPad devices) and Android contribute to more that 70% of the market share.- Rest of the 30% market is being controlled by Microsoft Windows Phone, Blackberry, Nokia etc.

1.1 Understanding SmartPhone OS

  • There are Multiple smartphone Operating systems are available in the market. Part of this Book we will focus on Two prominent OS - IOS and Android.

1.2 IOS - introduction

  • IOS (iPhone OS) is promoted by Apple.
  • Unix based platform - Stripped down version of their MAC OS X os.
  • Objective-c is supported programming for developing both MAC and IOS based applications.
  • Latest OS release is IOS7.
  • Apple controls both Mobile Device Hardware and software development.
  • Screen size specifications are clearly defined from Apple perspective.

Apple devices.

1  Apple delivers multiple devices iPhone, iPad, ipad mini, iPad Air. 
2  within iPhone we have different size and type of devices (iPhone Retina supporte\
3 d, iPhone 3GS, iPhone 4, 5, 5s, 5c etc). 
4  All these devices uses the same IOS as a base for their OS. 
5  Application created for iPhone can very well executed on iPad. 

1.3 Android - Introduction

  • Android OS is promoted by Google as open source project initiative.
  • Android apps are created using JAVA (version of JAVA Specific to Android).
  • Latest OS release is known as KitKat.

Android device variance. - Android being a open source initiative allows OEM (original equipment manufacturers) to control the size of the device. - This Increases various devices sizes supported by many prominent OEM providers like -Samsung, Sony, Dell, HP, HTC etc.

1.4 Mobile Applications - Introduction

  • Both Apple and Google provides the developers SDK (Software Development Kit) to enable them to develop mobile applications.
  • All the SDK and related tools are provided FREE of cost by both providers.

Constraint on IOS from Apple. - To develop IOS applications developers can get the SDK for free but it will work only on MAC OS. Apple does not provide a windows supported iOS app development. - But from testers perspective windows machines are enough to start testing we will cover them in subsequent chapters.

1.5 Mobile App and their Lifecycle

  • Mobile applications follow development/ Deployment / Distribution lifecycle which are completely different from typical web / windows based application lifecycle.
  • Most of the web/ windows based applications are deployed for distribution with in the Enterprise premise and with in the enterprise infrastructure.
  • But for Mobile application targeted to end customers mostly developed and tested with in the enterprise but distribution is completely taken cared by OS Providers.

Mobile App Lifecycle details:

image

image

  • Mobile applications once developed and tested ready for deployment are directly submitted to “Application Stores” of the OS providers for their approval.
  • Once approved the Mobile applications are available for download from the respective OS providers “Application Store”.
  • End customers can directly download your application from these “Application stores” on their mobile devices to use the same.

1.5.1 Mobile App store (Market place)

All prominent Mobile OS providers has their app store build and available for use.

Apple IOS - Apple App store. Google Android - Google Play Store Nokia - OVI Market Microsoft, blackberry etc has their own application stores.

  • There are Enterprise / company develop mobile application for their own employees.
  • In this case companies can have their own “in-House App Store” accessible only with in enterprise and only for their employees.

1.5.2 How the Mobile App Delivery to end customer is controlled

  • In typical Web / Windows applications the delivery of services will be completely controlled by the enterprise itself.
  • Interestingly when you deliver the Mobile application to App store by OS providers they control how it is delivered to the end customer.
  • OS Provides handle complete detail about: Who owns the apps and what activity it does.
  • When identified of any security / misbehavior of the app the OS providers has final say and can remove the app from App store.
1.5.2.1 How does the OS provider manage the app delivery and ownership details
  • To answer how the OS providers (Apples and Googles) manage the app ownership detail are done through some think called “Developer Certificates

1.5.3 what is developer certificate and when do i need it?

#### From IOS Perspective: - If you wish to deploy your Application to develop/test on the Mobile device (iPhone, iPad etc). - If you wish to distribute your application to Apple App Store. #### from Android Perspective: - Only required when you wish to distribute the Android app to app store.

1.5.3.1 Mobile Application Developer License - Introduction
  • We mentioned that both Apple and Google provide their SDK (Software Development Kit) for free.
  • SDK enables the developers to develop the application for FREE.
  • But Not the Developer certificate - If the Developer completes the development and wishes to deliver the App to App store they require to purchase the Developer License Individually from App store providers.
  • Below are the details of various app stores and their cost of acquiring the Developer License.
image

image

1.5.4 Development and Testing Constraint

  • In Typical Web/ Windows Development the whole environment or near final environment is available for development, testing and distribution / Deployment.
  • In Mobile App development to develop and test the application do we need to by all the different versions of expensive Hardware (i.e: iPhone,iPad, Android Phone, Android Tab with multiple form factor) to develop and test my app?
  • The answer is “NO”.
1.5.4.1 IOS and Android Answer to Development / Testing Mobile App challenge
1.5.4.1.1 IOS Simulator:
  • Apple part of their development SDK provide a software called “IOS Simulator” - Before the application can be tested on the device - Testers can use the Simulator to test the application.
  • IOS Simulator is a simulation of the IOS Devices and does not guaranteed by Apple that all the functionality executed on Simulator will work OK on Devices.
  • As the IOS SDK is only available on MAC machines so does the IOS Simulator - are available only in MAC Machines. ##### Android Emulator.
  • Google part of their development SDK provides a software called “Android emulator” - Google names it a emulator to depict that it almost mimic the real real on you environment.
  • Unlike Apple Google Emulators are available for both PC and MAC.

It is recommended that the all features of the mobile Application can be fully tested using simulator but before the app is delivered to App store it is recommended to test on device to make sure that it works OK on the device you are targeting.

1.6 Different Types of Mobile Applications.

  • There are three type of Mobile Application can be created on a border note.
image

image

1.6.1 Native Mobile Applications

  • Mobile Applications build using Native programming language supported by the platform (Apple - Objective-c and Android - JAVA).
  • The Application created can only be accessed through the OS Providers Application stores.
  • End customer has to directly download the application from the App store on their devices to utilize the apps.
  • Native Mobile applications provide the capability to utilize the device specific hardware features - i.e: Device camera can be integrated on the Mobile app, Device GPS, Device accelerometer etc.

1.6.2 Mobile Web Applications

  • We all are familiar with the Desk Top web pages/services.
  • When we directly access the Desktop web pages on mobile the user experience of the pages would degrade due to the small real-estate of the Mobile devices.
  • There are many frameworks available in the market to modify / create web applications that are fit to specific device accessing the web pages. i.e Twitter Bootstrap, Foundation etc.
  • Based on the size of the Mobile device accessing the web page the page content will be trimmed to fit to the screen to provide greater user experience.
  • These Mobile pages are accessed through the Mobile Web Browsers installed on the device.
  • Mobile web applications does not provide option to integrate the Device hardware features i.e: Camera, GPS etc.

1.6.3 Hybrid Mobile Applications

  • There are two variants of the Hybrid mobile applications are defined based on the way it is developed. #### Native Wrapper based Hybrid Mobile apps
  • Using the this approach the Mobile Web pages / services are created using typical HTML, CSS and JAVA Script.
  • Once created they will be wrapped as Native Applications using some of the frameworks in the Market - i.e: PhoneGap support such hybrid app development.
  • Advantage of the wrapping mobile applications including developing the service once and wrapping to multiple platforms like IOS, android etc.
  • This approach also provides option to integrate with Native Mobile device Hardware features like Camera, GPS etc. #### Native + web view control based Hybrid Mobile apps
  • In this Approach the Mobile applications are created using the Native programming language it self.
  • In Native programming Language both IOS and Android provide a component called - “Web View Control”.
  • Web view control enable the web pages to be loaded part of the Mobile Native applications.
  • This Native applications utilizing the Web view control provide option for developing the Hybrid Mobile applications.
  • This approach also provides option to integrate with Native Mobile device Hardware features like Camera, GPS etc.

2 Mobile App Testing Primer

2.0.1 “Smart” features of Smartphone.

  • In this section we will detail majority of the “Smart” features that make the smartphone real smarter.
  • Before testers approach the App testing they need to understand all the Smart features of the latest SmartPhone OS.
  • Below are some of the prominently used Smart Phone features integrated with the Mobile Applications.
image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

3 User Experience Testing Mobile App

To make a preview of your book, click on the “Preview” button on the left. We’ll show you some links to download your book when the preview is complete.

You can keep writing in the meantime.

That’s it for the brief introduction to Leanpub.

4 Automation Testing tool primer

5 Distributing Mobile Apps

6 IOS App Testing Deep Dive

6.0.1 IOS Simulator - Deep Dive

6.0.1.1 Accessing IOS Simulator
6.0.1.2 Understanding features of IOS Simulator
image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

7 IOS Application Testing using Simulator

8 Automation Testing IOS Apps using Instruments

9 Instruments Basics:

  • Instrument is a Free tool provided by Apple part of the IOS SDK Installation.
  • It provides option to create the automation scripts using record and Play back Option.
  • The script generated will use the Javascript as programming language.
  • Supports both IOS device based and IOS Simulator based testing.
  • Available only on MAC supports only IOS based application automation testing.
  • How to Access Instrument on MAC.
Screen- How to access the Instruments on MAC.

Screen- How to access the Instruments on MAC.

  • How to Choose the App to be tested on instruments using “Choose Target”.
Screen- How to choose the Application target options.

Screen- How to choose the Application target options.

  • Choosing the App to be tested on Simulator.
Screen- Choosing the APP for Simulator testing.

Screen- Choosing the APP for Simulator testing.

  • Choosing the App to be tested from Device.
Screen-Choosing the Device Target for Device based testing.

Screen-Choosing the Device Target for Device based testing.

  • Enabling script creation.
Screen-Enabling Script Creation.

Screen-Enabling Script Creation.

  • Enabling Auto recording the Instruments Script.
Screen-Enabling Script Auto Recording.

Screen-Enabling Script Auto Recording.

  • Re-Running the Script.
Screen-Enabling Script Re-Run.

Screen-Enabling Script Re-Run.

Instruments JAVASCRIPT Basics:

10 Automation Testing IOS Apps using Monkey Talk

10.1 MonkeyTalk Introduction

10.2 MonkeyTalk IDE

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

11 Performance Testing IOS Apps

12 Android App Testing Deep Dive

13 Android App Testing using Emulator

14 Automation Testing Android apps using Robotium

15 Automation Testing Android apps using Monkey Talk

16 Performance Testing Android Apps’

17 Security Testing Mobile Apps a Primer

18 IOS Apps Security Testing

19 Android Apps Security Testing

20 Cloud Based Automation Testing

21 Mobile Web App testing