performance testing – mobile apps session1

22
Performance Testing Mobile Apps Session 1 By: Jyothirmayee Pola

Upload: jyothirmayee-pola

Post on 15-Jan-2017

197 views

Category:

Mobile


2 download

TRANSCRIPT

Page 1: Performance testing – mobile apps   session1

Performance Testing Mobile Apps

Session 1By: Jyothirmayee Pola

Page 2: Performance testing – mobile apps   session1

App on Mobile Device vs UI• Different devices in market which differ in screen size, memory, enhancement

mem availability, OS, touchscreen or not etc. Bottom line: Same script cannot be re-used if any of the above factors change.• Different devices connect differently to the server as compared to browsers from

desktop. Tech stack differs with each OS.• More number of mobile users as compared to desktop users as on today• Network quality• Network latency affect is significantly higher in devices as compared to desktop• More packet loss with devices comparatively• Different apps behave differently on the same device though they are

comparatively same apps. Example: Myntra which is a dedicated mobile site as compared to Jabong which is a responsive web design app

Page 3: Performance testing – mobile apps   session1

App on Mobile Device vs UI• Mobile layouts differ using the same device for the same app. Example: landscape or

portrait• Browser cache limitation on device as compared to browser on desktop• More frequent OS changes on devices and upgrades on mobile apps. Harder to control

upgrades.• Keypad locks on device affect performance of the same app on the same device. • Offline apps perform differently as compared to online apps on devices. There is no such

concept on desktop applications• Native drivers on device• Content rendering time on device: The time it takes to display the response delivered to

the client on the device is measured here. The platform type, configuration of device and other hardware configurations affects this time.

• Last but not the least: limited number of tools to support device testing

Page 4: Performance testing – mobile apps   session1

Types of Mobile Apps – Native App• Live on the device and launch by tapping icons on home screen. Executed

directly by OS• Installed through an application store Ex: Google Play or Apple’s App

Store• A binary executable is directly downloaded from app store and stored on

the device file system• Developed specifically for one platform and firmware to take full

advantage of all the device features Ex: Camera, GPS, Contacts, device specific gestures etc• Apps explicitly use the device’s/ Operating System’s APIs• Allows function without internet connection• Examples of native apps are Twitter, Skype, Tagging, Ingress, Instagram

Page 5: Performance testing – mobile apps   session1

Types of Mobile Apps – Native App• Performance is better with Native Apps as they will have access to all native APIs• Requires users to download and install updates. Or, at least approve them if set in

auto mode.

Page 6: Performance testing – mobile apps   session1

Native App – Continued

Page 7: Performance testing – mobile apps   session1

Types of Mobile Apps – Web App• Websites which look feel like native apps Ex: Uber, Shutterfly, Google maps,

Linkedin• Run by browser and typically written in html5, Javascript, CSS or other

languages. • Once opened from browser, they navigate to a special url which in turn gives

the facility to download like an app. Ex: Financial times, Times of India etc• With browser caching its possible to access web apps offline• Native APIs of the device are not exposed to web apps• Performance depends on the browser speed, cache, internet connection’s

speed• Same web app can be used on multiple devices of different make and

models

Page 8: Performance testing – mobile apps   session1

Web App – Continued …• Latency over the air transmission is the biggest culprit for

performance degradation• Performance of a web app is different with Wi-Fi, 3G, 2G, public Wi-Fi

etc• User experience is lower as compared to native apps

Page 9: Performance testing – mobile apps   session1

Web App – Performance caveats• Poorly written code: The same apps are written commonly for multiple devices of

different make model. Can never scale up for all devices equally.• Start up or page load time depends on various factors like browser version, available

RAM on the device, app framework compatibility with the device under test, device power, frame rate of the device, firmware version etc• Parallel browsers or applications opened at the same time on the device may lower

the app performance under test• How network calls and computations are handled. If they are not handled in a

background thread then, server response will increase.• Performance due to not incorporating lazy loading• All data needs to be downloaded for an fully operational app. Once closed, the app

(generally) will download all data again.

Page 10: Performance testing – mobile apps   session1

Web App – Performance caveats• CPU intensive calls and complex video/ page rendering are to be checked• Network calls during the use case flow need to be monitored and

optimized for better performance. Consider queuing multiple network calls and sending them together in a single request.• Usage of JSONs over XMLs will improve performance. Gzipping payload is

another option.• Restricting the ad usage on the app• Optimize algorithms: return to your computer science roots and analyze

the order (big Oh) of your algorithms and try running your application inside a code profiler that will identify your bottlenecks

Page 11: Performance testing – mobile apps   session1

Web App – Performance caveats• Choose resources with lesser resolution (easier to paint) for devices

with screens of lesser resolution. For example, the latest Samsung Galaxy S5 has a 1920x1080 resolution, but the two-year-old Galaxy S3 only has a 1280x720 resolution. There is no benefit to sending a device images with greater resolutions than the device itself• Gracefully degrade complex functionality: remove some of the nice-

to-have features such as anti-aliasing, complex texture mapping, and so forth from your painting algorithms if you identify performance issues. Users with powerful devices will see all of the niceties, but users with less powerful devices will still have a good user experience.

Page 12: Performance testing – mobile apps   session1

Types of Mobile Apps – Hybrid App• They install on your device by downloading them from app stores• Built with a combination of web technologies like HTML, CSS, and JavaScript• Hybrid apps are hosted inside a native application that utilizes a mobile

platform’s WebView• Access device capabilities such as the accelerometer, camera, contacts, and

more• Most hybrid mobile applications leverage Apache Cordova

(earlier PhoneGap), a platform that provides a consistent set of JavaScript APIs to access device capabilities through plug-ins, which are built with native code• Android 5.0 introduced updatable WebViews via the Android System

WebView

Page 13: Performance testing – mobile apps   session1

Hybrid App – Continued…

Page 14: Performance testing – mobile apps   session1

Comparison

Page 15: Performance testing – mobile apps   session1

Comparison

Page 16: Performance testing – mobile apps   session1

Comparison

Page 17: Performance testing – mobile apps   session1

Comparison

Page 18: Performance testing – mobile apps   session1

Comparison

Page 19: Performance testing – mobile apps   session1

Comparison

Page 20: Performance testing – mobile apps   session1

Interesting StatsThe top 5 operating systems according to IDC’s analysis and their percentage of market share:• Android: 78.6%• iOS: 15.2% • Windows Phone: 3.3%• BlackBerry: 1.9%• Other: 1.0%

An article in Apple Insider says iOS operating system versions are distributed as follows:• iOS 7: 74%• iOS 6: 22%• Older: 4%

Page 21: Performance testing – mobile apps   session1

Interesting StatsAccording to Google, Android operating system versions are distributed as follows:• 4.4 (KitKat): 8.5%• 4.3: 8.5%• 4.2.x: 18.8%• 4.1.x (Jelly Bean): 33.5%• 4.0.3 4.0.4 (Ice Cream Sandwich): 13.4%• 3.2 (Honeycomb): 0.1%• 2.3.3 2.3.7 (Gingerbread): 16.2%• 2.2 (Froyo): 1%

Page 22: Performance testing – mobile apps   session1

Interesting Stats