SlideShare a Scribd company logo
1 of 10
Beginner’s Guide to Mobile Application
Testing
Introduction to Mobile Application Testing:
Gone are the days when the telephone used to be an appliance that sat in a corner and
had to ring to get our attention or a computer was a machine only few people used – they
are now an extension of our being- a window to the world and virtual servants that do as
they are told. Computers were a rage and changed how we humans thought, behaved,
learnt and existed.
Mobile technology and smart devices are the trend now and will change the future of the
world as we know it. We all can vouch for it, can’t we? Now, it will be amateurish if I list
what we use these mobile devices for. You all know it – May be better than we do
Key Challenges in Mobile Application Testing
1. Variety of Mobile Devices- Mobile devices differ in screen sizes, input methods
(QWERTY, touch, normal) with different hardware capabilities.
2. Diversity in Mobile Platforms/OS- There are different Mobile Operating Systems in the
market. The major ones are Android, IOS, BREW, BREWMP, Symbian, Windows Phone,
and BlackBerry (RIM). Each operating system has its own limitations. Testing a single
application across multiple devices running on the same platform and every platform
poses a unique challenge for testers.
3. Mobile network operators- There are over 400 mobile network operators in the
world;[4] out of which some are CDMA, some GSM, whereas others use less common
network standards like FOMA, and TD-SCDMA. Each network operator uses a different
kind network infrastructure and this limits the flow of information.
4. Scripting- The variety of devices makes executing the test script (Scripting) a key
challenge. As devices differ in keystrokes, input methods, menu structure and display
properties single script does not function on every device.
Application Lifecycle and Testing
Mobile applications are upgraded frequently for a variety of reasons –
1. Mobile users expect rapid feature upgrades and bug fixes
2. As more and more developers use agile development methodologies, frequent
releases with
incremental feature updates are becoming common
3.Applications are updated to take advantages of new versions of mobile platforms
(such as iOS or
Android)
Each application upgrade warrants an additional test cycle. Moreover, additional test
cycles are needed. when a new version of a mobile platform (such as iOS or Android) is
released to ensure application compatibility. Similarly, additional test cycles are needed
when a new high profile device is introduced in the market.
The scope of testing for each test cycle depends on the underlying changes. Some minor
changes may require testing only key application functionality (often called ‘smoke test’ or
‘sanity test’) while other changes may require full regression testing and testing new
features.
Types of Mobile Testing
There are broadly 2 kinds of testing that take place on mobile devices:
1. Hardware testing:
The device including the internal processors, internal hardware, screen sizes, resolution,
space or memory, camera, radio, Bluetooth, WIFI etc. This is sometimes referred to as,
simple “Mobile Testing”.
2. Software or Application testing:
The applications that work on mobile devices and their functionality is tested. It is called
the
“Mobile Application Testing” to differentiate it from the earlier method. Even in the mobile
applications, there are few basic differences that are important to understand:
a) Native apps: A native application is created for use on a platform like mobile and
tablets.
b) Mobile web apps are server-side apps to access website/s on mobile using different
browsers like chrome, Firefox by connecting to a mobile network or wireless network like
WIFI.
c) Hybrid apps are combinations of native app and web app. They run on devices or
offline and are written using web technologies like HTML5 and CSS.
There are few basic differences that set these apart:
 Native apps have single platform affinity while mobile web apps have cross platform
affinity.
 Native apps are written in platforms like SDKs while Mobile web apps are written
with web technologies like html, css, asp.net, java, php.
 For a native app, installation is required but for mobile web apps, no installation is
required.
 Native app can be updated from play store or app store while mobile web apps are
centralized updates.
 Many native app don’t require Internet connection but for mobile web apps it’s a
must.
 Native app works faster when compared to mobile web apps.
 Native apps are installed from app stores like Google play store or app store where
mobile web are websites and are only accessible through Internet.
Significance of Mobile Application Testing
Testing applications on mobile devices is more challenging than testing web apps on
desktop due to
 Different range of mobile devices with different screen sizes and hardware
configurations like hard keypad, virtual keypad (touch screen) and trackball etc.
 Wide varieties of mobile devices like HTC, Samsung, Apple and Nokia.
 Different mobile operating systems like Android, Symbian, Windows, Blackberry
