Performance testing of mobile apps

  • Published on
    22-Nov-2014

  • View
    3.722

  • Download
    3

Embed Size (px)

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

<ul><li> 1. Mobile Performance Tes1ng @RupeshDubey @PriyankDhillon </li> <li> 2. What to expect? Why mobile performance is important? Dierent types of mobile apps. Performance Challenges Tools and Technique Web apps Proling (Latency,page audits) Na1ve apps Proling (Memory leaks) Recommenda1ons </li> <li> 3. Why mobile perf is important? Source:Blaze </li> <li> 4. Mobile Users Expect equal speeds Source:Blaze </li> <li> 5. Users abandon slow apps </li> <li> 6. Mobile Apps Mobile Browser apps mDOT- dedicated mobile sites Responsive web design Na1ve Apps Hybrid Apps </li> <li> 7. mDOT Sites Source:Velocity </li> <li> 8. Responsive Web Apps Source:BostonGlobe </li> <li> 9. Mobile Apps Mobile Browser apps Dedicated mobile sites - mDOT Responsive web design Na1ve Apps Hybrid Apps </li> <li> 10. Performance Challenges Mobile Browser apps mDOT- dedicated mobile sites Responsive web design Na1ve Apps Hybrid Apps </li> <li> 11. Front-End Vs Back-End performance </li> <li> 12. Perf Challenges while browsing on mobile Radio Resource Control HTTP pipelining Browser Cache JS execu1on 1me </li> <li> 13. Radio Resource Controlling and RTT </li> <li> 14. JS Execu1on Time </li> <li> 15. Browser Cache Desktop browser Cache: 512 MB </li> <li> 16. Browser Cache sqlite3 webviewCache.db 'select expires from cache order by expires desc;' </li> <li> 17. HTTP pipelining </li> <li> 18. How to Monitor MobiTest / Web page test ADB ( Android debug bridge) Remote debugging for mobile safari Yslow SpriteMe Icy (iOS specic) </li> <li> 19. Demo </li> <li> 20. Responsive Web Design </li> <li> 21. Takeaways for Mobile apps Minify your java script and CSS All images have dimensions specied Have an ecient caching strategy Load JavaScript at the end of the page Lazy loading Dierent sizes of image for Responsive web apps Dont download extra CSS Serve low resolu1on images on smaller screen </li> <li> 22. Mobile Apps Mobile Browser apps mDOT- dedicated mobile sites Responsive web design Na9ve Apps Hybrid Apps </li> <li> 23. Challenges Memory leaks CPU limit Network/Bandwidth Power consump1ons </li> <li> 24. Memory Leaks </li> <li> 25. ARC </li> <li> 26. Power Consump1on </li> <li> 27. Power Consump1on(Contd) </li> <li> 28. Network/Bandwidth </li> <li> 29. 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 les instead of reading them into RAM. Doing so helps the system manage memory more eciently. </li> <li> 30. 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 </li> <li> 31. Ques1ons? </li> </ul>