SlideShare a Scribd company logo
Presentation on Mobile app
testing
What is mobile app testing?
• 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.
Some or all of the following testing types may be
performed depending on your mobile testing
requirements
• Functional testing
• Performance testing
• Security testing
• Usability testing
• Compatibility testing
• Recoverability Testing
Functional testing
The functional testing of Mobiles normally consists in the areas of testing user interactions as well as testing the transactions. The
various factors which are relevant in functional testing are
Type of application based upon the business functionality usages (banking, gaming, social or business)
Some common test scenarios that you should considered in the functional testing are :
1. To validate whether all the required mandatory fields are working as required.
2. To validate that the mandatory fields are displayed in the screen in a distinctive way than the non-mandatory fields.
3. To validate whether the application works as per as requirement whenever the application starts/stops.
4. To validate whether the application goes into minimized mode whenever there is an incoming phone call. In order to validate the same
we need to use a second phone, to call the device.
5. To validate whether the phone is able to store, process and receive SMS whenever the app is running. In order to validate the same we
need to use a second phone to send sms to the device which is being tested and where the application under test is currently running.
6. To validate that the device is able to perform required multitasking requirements
7. To validate that the page scrolling scenarios are being enabled in the application as necessary.
8. To validate that the navigation between relevant modules in the application are as per the requirement.
9. To validate that the user receives an appropriate error message like “Network error. Please try after some time” whenever there is any
network error.
10. To validate that the installed application enables other applications to perform satisfactorily, and it does not eat into the memory of
the other applications.
11. To validate whether the installation of the application can be done smoothly provided the user has the necessary resources and it does
not lead to any significant errors.
12. To validate whether the application performs according to the requirement in all versions of Mobile that is 2g, 3g and 4g.
13. To perform regression testing to uncover new software bugs in existing areas of a system after changes have been made to them. Also
rerun previously performed tests to determine that the program behavior has not changed due to the changes.
14. To validate whether the application provides an available user guide for those who are not familiar to the app
Performance testing
The general test scenarios for performance testing in a Mobile application are:
• To determine whether the application performs as per the requirement under different load
conditions.
• To determine whether the current network coverage is able to support the application at
peak, average and minimum user levels.
• To determine whether the existing client-server configuration setup provides the required
optimum performance level.
• To validate whether the response time of the application is as per as the requirements.
• To evaluate product and/or hardware to determine if it can handle projected load volumes.
• To evaluate whether the battery life can support the application to perform under projected
load volumes.
• To validate application performance when network is changed to WIFI from 2G/3G or vice
versa.
This type of testing fundamental objective is to ensure that the application performs
acceptably under certain performance requirements such as access by a huge number
of users or the removal of a key infrastructure part like a database server.
Security testing
The following are the most crucial areas for checking the security of Mobile applications.
1. To validate that the application is able to withstand any brute force attack which is an automated process
of trial and error used to guess a person’s username, password or credit-card number.
2. To validate whether an application is not permitting an attacker to access sensitive content or functionality
without proper authentication.
3. To validate that the application has a strong password protection system and it does not permit an
attacker to obtain, change or recover another user’s password.
4. To validate that the application does not suffer from insufficient session expiration.
5. To identify the dynamic dependencies and take measures to prevent any attacker for accessing these
vulnerabilities.
6. To prevent from SQL injection related attacks and denial of service attacks.
7. To ensure whether the certificates are validated, does the application implement Certificate Pinning or
not.
8. To analyze the data storage and data validation requirements.
9. To analyze file system interactions, determine any vulnerability and correct these problems.
10. To investigate file caching and prevent any malicious possibilities from the same.
11. To prevent from insecure data storage in the keyboard cache of the applications.
12. To investigate cookies and preventing any malicious deeds from the cookies.
13. To prevent from buffer overflows and memory corruption cases.
Usability testing
The general test scenarios for usability testing in a Mobile application are:
• To ensure that the buttons should have the required size and be suitable to big fingers.
• To ensure that the buttons are placed in the same section of the screen to avoid confusion to the
end users.
• To ensure that the icons are natural and consistent with the application.
• To ensure that the buttons, which have the same function should also have the same color.
• To ensure that the validation for the tapping zoom-in and zoom-out facilities should be enabled.
• To ensure that the keyboard input can be minimized in an appropriate manner.
• To ensure that the application provides a method for going back or undoing an action, on touching
the wrong item, within an acceptable duration.
• To ensure that the contextual menus are not overloaded because it has to be used quickly.
• To ensure that the text is kept simple and clear to be visible to the users.
• To ensure that the short sentences and paragraphs are readable to the end users.
• To ensure that the font size is big enough to be readable and not too big or too small.
• To validate the application prompts the user whenever the user starts downloading a large amount
of data which may be not conducive for the application performance.
The usability testing process of the Mobile application is performed to have a quick and
easy step application with less functionality than a slow and difficult application with many
features. The main objective is to ensure that we end up having an easy-to-use, intuitive
and similar to industry-accepted interfaces which are widely used.
Compatibility testing:
The following are the most prominent areas for compatibility
testing.
• To validate that the user Interface of the application is as
per the screen size of the device, no text/control is partially
invisible or inaccessible.
• To ensure that the text is readable for all users for the
application.
• To ensure that the call/alarm functionality is enabled
whenever the application is running. The application is
minimized or suspended on the event of a call and then
whenever the call stops the application is resumed.
Compatibility testing on mobile devices is performed to ensure that since
mobile devices have different size, resolution, screen, version and hardware
so the application should be tested across all the devices to ensure that the
application works as desired.
Recoverability Testing
• Crash recovery and transaction interruptions
• Validation of the effective application recovery
situation post unexpected interruption/crash scenarios.
• Verification of how the application handles a
transaction during a power failure (i.e. Battery dies or a
sudden manual shutdown of the device)
• The validation of the process where the connection is
suspended, the system needs to re-establish for
recovering the data directly affected by the suspended
connection.
•
Installation testing
whether the application can be installed in a
reasonable amount of time and with required
criterion
• Unlike desktop or browser, to test mobile
application you need to install different set of
tools and applications.
• Apple’s recent release of a new, modern mobile programming
language for iOS, Swift, has taken the mobile app
development world by storm. Its adoption by developers has
been record-breaking as it continues to climb the charts of
most used coding languages. Swift replaces the aging
Objective-C, which has been in use for three decades.
• As mobile device usage continues to skyrocket and mobile
app downloads reach well into the gazillions, other languages
and tools will emerge to enable developers to churn out more
cool apps and help testers improve app quality.
Top 6 Mobile testing tools
1. Appium for Android and iOS – Appium is an open source project for cross-platform test
automation. Essentially, it is an HTTP server managing WebDriver sessions. It supports tests in any
framework and in any language that can create an HTTP request. No app code needs to be modified
for testing. Any test is suitable to run on either iOS or Android on real devices or emulators. It
supports native, hybrid, and web apps.
2. Calabash for Android and iOS – Maintained by Xamarin, Calabash consists of two open source
libraries, one for iOS and another for Android, which automate testing for native or hybrid mobile
apps. Used with Cucumber, test cases are written in natural language then translated to test scripts
that run within the framework. It works well with Ruby, Java, .NET, Flex and many other
programming languages.
4. Robotium for Android- Robotium is an open source library aimed solely at Android UI testing. It is
used for automated black-box testing for web, native or hybrid mobile applications. Using it in
conjunction with TestDroid Recorder, JavaScript test scripts are created as the tester traverses the
UI of the mobile application under test. A free extension library called ExtSolo adds multi-path
dragging, auto-scaling for different display resoultions and other abilities.
5. Selendroid for Android – No app code modification is required to use Selendroid, which is
essentially Selenium for Android apps. Selenium 2 and the WebDriver API are the basis for test
code. The framework interacts with multiple devices or device emulators simultaneously. It even
supports device hot-swapping. There is an inspection component for recording device UI state for
test case creation.
6. Ranorex (Android and iOS) - Ranorex is open-source UI Automation Framework used test web-
based and mobile applications. Ranorex used for Functional Testing to test native iOS apps, native
mobile apps, Mobile Web Testing for iOS, Mono touch etc. Ranorex supports many types of test like
Acceptance Testing, Automation Testing, GUI Testing, Web Testing, Mobile Testing etc
Today we will learn some basics of
Appium
Webdriver+Mobile Features=Appium
Appium is popular because:
• It is open source mobile test automation tool
• Based on popular selenium web driver
• Can work with packaged applications without
modification
APPIUM STUDIO
Classic Appium challenges
Complex installation, setup and maintenance
Slow adoption, too many dependencies
No UI for test development
Slow ramp up, slower test development
No OS or environment control
Large % of use cases cannot be automated out of app integration
Insufficient support for parallel execution
Nearly impossible to reach large scale continuous testing
No reports
Requires development of report mechanism
Slower update release which do not support new OS
To overcome these, experitest has launched a bundle application called
‘Appium studio’ which is built on Appium framework
Installation
• Install Appium studio (community edition)
from https://experitest.com/appium-studio
• Then open Appium studio and add new IOS
device by clicking Add Device
Adding new device
1. Open Appium Studio. Add new IOS device by clicking Add Device
2. Enter information - Name, Type. Also, add icloud account and finally click OK
3. Next, select your IOS device from top panel and click Open device icon. You will be asked to
verify the icloud account you have just added to verify in the device. Click Verify
4. Finally select device and click Open icon. Next your device loads in appium studio
Starting your device
• Once after you add your device and connect it via data cable then you will
see status Ready in device list
• Then double click on the device or click open device icon. You may have to
enter your icloud password again. Make sure device is unlocked.
You may get error like
• In such case, go to Settings > General > Profile & Device Management and
tap email under DEVELOPER APP and tap Trust “your email” and then load
again.
Checking CPU & Memory usage
• Load device via appium studio. Wait for emulator to
appear
• Click More Action icon
• Click Monitors. There you will see graph for CPU
usage and Memory usage.
• Open any app that consumes high memory.
Depending on the usage we can suggest developer
whether app consumes high or low memory or CPU
How to inspect in mobile app?
In browser, you can just right click and inspect to
find various properties but in mobile we can’t
do that. To overcome this, we can use appium
studio
Using spy to inspect elements
1. Load the device
2. Open the app where you want to inspect
3. Click Spy icon in the emulator
4. Then on the left side, you will see the properties of the selected
element.
Presentation on mobile app testing
Recording your first test
• Open your device. Make sure it is opened in emulator
• Go to the "Test" tab and click on the "record" button.
• Choose the Device, application and the capabilities to
record with from the available devices, application and
the capabilities on the lists.
• And finally all the steps are recorded along with log.
• You can alter/tamper xpath value and make it work as
your requirement.
Recommendations for Recording
• Before recording
– Plan the flow you would like to perform.
– Try to first execute it without recording.
– Keep your recording short. Don't record the whole test in one go.
• While recording
– Click on the center of the Objects you would like to identify.
– Wait for the screen to refresh and don't run the recording too quickly.
– Right-click (with your mouse) to add verification points.
• After recording
– Execute the script and verify it executes correctly.
– Make sure that all Objects are identified correctly. Edit the test if
needed to improve stability.
Xpath
XPath is a major element in the XSLT standard (Extensible Stylesheet Language Transformations) which is again subset of XML.
In automation, if the elements are not found by the general locators like id, class, name, etc. then XPath is used to find an element on the web page
Syntax for XPath
• XPath contains the path of the element situated at the web page. Standard syntax
for creating XPath is.
Xpath=//tagname[@attribute='value']// : Select current node.
• Tagname: Tagname of the particular node.
• @: Select attribute.
• Attribute: Attribute name of the node.
• Value: Value of the attribute.
To find the element on web pages accurately there are different types of locators:
Using spy icon button
• Use the Spy icon button in order to get the
Native/Web properties of all the objects on
the screen. The easiest way to create a simple
XPath query is by marking the wanted
properties of an element (one or multiple
properties can be used), right clicking on them
and then clicking on Copy XPath. This will copy
to the clipboard a query that will look for
elements that have the properties and values
that are looked for.
• You can replace the test steps that are
recorded earlier with the xpath you have just
copied.
• In your recorded steps, click dropdown and select
Find element which appears in the property. And
in value paste the xpath you have copied earlier.
To add new element in test case
Generate reports
• Once after the test recording is completed,
you will get reports for all steps.
• On the toolbar below Test, click dropdown of
Reports icon and click All Summaries Report.
Then it opens in your editor. In my case it’s
sublime so I can right click and select Open in
Browser.