and IOS.
 Different versions of operation system like iOS 5.x, iOS 6.x, BB5.x, BB6.x etc.
 Different mobile network operators like GSM and CDMA.
 Frequent updates – (like android- 4.2, 4.3, 4.4, iOS-5.x, 6.x) – with each update a
new testing cycle is recommended to make sure no application functionality is
impacted.
As with any application, Mobile application testing is also very important, as clientele is
usually in millions for a certain product – and a product with bugs is never appreciated. It
often results in monetary losses, legal issue and irreparable brand image damage
Basic Difference Between Mobile and Desktop Application Testing:
Few obvious aspects that sets mobile app testing apart from the desktop testing
 On desktop, the application is tested on a central processing unit. On a mobile
device, the application is tested on handsets like Samsung, Nokia, Apple and HTC.
 Mobile device screen size is smaller than desktop.
 Mobile devices have less memory than desktop.
 Mobiles use network connections like 2G, 3G, 4G or WIFI where desktop use
broadband or dial up connections.
 The automation tool used for desktop application testing might not work on mobile
applications.
Types of Mobile App Testing:
Usability testing– To make sure that the mobile app is easy to use and provides a
satisfactory user experience to the customers
 Compatibility testing– Testing of the application in different mobiles devices,
browsers, screen sizes and OS versions according to the requirements.
 Interface testing– Testing of menu options, buttons, bookmarks, history, settings,
and navigation flow of the application.
 Services testing– Testing the services of the application online and offline.
 Low level resource testing: Testing of memory usage, auto deletion of temporary
files, local database growing issues known as low level resource testing.
 Performance testing– Testing the performance of the application by changing the
connection from 2G, 3G to WIFI, sharing the documents, battery consumption, etc.
 Operational testing– Testing of backups and recovery plan if battery goes down,
or data loss while upgrading the application from store.
 Installation tests– Validation of the application by installing /uninstalling it on the
devices.
 Security Testing– Testing an application to validate if the information system
protects data or not.
Mobile Application Testing Strategy
The Test strategy should make sure that all the quality and performance guidelines are
met. A few pointers in this area:
1) Selection of the devices – Analyze the market and choose the devices that are widely
used. (This decision mostly relies on the clients. The client or the app builders consider the
popularity factor of a certain devices as well as the marketing needs for the application to
decide what handsets to use for testing.)
2) Emulators – The use of these is extremely useful in the initial stages of development,
as they allow quick and efficient checking of the app. Emulator is a system that runs
software from one environment to another environment without changing the software
itself. It duplicates the features and work on real system.
Types of Mobile Emulators
 Device Emulator- provided by device manufacturers
 Browser Emulator- simulates mobile browser environments.
 Operating systems Emulator- Apple provides emulators for iPhones, Microsoft for
Windows phones and Google Android phones
3) After a satisfactory level of development is complete for the mobile app, you could move
to test on the physical devices for a more real life scenarios based testing.
4) Consider cloud computing based testing: Cloud computing is basically running
devices on multiple systems or networks via Internet where applications can be tested,
updated and managed. For testing purposes, it creates the web based mobile environment
on a simulator to access the mobile app.
Pros:
 Backup and recovery- Cloud computing automatically takes back up of your data
from remote location making recovery and restoring of data easy. And also, the
storage capacity is unlimited.
 Clouds can be accessed from different devices and anywhere.
 Cloud computing is cost efficient, easy to use, maintain and update.
 Fast and quick deployment.
 Web based interface.
 Can run the same script on several devices in parallel.
Cons
 Less control– Since the application runs on remote or third party environment, user
has limited control and access over the functions.
 Internet connectivity issues– the setup is on Internet. Network issues affect the
availability and functioning
 Security and privacy Issues– Cloud computing is an Internet computing and
nothing on Internet is completing secure, so chances of data hacking are more.
Test Cases for Testing a Mobile App
In addition to functionality based test cases, Mobile application testing requires
special test
cases which should cover following scenarios.
 Battery usage– It’s important to keep a track of battery consumption while running
application on the mobile devices.
 Speed of the application- the response time on different devices, with different
memory parameters, with different network types etc.
 Data requirements – For installation as well as to verify if the user with limited data
plan will able to download it.
 Memory requirement– again, to download, install and run
 Functionality of the application– make sure application is not crashing due to
