This talk aims to summarize the typical challenges one encounters in testing mobile applications. At the ThoughtWorks Pune office we have developed multiple mobile applications across various platforms (mobile web, hybrid apps, native apps, apps for tablets etc.). In this talk we will bring together lessons learnt around mobile testing. This talk was done by Vikrant Chauhan and Dubinsky De Soares
3. Native
Native: An app build purely
using the components build
using the underlying platform
e.g. objective C, Java
Native app examples: Calendar,
Calculator
4. Hybrid
Hybrid: An app build using
combination of HTML 5 with the
native components.This approach
helps in making the app platform
independent in some Way.
Frameworks based on it
Calatrava, PhoneGap
e.g. LinkedIn app, Facebook app
5. Mobile Web
It’s a web site which run on Mobile
phones.
Many companies go for a mobile
web instead of building an app as
its platform independent.
e.g. m.timesofindia.com,
m.facebook.com
6. Challenges in Testing Mobile apps
Number of Devices & OS versions (Hardware configuration)
Display density
Different Browsers
Network connections
Installation issues
7. Challenges in Testing Mobile apps
Simulating real life scenarios
• Call Interrupts
• Low Battery
• Alarms
• Network Issues
8. Challenges in Testing Mobile apps
• Accessibility
Usability
• Identity
• Navigation
• Content
9. Challenges in Testing Mobile apps
Automation Developmental
Practices
Tools
What to Automate???
Effort v/s Value
12. Ensure coverage on various devices
Select a set of
representative devices
Test End to End Flow on
each device
Extensively use Simulators
13. Ensure testing of real life scenarios
Apps can behave erratically
when
-Multiple process run in the
background
-Hardware is incompatible
-Memory Warnings are thrown
14. Constant Monitoring of Device Logs
Uncover potential problems
before they occur.
Extremely helpful to understand
the API calls the app makes
15. Showcase Tools
IOS – Reflections
Android- Android Projector
Extremely useful tools to
demo your app to clients
20. Key Learning’s
Use simulators to get the breadth of devices tested.
Testing on different Display density mobiles
Keep an eye on smaller details as well
Simulating real life scenarios
Constant monitoring of device logs while testing
Selective automation on Devices/simulators
Showcase tools
Hi we are going to share experiences and learning we had while working with Mobile Apps.
There are various ways to categorize the mobile apps based on its genre. But we would like to present the categorization of mobile apps based on the development approach taken.
Hybrid: An app build using combination of HTML 5 with the native components.This approach helps in making the app platform independent in some way. Frameworks based on itCalatrava, PhoneGape.g. LinkedIn app, Facebook app
Mobile Web: It’s a web site which run on Mobile phones. Many companies go for a mobile web instead of building an app as its platform independent.e.g. m.timesofindia.com, m.facebook.com
There are various factors that need to be thought before we start with mobile testing350 diff Android based devices +diff osversions+densityThere are numerous phones vendors with different OS’s and their custom implementation (specially Android)Also there are various versions of OS’s availableBrowsers -- Display Density IssuesThe various network connection types supported by the phone e.g. 3G, 4G, WiFi, which affects the user interaction depending on page load. We should strive for optimal load time on every N/WInstallation issues: Not obvious :Provisionong profile like size of app, if anti virus is running
There are many things that can happen while using the app like- When a call comes does the app pause and how it resumes after call completion?- When battery is low does the app pause and how it resumes after call completion?If multiple apps are running together and we go back to our app it should resume. Alert user if no network…
Apple HIG Compliance.. [Density,screen sizes]Icons –tappable AreaRecovery from unwanted statesError Handling
With automation we always have questions:What to automate ?How much to automate ?Automation is also heavily dependent on the maturity of the tool.Effort v/s ValueNot all apps/projects really follow the standard practice of assigning ids/Accessibility labels to all objects on app making it time consuming to identify and do operations on it.
Performance testing: This is a very important aspect of Mobile apps and it has 2 components to it:Server sideClient side. How quick the UI loads, how easy the navigations are?Security Testing: Many apps specially android assign permissions. These can be used by hackers and get access to your phone.There are many more Non Functions things you can test if required like accessibility, efficiency,
The approach towards identifying the devices & Strategy to ensure coverage across the devicesSelected devices based on Screen size,density, OS versions, slide-in keyboardWherever device not available use Simulators and Emulators e.g we Emulator for Jellybeans. Simulator for IOS 5Simultors- Real life scenarios
People can use the phone in different ways ….Apps can behave erratically when multiple process run in background apps crashHardware incompatibilityMemory Limit
One practice that we followed always as to view the logs while testing the app it helped us uncover potential problems and identify exact problems.e.g. JS failing on iOS
Mention tool namesPeople can use the phone in different ways ….Apps can behave erratically when multiple process run in background apps crashHardware incmpatibility