More Related Content

PPTX
Introduction to mobile application development
PPTX
Mobile Application Testing
PPTX
Mobile application testing
PPTX
Mobile Application Testing
PPTX
Android Widget
PPT
Selenium ppt
PPTX
Mobile Application Development Services-MobileApptelligence
Introduction to mobile application development
Mobile Application Testing
Mobile application testing
Mobile Application Testing
Android Widget
Selenium ppt
Mobile Application Development Services-MobileApptelligence

What's hot (20)

PPTX
Mobile Application Testing Training Presentation
PPTX
Mobile Application Testing by Javed Ansari
PPTX
Advance Java Topics (J2EE)
PDF
Mobile Application Design & Development
PPTX
Day: 1 Introduction to Mobile Application Development (in Android)
PPTX
Progressive Web App
PPTX
Web services SOAP
PPTX
Automation Testing With Appium
PPTX
Mobile application testing tutorial
PPT
Java: GUI
PDF
Introduction to Mobile Application Development
PPTX
Microsoft Azure
ZIP
Android Application Development
PPTX
Appium Presentation
PPT
Mobile application development
PPTX
Development of Mobile Application -PPT
PPTX
Android application-component
PPTX
Mobile Application Testing
PPT
android activity
PDF
Mobile application testing report
Mobile Application Testing Training Presentation
Mobile Application Testing by Javed Ansari
Advance Java Topics (J2EE)
Mobile Application Design & Development
Day: 1 Introduction to Mobile Application Development (in Android)
Progressive Web App
Web services SOAP
Automation Testing With Appium
Mobile application testing tutorial
Java: GUI
Introduction to Mobile Application Development
Microsoft Azure
Android Application Development
Appium Presentation
Mobile application development
Development of Mobile Application -PPT
Android application-component
Mobile Application Testing
android activity
Mobile application testing report
Ad