network failure or anything else.
Typical activities and proceedings in Testing Mobile Application
The scope of the testing depends on the amount of requirements to be checked or the
extent of changes made to the app. If the changes are few, a round of sanity testing will
do. In case of major and/or complex changes, a full regression is recommended.
Mobile Testing process:
Step 1. Identify the types of testing: As ILL application is applicable for browsers, so it’s
mandatory to test this application on all supported browsers using different mobile devices.
We need to do usability, functional and compatibility testing on different browsers with
the combinations of manual and automation test cases.
Step 2. Manual and Automated testing: The methodology followed for this project is
Agile with the iteration of two weeks. Every two weeks dev. team releases a new build to
testing team and testing team will run their test cases on QA environment. Automation
team creates scripts for set of basic functionality and runs the scripts that help determine if
the new build is stable enough to test. The Manual testing team will test the new
functionality.
JIRA is used for writing of acceptance criteria; maintaining of test cases and logging /re-
verification of defects. Once the iteration gets over, iteration planning meeting held
where dev. Team, product owner, business analyst, and QA team discuss what went well
and what needs to improve.
Step 3. Beta Testing: Once the regression testing is completed by the QA team, the build
moves into UAT. User Acceptance Testing is done by the client. They re-verify all the bugs
to make sure every bug was fixed and the application is working as expected on every
approved browser.
Step 4. Performance test: Performance testing team tests the performance of the web
app using JMeter scripts and with different the loads on the application.
Step 5. Browser testing: The web app gets tested across multiple browsers- both using
different simulation tools as well as physically using real mobile devices.
Step 6. Launch plan: After every 4th week the testing moves into staging, where a final
round of end to end testing on these devices is performed to make sure the product is
ready for production. And then, it goes Live!
Common Functional Issues for Mobile
Functional testing covers the broadest range of criteria, so any checklist will be somewhat
incomplete. That said, here are a few areas that should probably always be covered in
your functional testing strategy:
• Sign-up & Login: This may seem like a no-brainer, but if users cannot easily access
your application, your efforts will have been wasted. If your app or mobile site requires
password and username (not recommended), pay close attention to the fields and make
sure that it’s easy for users to enter their information.
• Menu Options: Often times, menu options can be difficult to access and decipher. Make
sure that menu items like Help, About, etc. are easy to find and navigate.
• Keys: Any problems related to scrolling, text selection, the back button, etc. are bound to
lead to trouble, so make sure your key functionality is clear and consistent. Also, be sure
to cross-check if your app will run with a keyboard and/or touch-screen.
• Data Handling: An important consideration for all mobile apps (but or games in
particular) is data handling. Does your mobile app store saved information properly? What
about data deletion – or worse – unintended data deletion? Make sure to include this in
your testing scope.
• Connection Speed / Carrier: With the iPhone now running on Verizon, Sprint and
others, testing on only one carrier is no longer an option. Make sure that your most basic
app tests include some of the most popular (and likely) carriers, as performance can vary
greatly from one carrier to another.
Testing Types: Functional Testing
• Operating System: Like carriers, the mobile operating system running your app will have
a huge impact on its relative performance. For some operating systems (like Android), you
will not be able to test across every possible combination with in-house resources, but you
should identify 3-5 of the most popular ones and test accordingly.
• Screen Size: While this applies mainly to tablets, screen size discrepancies should be a
top consideration while testing your mobile app. For instance, how much should users
have to scroll from left-to-right or top-to-bottom, if at all?
• Interruptions: How does your mobile app behave when the device battery is at full
strength, medium strength and low strength? This is just one of the many variables to
consider when testing, but it’s also one of the easiest items to check for. Others include
incoming calls, SMS, MMS and video calls.
• Error Messages: Your error messages should be clear, concise and actionable. Do this,
and you’re a step ahead of virtually all mobile applications on the market today
Addressing the Complexities of Testing
Mobile application testing requires several sophisticated tools to ensure comprehensive
and
reliable test management. The most common tools required are for test
automation,performance testing and security testing. Test automation is a must for mobility
testing. This is evident from the fact that the same use case has to be run and validated on
a growing number of devices and platforms. A reusable and scalable automation solution
can help optimise the test effort. This signicantly reduces the time required for testing and
also the cost of testing. Automation solutions can be broadly classied in two categories –
cloud based and desktop based. Tools must be selected for reusability across platforms
and devices while keeping in mind the entire application portfolio. For a majority of the
enterprises selecting and maintaining test automation tools can be a confusing task prone
to expensive errors. This is one reason why it is best to partner with a technology provider
who has a deep understanding of mobile test automation and who also has an
understanding of your test needs and priorities. Another way to manage mobile application
testing is to set up an in-house mobile test automation lab. This means equipping the lab
with devices (various platforms and form factors), mobile infrastructure (secure Wi-Fi,
internet, backend, automation stations, PI servers), tools (test, performance, security) and
data (test data, benchmarks etc.). This is an expensive exercise. Most enterprises also nd
it difficult to retain the skills and expertise required to manage and maintain such facilities
that are not
core to their respective business.
The Solution and the Benefits
In today’s highly fragmented, fast growing and dynamic mobile market it is tough for
enterprises to own and operate mobile application testing infrastructure with high utilisation
levels to justify the investment. It is best for businesses to work with a partner who can
deliver testing as a service. Such a partner would ideally have the required skills and
experience and also the infrastructure to deliver a reliable testing service. As an example a
partner must offer the following to its customers:
ensure best quality in shortest possible time.
-to-customize business processes and use cases.
The benefits of such a partnership mean that an enterprise can remain platform agnostic
and focus on the application rather than on the device. Rapid
automated testing of applications across platforms and versions will ensure faster time to
market, with a high degree of functional and security assurance in addition to deep test
coverage - all this without the headache of managing the test infrastructure or
making CAPEX investments with uncertain ROI.
Conclusion
Designing the right test strategy, choosing the right mobile simulators, devices and mobile
testing tools can make sure that we have 100% test coverage and help us include security,
usability, performance, functionality and compatibility based tests into our test suites.

