performance testing of mobile apps
DESCRIPTION
This talk was presented at VodQA Gurgaon 3rd edition (11 July 2013) Talk Abstract: In midst of testing functional aspect of your mobile apps, performance testing is often ignored or takes a back seat. With the strict quality checks on app stores and other platforms, it becomes all the more essentials for your app to meet performance criteria. We would be focusing on understanding these criteria in detail, their impact and ways to tackle them. Speakers: Rupesh Dubey: Rupesh has 5+ years of experience in Test Automation and Manual testing and have been with ThoughtWorks for more than 3 years. He has worked in various domains including HealthCare and Business Consulting. Priyank Dhillon: He has around 8 years of experience as QA. He has worked on domains such as Telecom, Video and E-commerce and has been involved in different aspects of testing such as Security, White box, Performance. He has worked in software automation testing using wide range of automation tools, doing manual testing and in requirement analysis.TRANSCRIPT
Mobile Performance Tes1ng
@RupeshDubey @PriyankDhillon
What to expect?
• Why mobile performance is important? • Different types of mobile apps. • Performance Challenges • Tools and Technique • Web apps Profiling (Latency,page audits) • Na1ve apps Profiling (Memory leaks) • Recommenda1ons
Why mobile perf is important?
Source:Blaze
Mobile Users Expect equal speeds
Source:Blaze
Users abandon slow apps
Mobile Apps
• Mobile Browser apps – mDOT-‐ dedicated mobile sites – Responsive web design
• Na1ve Apps • Hybrid Apps
mDOT Sites
Source:Velocity
Responsive Web Apps
Source:BostonGlobe
Mobile Apps
• Mobile Browser apps – Dedicated mobile sites -‐ mDOT – Responsive web design
• Na1ve Apps • Hybrid Apps
Performance Challenges
• Mobile Browser apps – mDOT-‐ dedicated mobile sites – Responsive web design
• Na1ve Apps • Hybrid Apps
Front-‐End Vs Back-‐End performance
Perf Challenges while browsing on mobile
• Radio Resource Control • HTTP pipelining • Browser Cache • JS execu1on 1me
Radio Resource Controlling and RTT
JS Execu1on Time
Browser Cache
Desktop browser Cache: 512 MB
Browser Cache
• sqlite3 webviewCache.db 'select expires from cache order by expires desc;'
HTTP pipelining
How to Monitor
• MobiTest / Web page test • ADB ( Android debug bridge) • Remote debugging for mobile safari • Yslow • SpriteMe • Icy (iOS specific)
Demo
Responsive Web Design
Takeaways for Mobile apps
• Minify your java script and CSS • All images have dimensions specified • Have an efficient caching strategy • Load JavaScript at the end of the page • Lazy loading • Different sizes of image for Responsive web apps • Don’t download extra CSS • Serve low resolu1on images on smaller screen
Mobile Apps
• Mobile Browser apps – mDOT-‐ dedicated mobile sites – Responsive web design
• Na9ve Apps • Hybrid Apps
Challenges
• Memory leaks • CPU limit • Network/Bandwidth • Power consump1ons
Memory Leaks
ARC
Power Consump1on
Power Consump1on(Contd)
Network/Bandwidth
Takeaways for na1ve apps • Release or free any allocated memory as soon as you are done using it.
• Avoid compu1ng anything un1l you are sure you actually need it.
• Avoid spinlocks, polling, and other CPU-‐hogging techniques.
• When prac1cal, perform network requests in batches rather than one at a 1me.
• Consider memory-‐mapping large files instead of reading them into RAM. Doing so helps the system manage memory more efficiently.
Few Pointers for iOS App submission
iOS Guidelines: • App size should not be more than 50 MB for non-‐gaming app.
• Any memory leak and your app is rejected • Device bagery constraints • Excessive hea1ng
Ques1ons?