Similar to Presentation on mobile app testing (20)

PPTX
MobileApplicationTestingTypeofMobileapps.pptx
PPTX
What is Mobile App Performance Testing & How to Conduct It.pptx
PDF
A Complete Step-by-Step Guide to Mobile App Performance Testing.pdf
PDF
12 Mobile App Testing Types_ A Thorough Exploration for QA Professionals.pdf
PDF
12 Mobile App Testing Types_ A Thorough Exploration for QA Professionals.pdf
PDF
Mobile Testing Services in the Digital Age
PDF
A Complete Guide to Mobile App Testing Types.pdf
PDF
A Developer's Guide to Mobile App Testing
PDF
The Essentials of Mobile App Testing and Monitoring
DOCX
Mobile App Testing: Importance, Strategies, and Best Practices
PDF
Mobile App Performance Testing A Key to Unified User Experience
PDF
App Testing SEO Expert Bangladesh LTD
PPTX
Best Practices & Testing Process of Mobile Application Testing.pptx
PDF
Comprehensive Mobile App Testing Checklist for Testers & Developers
PDF
Comprehensive Mobile App Testing Checklist for Testers & Developers (1).pdf
DOCX
Types of Mobile App Testing
PDF
Mobile Website Testing_ A Comprehensive Guide .pdf
PDF
The Ultimate Breakdown of Mobile App Testing_ Types and Approaches.pdf
PDF
The Guide to Selecting The Right Mobile App Testing Tool.pdf
PPTX
Best Practices for Mobile App Testing - Mobulous
MobileApplicationTestingTypeofMobileapps.pptx
What is Mobile App Performance Testing & How to Conduct It.pptx
A Complete Step-by-Step Guide to Mobile App Performance Testing.pdf
12 Mobile App Testing Types_ A Thorough Exploration for QA Professionals.pdf
12 Mobile App Testing Types_ A Thorough Exploration for QA Professionals.pdf
Mobile Testing Services in the Digital Age
A Complete Guide to Mobile App Testing Types.pdf
A Developer's Guide to Mobile App Testing
The Essentials of Mobile App Testing and Monitoring
Mobile App Testing: Importance, Strategies, and Best Practices
Mobile App Performance Testing A Key to Unified User Experience
App Testing SEO Expert Bangladesh LTD
Best Practices & Testing Process of Mobile Application Testing.pptx
Comprehensive Mobile App Testing Checklist for Testers & Developers
Comprehensive Mobile App Testing Checklist for Testers & Developers (1).pdf
Types of Mobile App Testing
Mobile Website Testing_ A Comprehensive Guide .pdf
The Ultimate Breakdown of Mobile App Testing_ Types and Approaches.pdf
The Guide to Selecting The Right Mobile App Testing Tool.pdf
Best Practices for Mobile App Testing - Mobulous
Ad