More Related Content

What's hot

Mobile Testing Service Desk_Own.ppt
Mobile Testing Service Desk_Own.pptMobile Testing Service Desk_Own.ppt
Mobile Testing Service Desk_Own.ppt
QA Programmer
 
Hp perfecto webinar - UFT Mobile
Hp perfecto webinar - UFT MobileHp perfecto webinar - UFT Mobile
Hp perfecto webinar - UFT Mobile
Perfecto Mobile
 

What's hot (19)

Mobile testing practices
Mobile testing practicesMobile testing practices
Mobile testing practices
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Mobile App Testing Strategy
Mobile App Testing StrategyMobile App Testing Strategy
Mobile App Testing Strategy
 
Mobile Applications Testing: From Concepts to Practice
Mobile Applications Testing: From Concepts to PracticeMobile Applications Testing: From Concepts to Practice
Mobile Applications Testing: From Concepts to Practice
 
Mobile App Testing
Mobile App TestingMobile App Testing
Mobile App Testing
 
Main Challenges of Mobile Testing
Main Challenges of Mobile TestingMain Challenges of Mobile Testing
Main Challenges of Mobile Testing
 
Mobile Testing Service Desk_Own.ppt
Mobile Testing Service Desk_Own.pptMobile Testing Service Desk_Own.ppt
Mobile Testing Service Desk_Own.ppt
 
Mobile Application Testing Strategy
Mobile Application Testing StrategyMobile Application Testing Strategy
Mobile Application Testing Strategy
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Mobile testing
Mobile testingMobile testing
Mobile testing
 
The Essentials of Mobile App Testing and Monitoring
The Essentials of Mobile App Testing and MonitoringThe Essentials of Mobile App Testing and Monitoring
The Essentials of Mobile App Testing and Monitoring
 
Mobile test automation perfecto star east
Mobile test automation perfecto star eastMobile test automation perfecto star east
Mobile test automation perfecto star east
 
Mobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobile Application Testing Training Presentation
Mobile Application Testing Training Presentation
 
Hp perfecto webinar - UFT Mobile
Hp perfecto webinar - UFT MobileHp perfecto webinar - UFT Mobile
Hp perfecto webinar - UFT Mobile
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Mobile Application Testing
Mobile Application Testing Mobile Application Testing
Mobile Application Testing
 
Mobile application testing tutorial
Mobile application testing tutorialMobile application testing tutorial
Mobile application testing tutorial
 
Mobile Testing: Challenges & Current Best Practices
Mobile Testing: Challenges & Current Best PracticesMobile Testing: Challenges & Current Best Practices
Mobile Testing: Challenges & Current Best Practices
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
 

Similar to Mobile app testing

HienVo_Mobile Testing_v.1.2
HienVo_Mobile Testing_v.1.2HienVo_Mobile Testing_v.1.2
HienVo_Mobile Testing_v.1.2
Hien Vo
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
Gaurav Singh
 
Mobile testing
Mobile testingMobile testing
Mobile testing
Alex Hung
 

Similar to Mobile app testing (20)

Difference between Mobile and Web App testing
Difference between Mobile and Web App testingDifference between Mobile and Web App testing
Difference between Mobile and Web App testing
 
Mobile testing
Mobile testingMobile testing
Mobile testing
 
Mobile Application Testing - White Paper
Mobile Application Testing - White PaperMobile Application Testing - White Paper
Mobile Application Testing - White Paper
 
Mobile application-testing for shanethatech
Mobile application-testing for shanethatechMobile application-testing for shanethatech
Mobile application-testing for shanethatech
 
Test Cases and Testing Strategies for Mobile Apps –A Survey
Test Cases and Testing Strategies for  Mobile Apps  –A SurveyTest Cases and Testing Strategies for  Mobile Apps  –A Survey
Test Cases and Testing Strategies for Mobile Apps –A Survey
 
Mobile Performance Testing Approaches and Challenges
Mobile Performance Testing Approaches and ChallengesMobile Performance Testing Approaches and Challenges
Mobile Performance Testing Approaches and Challenges
 
HienVo_Mobile Testing_v.1.2
HienVo_Mobile Testing_v.1.2HienVo_Mobile Testing_v.1.2
HienVo_Mobile Testing_v.1.2
 
Thorsignia - Custom software development services in india
Thorsignia - Custom software development services in indiaThorsignia - Custom software development services in india
Thorsignia - Custom software development services in india
 
Mobile Application testing
Mobile Application testingMobile Application testing
Mobile Application testing
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
 
Mobile Testing Tools 101
Mobile Testing Tools 101Mobile Testing Tools 101
Mobile Testing Tools 101
 
Overview of Enterprise Mobility
Overview of Enterprise MobilityOverview of Enterprise Mobility
Overview of Enterprise Mobility
 
Mobile testing
Mobile testingMobile testing
Mobile testing
 
A Complete Guide to Mobile App Testing Types.pdf
A Complete Guide to Mobile App Testing Types.pdfA Complete Guide to Mobile App Testing Types.pdf
A Complete Guide to Mobile App Testing Types.pdf
 
Mobile App Security Testing -2
Mobile App Security Testing -2Mobile App Security Testing -2
Mobile App Security Testing -2
 
Mobile testing
Mobile testingMobile testing
Mobile testing
 
Tap into mobile app testing@TDT Iasi Sept2013
Tap into mobile app testing@TDT Iasi Sept2013Tap into mobile app testing@TDT Iasi Sept2013
Tap into mobile app testing@TDT Iasi Sept2013
 
SynapseIndia mobile apps
SynapseIndia mobile appsSynapseIndia mobile apps
SynapseIndia mobile apps
 
Mobile applications testing
Mobile applications testingMobile applications testing
Mobile applications testing
 
Experitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous IntegrationExperitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous Integration
 