Recently uploaded (20)

PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
medical staffing services at VALiNTRY
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
System and Network Administraation Chapter 3
PDF
top salesforce developer skills in 2025.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Transform Your Business with a Software ERP System
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
L1 - Introduction to python Backend.pptx
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
Navsoft: AI-Powered Business Solutions & Custom Software Development
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
medical staffing services at VALiNTRY
Adobe Illustrator 28.6 Crack My Vision of Vector Design
System and Network Administraation Chapter 3
top salesforce developer skills in 2025.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PTS Company Brochure 2025 (1).pdf.......
Transform Your Business with a Software ERP System
Softaken Excel to vCard Converter Software.pdf
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Odoo POS Development Services by CandidRoot Solutions
L1 - Introduction to python Backend.pptx
Design an Analysis of Algorithms II-SECS-1021-03
ISO 45001 Occupational Health and Safety Management System
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Wondershare Filmora 15 Crack With Activation Key [2025
Upgrade and Innovation Strategies for SAP ERP Customers

Presentation on mobile app testing

  • 2. What is mobile app testing? • 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.
  • 3. Some or all of the following testing types may be performed depending on your mobile testing requirements • Functional testing • Performance testing • Security testing • Usability testing • Compatibility testing • Recoverability Testing
  • 4. Functional testing The functional testing of Mobiles normally consists in the areas of testing user interactions as well as testing the transactions. The various factors which are relevant in functional testing are Type of application based upon the business functionality usages (banking, gaming, social or business) Some common test scenarios that you should considered in the functional testing are : 1. To validate whether all the required mandatory fields are working as required. 2. To validate that the mandatory fields are displayed in the screen in a distinctive way than the non-mandatory fields. 3. To validate whether the application works as per as requirement whenever the application starts/stops. 4. To validate whether the application goes into minimized mode whenever there is an incoming phone call. In order to validate the same we need to use a second phone, to call the device. 5. To validate whether the phone is able to store, process and receive SMS whenever the app is running. In order to validate the same we need to use a second phone to send sms to the device which is being tested and where the application under test is currently running. 6. To validate that the device is able to perform required multitasking requirements 7. To validate that the page scrolling scenarios are being enabled in the application as necessary. 8. To validate that the navigation between relevant modules in the application are as per the requirement. 9. To validate that the user receives an appropriate error message like “Network error. Please try after some time” whenever there is any network error. 10. To validate that the installed application enables other applications to perform satisfactorily, and it does not eat into the memory of the other applications. 11. To validate whether the installation of the application can be done smoothly provided the user has the necessary resources and it does not lead to any significant errors. 12. To validate whether the application performs according to the requirement in all versions of Mobile that is 2g, 3g and 4g. 13. To perform regression testing to uncover new software bugs in existing areas of a system after changes have been made to them. Also rerun previously performed tests to determine that the program behavior has not changed due to the changes. 14. To validate whether the application provides an available user guide for those who are not familiar to the app
  • 5. Performance testing The general test scenarios for performance testing in a Mobile application are: • To determine whether the application performs as per the requirement under different load conditions. • To determine whether the current network coverage is able to support the application at peak, average and minimum user levels. • To determine whether the existing client-server configuration setup provides the required optimum performance level. • To validate whether the response time of the application is as per as the requirements. • To evaluate product and/or hardware to determine if it can handle projected load volumes. • To evaluate whether the battery life can support the application to perform under projected load volumes. • To validate application performance when network is changed to WIFI from 2G/3G or vice versa. This type of testing fundamental objective is to ensure that the application performs acceptably under certain performance requirements such as access by a huge number of users or the removal of a key infrastructure part like a database server.
  • 6. Security testing The following are the most crucial areas for checking the security of Mobile applications. 1. To validate that the application is able to withstand any brute force attack which is an automated process of trial and error used to guess a person’s username, password or credit-card number. 2. To validate whether an application is not permitting an attacker to access sensitive content or functionality without proper authentication. 3. To validate that the application has a strong password protection system and it does not permit an attacker to obtain, change or recover another user’s password. 4. To validate that the application does not suffer from insufficient session expiration. 5. To identify the dynamic dependencies and take measures to prevent any attacker for accessing these vulnerabilities. 6. To prevent from SQL injection related attacks and denial of service attacks. 7. To ensure whether the certificates are validated, does the application implement Certificate Pinning or not. 8. To analyze the data storage and data validation requirements. 9. To analyze file system interactions, determine any vulnerability and correct these problems. 10. To investigate file caching and prevent any malicious possibilities from the same. 11. To prevent from insecure data storage in the keyboard cache of the applications. 12. To investigate cookies and preventing any malicious deeds from the cookies. 13. To prevent from buffer overflows and memory corruption cases.
  • 7. Usability testing The general test scenarios for usability testing in a Mobile application are: • To ensure that the buttons should have the required size and be suitable to big fingers. • To ensure that the buttons are placed in the same section of the screen to avoid confusion to the end users. • To ensure that the icons are natural and consistent with the application. • To ensure that the buttons, which have the same function should also have the same color. • To ensure that the validation for the tapping zoom-in and zoom-out facilities should be enabled. • To ensure that the keyboard input can be minimized in an appropriate manner. • To ensure that the application provides a method for going back or undoing an action, on touching the wrong item, within an acceptable duration. • To ensure that the contextual menus are not overloaded because it has to be used quickly. • To ensure that the text is kept simple and clear to be visible to the users. • To ensure that the short sentences and paragraphs are readable to the end users. • To ensure that the font size is big enough to be readable and not too big or too small. • To validate the application prompts the user whenever the user starts downloading a large amount of data which may be not conducive for the application performance. The usability testing process of the Mobile application is performed to have a quick and easy step application with less functionality than a slow and difficult application with many features. The main objective is to ensure that we end up having an easy-to-use, intuitive and similar to industry-accepted interfaces which are widely used.
  • 8. Compatibility testing: The following are the most prominent areas for compatibility testing. • To validate that the user Interface of the application is as per the screen size of the device, no text/control is partially invisible or inaccessible. • To ensure that the text is readable for all users for the application. • To ensure that the call/alarm functionality is enabled whenever the application is running. The application is minimized or suspended on the event of a call and then whenever the call stops the application is resumed. Compatibility testing on mobile devices is performed to ensure that since mobile devices have different size, resolution, screen, version and hardware so the application should be tested across all the devices to ensure that the application works as desired.
  • 9. Recoverability Testing • Crash recovery and transaction interruptions • Validation of the effective application recovery situation post unexpected interruption/crash scenarios. • Verification of how the application handles a transaction during a power failure (i.e. Battery dies or a sudden manual shutdown of the device) • The validation of the process where the connection is suspended, the system needs to re-establish for recovering the data directly affected by the suspended connection. •
  • 10. Installation testing whether the application can be installed in a reasonable amount of time and with required criterion
  • 11. • Unlike desktop or browser, to test mobile application you need to install different set of tools and applications.
  • 12. • Apple’s recent release of a new, modern mobile programming language for iOS, Swift, has taken the mobile app development world by storm. Its adoption by developers has been record-breaking as it continues to climb the charts of most used coding languages. Swift replaces the aging Objective-C, which has been in use for three decades. • As mobile device usage continues to skyrocket and mobile app downloads reach well into the gazillions, other languages and tools will emerge to enable developers to churn out more cool apps and help testers improve app quality.
  • 13. Top 6 Mobile testing tools 1. Appium for Android and iOS – Appium is an open source project for cross-platform test automation. Essentially, it is an HTTP server managing WebDriver sessions. It supports tests in any framework and in any language that can create an HTTP request. No app code needs to be modified for testing. Any test is suitable to run on either iOS or Android on real devices or emulators. It supports native, hybrid, and web apps. 2. Calabash for Android and iOS – Maintained by Xamarin, Calabash consists of two open source libraries, one for iOS and another for Android, which automate testing for native or hybrid mobile apps. Used with Cucumber, test cases are written in natural language then translated to test scripts that run within the framework. It works well with Ruby, Java, .NET, Flex and many other programming languages. 4. Robotium for Android- Robotium is an open source library aimed solely at Android UI testing. It is used for automated black-box testing for web, native or hybrid mobile applications. Using it in conjunction with TestDroid Recorder, JavaScript test scripts are created as the tester traverses the UI of the mobile application under test. A free extension library called ExtSolo adds multi-path dragging, auto-scaling for different display resoultions and other abilities. 5. Selendroid for Android – No app code modification is required to use Selendroid, which is essentially Selenium for Android apps. Selenium 2 and the WebDriver API are the basis for test code. The framework interacts with multiple devices or device emulators simultaneously. It even supports device hot-swapping. There is an inspection component for recording device UI state for test case creation. 6. Ranorex (Android and iOS) - Ranorex is open-source UI Automation Framework used test web- based and mobile applications. Ranorex used for Functional Testing to test native iOS apps, native mobile apps, Mobile Web Testing for iOS, Mono touch etc. Ranorex supports many types of test like Acceptance Testing, Automation Testing, GUI Testing, Web Testing, Mobile Testing etc
  • 14. Today we will learn some basics of Appium Webdriver+Mobile Features=Appium Appium is popular because: • It is open source mobile test automation tool • Based on popular selenium web driver • Can work with packaged applications without modification
  • 15. APPIUM STUDIO Classic Appium challenges Complex installation, setup and maintenance Slow adoption, too many dependencies No UI for test development Slow ramp up, slower test development No OS or environment control Large % of use cases cannot be automated out of app integration Insufficient support for parallel execution Nearly impossible to reach large scale continuous testing No reports Requires development of report mechanism Slower update release which do not support new OS To overcome these, experitest has launched a bundle application called ‘Appium studio’ which is built on Appium framework
  • 16. Installation • Install Appium studio (community edition) from https://experitest.com/appium-studio • Then open Appium studio and add new IOS device by clicking Add Device
  • 17. Adding new device 1. Open Appium Studio. Add new IOS device by clicking Add Device 2. Enter information - Name, Type. Also, add icloud account and finally click OK 3. Next, select your IOS device from top panel and click Open device icon. You will be asked to verify the icloud account you have just added to verify in the device. Click Verify 4. Finally select device and click Open icon. Next your device loads in appium studio
  • 18. Starting your device • Once after you add your device and connect it via data cable then you will see status Ready in device list • Then double click on the device or click open device icon. You may have to enter your icloud password again. Make sure device is unlocked. You may get error like • In such case, go to Settings > General > Profile & Device Management and tap email under DEVELOPER APP and tap Trust “your email” and then load again.
  • 19. Checking CPU & Memory usage • Load device via appium studio. Wait for emulator to appear • Click More Action icon • Click Monitors. There you will see graph for CPU usage and Memory usage. • Open any app that consumes high memory. Depending on the usage we can suggest developer whether app consumes high or low memory or CPU
  • 20. How to inspect in mobile app? In browser, you can just right click and inspect to find various properties but in mobile we can’t do that. To overcome this, we can use appium studio
  • 21. Using spy to inspect elements 1. Load the device 2. Open the app where you want to inspect 3. Click Spy icon in the emulator 4. Then on the left side, you will see the properties of the selected element.
  • 23. Recording your first test • Open your device. Make sure it is opened in emulator • Go to the "Test" tab and click on the "record" button. • Choose the Device, application and the capabilities to record with from the available devices, application and the capabilities on the lists. • And finally all the steps are recorded along with log. • You can alter/tamper xpath value and make it work as your requirement.
  • 24. Recommendations for Recording • Before recording – Plan the flow you would like to perform. – Try to first execute it without recording. – Keep your recording short. Don't record the whole test in one go. • While recording – Click on the center of the Objects you would like to identify. – Wait for the screen to refresh and don't run the recording too quickly. – Right-click (with your mouse) to add verification points. • After recording – Execute the script and verify it executes correctly. – Make sure that all Objects are identified correctly. Edit the test if needed to improve stability.
  • 25. Xpath XPath is a major element in the XSLT standard (Extensible Stylesheet Language Transformations) which is again subset of XML. In automation, if the elements are not found by the general locators like id, class, name, etc. then XPath is used to find an element on the web page
  • 26. Syntax for XPath • XPath contains the path of the element situated at the web page. Standard syntax for creating XPath is. Xpath=//tagname[@attribute='value']// : Select current node. • Tagname: Tagname of the particular node. • @: Select attribute. • Attribute: Attribute name of the node. • Value: Value of the attribute. To find the element on web pages accurately there are different types of locators:
  • 27. Using spy icon button • Use the Spy icon button in order to get the Native/Web properties of all the objects on the screen. The easiest way to create a simple XPath query is by marking the wanted properties of an element (one or multiple properties can be used), right clicking on them and then clicking on Copy XPath. This will copy to the clipboard a query that will look for elements that have the properties and values that are looked for.
  • 28. • You can replace the test steps that are recorded earlier with the xpath you have just copied. • In your recorded steps, click dropdown and select Find element which appears in the property. And in value paste the xpath you have copied earlier. To add new element in test case
  • 29. Generate reports • Once after the test recording is completed, you will get reports for all steps. • On the toolbar below Test, click dropdown of Reports icon and click All Summaries Report. Then it opens in your editor. In my case it’s sublime so I can right click and select Open in Browser.