Mobile app testing

  • 1. Beginner’s Guide to Mobile Application Testing Introduction to Mobile Application Testing: Gone are the days when the telephone used to be an appliance that sat in a corner and had to ring to get our attention or a computer was a machine only few people used – they are now an extension of our being- a window to the world and virtual servants that do as they are told. Computers were a rage and changed how we humans thought, behaved, learnt and existed. Mobile technology and smart devices are the trend now and will change the future of the world as we know it. We all can vouch for it, can’t we? Now, it will be amateurish if I list what we use these mobile devices for. You all know it – May be better than we do Key Challenges in Mobile Application Testing 1. Variety of Mobile Devices- Mobile devices differ in screen sizes, input methods (QWERTY, touch, normal) with different hardware capabilities. 2. Diversity in Mobile Platforms/OS- There are different Mobile Operating Systems in the market. The major ones are Android, IOS, BREW, BREWMP, Symbian, Windows Phone, and BlackBerry (RIM). Each operating system has its own limitations. Testing a single application across multiple devices running on the same platform and every platform poses a unique challenge for testers. 3. Mobile network operators- There are over 400 mobile network operators in the world;[4] out of which some are CDMA, some GSM, whereas others use less common network standards like FOMA, and TD-SCDMA. Each network operator uses a different kind network infrastructure and this limits the flow of information. 4. Scripting- The variety of devices makes executing the test script (Scripting) a key challenge. As devices differ in keystrokes, input methods, menu structure and display properties single script does not function on every device. Application Lifecycle and Testing Mobile applications are upgraded frequently for a variety of reasons – 1. Mobile users expect rapid feature upgrades and bug fixes 2. As more and more developers use agile development methodologies, frequent releases with
  • 2. incremental feature updates are becoming common 3.Applications are updated to take advantages of new versions of mobile platforms (such as iOS or Android) Each application upgrade warrants an additional test cycle. Moreover, additional test cycles are needed. when a new version of a mobile platform (such as iOS or Android) is released to ensure application compatibility. Similarly, additional test cycles are needed when a new high profile device is introduced in the market. The scope of testing for each test cycle depends on the underlying changes. Some minor changes may require testing only key application functionality (often called ‘smoke test’ or ‘sanity test’) while other changes may require full regression testing and testing new features. Types of Mobile Testing There are broadly 2 kinds of testing that take place on mobile devices: 1. Hardware testing: The device including the internal processors, internal hardware, screen sizes, resolution, space or memory, camera, radio, Bluetooth, WIFI etc. This is sometimes referred to as, simple “Mobile Testing”. 2. Software or Application testing: The applications that work on mobile devices and their functionality is tested. It is called the “Mobile Application Testing” to differentiate it from the earlier method. Even in the mobile applications, there are few basic differences that are important to understand: a) Native apps: A native application is created for use on a platform like mobile and
  • 3. tablets. b) Mobile web apps are server-side apps to access website/s on mobile using different browsers like chrome, Firefox by connecting to a mobile network or wireless network like WIFI. c) Hybrid apps are combinations of native app and web app. They run on devices or offline and are written using web technologies like HTML5 and CSS. There are few basic differences that set these apart:  Native apps have single platform affinity while mobile web apps have cross platform affinity.  Native apps are written in platforms like SDKs while Mobile web apps are written with web technologies like html, css, asp.net, java, php.  For a native app, installation is required but for mobile web apps, no installation is required.  Native app can be updated from play store or app store while mobile web apps are centralized updates.  Many native app don’t require Internet connection but for mobile web apps it’s a must.  Native app works faster when compared to mobile web apps.  Native apps are installed from app stores like Google play store or app store where mobile web are websites and are only accessible through Internet. Significance of Mobile Application Testing Testing applications on mobile devices is more challenging than testing web apps on desktop due to  Different range of mobile devices with different screen sizes and hardware configurations like hard keypad, virtual keypad (touch screen) and trackball etc.  Wide varieties of mobile devices like HTC, Samsung, Apple and Nokia.  Different mobile operating systems like Android, Symbian, Windows, Blackberry and IOS.  Different versions of operation system like iOS 5.x, iOS 6.x, BB5.x, BB6.x etc.  Different mobile network operators like GSM and CDMA.  Frequent updates – (like android- 4.2, 4.3, 4.4, iOS-5.x, 6.x) – with each update a new testing cycle is recommended to make sure no application functionality is impacted. As with any application, Mobile application testing is also very important, as clientele is usually in millions for a certain product – and a product with bugs is never appreciated. It often results in monetary losses, legal issue and irreparable brand image damage Basic Difference Between Mobile and Desktop Application Testing: Few obvious aspects that sets mobile app testing apart from the desktop testing  On desktop, the application is tested on a central processing unit. On a mobile
  • 4. device, the application is tested on handsets like Samsung, Nokia, Apple and HTC.  Mobile device screen size is smaller than desktop.  Mobile devices have less memory than desktop.  Mobiles use network connections like 2G, 3G, 4G or WIFI where desktop use broadband or dial up connections.  The automation tool used for desktop application testing might not work on mobile applications. Types of Mobile App Testing: Usability testing– To make sure that the mobile app is easy to use and provides a satisfactory user experience to the customers  Compatibility testing– Testing of the application in different mobiles devices, browsers, screen sizes and OS versions according to the requirements.  Interface testing– Testing of menu options, buttons, bookmarks, history, settings, and navigation flow of the application.  Services testing– Testing the services of the application online and offline.  Low level resource testing: Testing of memory usage, auto deletion of temporary files, local database growing issues known as low level resource testing.  Performance testing– Testing the performance of the application by changing the connection from 2G, 3G to WIFI, sharing the documents, battery consumption, etc.  Operational testing– Testing of backups and recovery plan if battery goes down, or data loss while upgrading the application from store.  Installation tests– Validation of the application by installing /uninstalling it on the devices.  Security Testing– Testing an application to validate if the information system protects data or not. Mobile Application Testing Strategy The Test strategy should make sure that all the quality and performance guidelines are met. A few pointers in this area: 1) Selection of the devices – Analyze the market and choose the devices that are widely used. (This decision mostly relies on the clients. The client or the app builders consider the popularity factor of a certain devices as well as the marketing needs for the application to decide what handsets to use for testing.) 2) Emulators – The use of these is extremely useful in the initial stages of development, as they allow quick and efficient checking of the app. Emulator is a system that runs software from one environment to another environment without changing the software itself. It duplicates the features and work on real system. Types of Mobile Emulators  Device Emulator- provided by device manufacturers  Browser Emulator- simulates mobile browser environments.
  • 5.  Operating systems Emulator- Apple provides emulators for iPhones, Microsoft for Windows phones and Google Android phones 3) After a satisfactory level of development is complete for the mobile app, you could move to test on the physical devices for a more real life scenarios based testing. 4) Consider cloud computing based testing: Cloud computing is basically running devices on multiple systems or networks via Internet where applications can be tested, updated and managed. For testing purposes, it creates the web based mobile environment on a simulator to access the mobile app. Pros:  Backup and recovery- Cloud computing automatically takes back up of your data from remote location making recovery and restoring of data easy. And also, the storage capacity is unlimited.  Clouds can be accessed from different devices and anywhere.  Cloud computing is cost efficient, easy to use, maintain and update.  Fast and quick deployment.  Web based interface.  Can run the same script on several devices in parallel. Cons  Less control– Since the application runs on remote or third party environment, user has limited control and access over the functions.  Internet connectivity issues– the setup is on Internet. Network issues affect the availability and functioning  Security and privacy Issues– Cloud computing is an Internet computing and nothing on Internet is completing secure, so chances of data hacking are more. Test Cases for Testing a Mobile App
  • 6. In addition to functionality based test cases, Mobile application testing requires special test cases which should cover following scenarios.  Battery usage– It’s important to keep a track of battery consumption while running application on the mobile devices.  Speed of the application- the response time on different devices, with different memory parameters, with different network types etc.  Data requirements – For installation as well as to verify if the user with limited data plan will able to download it.  Memory requirement– again, to download, install and run  Functionality of the application– make sure application is not crashing due to network failure or anything else. Typical activities and proceedings in Testing Mobile Application The scope of the testing depends on the amount of requirements to be checked or the extent of changes made to the app. If the changes are few, a round of sanity testing will do. In case of major and/or complex changes, a full regression is recommended. Mobile Testing process:
  • 7. Step 1. Identify the types of testing: As ILL application is applicable for browsers, so it’s mandatory to test this application on all supported browsers using different mobile devices. We need to do usability, functional and compatibility testing on different browsers with the combinations of manual and automation test cases. Step 2. Manual and Automated testing: The methodology followed for this project is Agile with the iteration of two weeks. Every two weeks dev. team releases a new build to testing team and testing team will run their test cases on QA environment. Automation team creates scripts for set of basic functionality and runs the scripts that help determine if the new build is stable enough to test. The Manual testing team will test the new functionality. JIRA is used for writing of acceptance criteria; maintaining of test cases and logging /re- verification of defects. Once the iteration gets over, iteration planning meeting held where dev. Team, product owner, business analyst, and QA team discuss what went well and what needs to improve. Step 3. Beta Testing: Once the regression testing is completed by the QA team, the build moves into UAT. User Acceptance Testing is done by the client. They re-verify all the bugs to make sure every bug was fixed and the application is working as expected on every approved browser. Step 4. Performance test: Performance testing team tests the performance of the web app using JMeter scripts and with different the loads on the application. Step 5. Browser testing: The web app gets tested across multiple browsers- both using different simulation tools as well as physically using real mobile devices. Step 6. Launch plan: After every 4th week the testing moves into staging, where a final round of end to end testing on these devices is performed to make sure the product is ready for production. And then, it goes Live! Common Functional Issues for Mobile Functional testing covers the broadest range of criteria, so any checklist will be somewhat
  • 8. incomplete. That said, here are a few areas that should probably always be covered in your functional testing strategy: • Sign-up & Login: This may seem like a no-brainer, but if users cannot easily access your application, your efforts will have been wasted. If your app or mobile site requires password and username (not recommended), pay close attention to the fields and make sure that it’s easy for users to enter their information. • Menu Options: Often times, menu options can be difficult to access and decipher. Make sure that menu items like Help, About, etc. are easy to find and navigate. • Keys: Any problems related to scrolling, text selection, the back button, etc. are bound to lead to trouble, so make sure your key functionality is clear and consistent. Also, be sure to cross-check if your app will run with a keyboard and/or touch-screen. • Data Handling: An important consideration for all mobile apps (but or games in particular) is data handling. Does your mobile app store saved information properly? What about data deletion – or worse – unintended data deletion? Make sure to include this in your testing scope. • Connection Speed / Carrier: With the iPhone now running on Verizon, Sprint and others, testing on only one carrier is no longer an option. Make sure that your most basic app tests include some of the most popular (and likely) carriers, as performance can vary greatly from one carrier to another. Testing Types: Functional Testing • Operating System: Like carriers, the mobile operating system running your app will have a huge impact on its relative performance. For some operating systems (like Android), you will not be able to test across every possible combination with in-house resources, but you should identify 3-5 of the most popular ones and test accordingly. • Screen Size: While this applies mainly to tablets, screen size discrepancies should be a top consideration while testing your mobile app. For instance, how much should users have to scroll from left-to-right or top-to-bottom, if at all? • Interruptions: How does your mobile app behave when the device battery is at full strength, medium strength and low strength? This is just one of the many variables to consider when testing, but it’s also one of the easiest items to check for. Others include incoming calls, SMS, MMS and video calls. • Error Messages: Your error messages should be clear, concise and actionable. Do this, and you’re a step ahead of virtually all mobile applications on the market today Addressing the Complexities of Testing Mobile application testing requires several sophisticated tools to ensure comprehensive and reliable test management. The most common tools required are for test
  • 9. automation,performance testing and security testing. Test automation is a must for mobility testing. This is evident from the fact that the same use case has to be run and validated on a growing number of devices and platforms. A reusable and scalable automation solution can help optimise the test effort. This signicantly reduces the time required for testing and also the cost of testing. Automation solutions can be broadly classied in two categories – cloud based and desktop based. Tools must be selected for reusability across platforms and devices while keeping in mind the entire application portfolio. For a majority of the enterprises selecting and maintaining test automation tools can be a confusing task prone to expensive errors. This is one reason why it is best to partner with a technology provider who has a deep understanding of mobile test automation and who also has an understanding of your test needs and priorities. Another way to manage mobile application testing is to set up an in-house mobile test automation lab. This means equipping the lab with devices (various platforms and form factors), mobile infrastructure (secure Wi-Fi, internet, backend, automation stations, PI servers), tools (test, performance, security) and data (test data, benchmarks etc.). This is an expensive exercise. Most enterprises also nd it difficult to retain the skills and expertise required to manage and maintain such facilities that are not core to their respective business. The Solution and the Benefits In today’s highly fragmented, fast growing and dynamic mobile market it is tough for enterprises to own and operate mobile application testing infrastructure with high utilisation levels to justify the investment. It is best for businesses to work with a partner who can deliver testing as a service. Such a partner would ideally have the required skills and experience and also the infrastructure to deliver a reliable testing service. As an example a partner must offer the following to its customers: ensure best quality in shortest possible time. -to-customize business processes and use cases. The benefits of such a partnership mean that an enterprise can remain platform agnostic and focus on the application rather than on the device. Rapid automated testing of applications across platforms and versions will ensure faster time to market, with a high degree of functional and security assurance in addition to deep test coverage - all this without the headache of managing the test infrastructure or making CAPEX investments with uncertain ROI. Conclusion Designing the right test strategy, choosing the right mobile simulators, devices and mobile
  • 10. testing tools can make sure that we have 100% test coverage and help us include security, usability, performance, functionality and compatibility based tests into our test suites.