Tap into Mobile App Testing Andreea Haras 11/09/2013 Agenda • Introduction • Mobile Testing vs. Traditional Web-Based Testing • Challenges in Mobile Testing • Guidelines & Best Practices • Conclusion • Q&A About me • Andreea Haras – andreea.haras@gmail.com • 4+ years experience as software tester • Mobile testing enthusiastic • Interested in new technology Why mobile testing? Why mobile testing? • “The mobile market is no longer just communication. It’s internet, music, video, web, social networks, navigation and everything else... The mobile ecosystem now embraces anything a consumer wishes to do either on the move or on a handheld device at home” - Forrester Why mobile testing? • • “The mobile market is no longer just communication. It’s internet, music, video, web, social networks, navigation and everything else... The mobile ecosystem now embraces anything a consumer wishes to do either on the move or on a handheld device at home” - Forrester Applications running on mobile devices (e.g., mobile applications running on smart phones or new generation tablets) are becoming so popular that they are representing a revolution in the IT sector. Why mobile testing? • • • “The mobile market is no longer just communication. It’s internet, music, video, web, social networks, navigation and everything else... The mobile ecosystem now embraces anything a consumer wishes to do either on the move or on a handheld device at home” - Forrester Applications running on mobile devices (e.g., mobile applications running on smart phones or new generation tablets) are becoming so popular that they are representing a revolution in the IT sector. Over 1.6 million mobile applications have been developed, available in Apple App Store and Google Play (www.mobithinking.com) Why mobile testing? • • • • “The mobile market is no longer just communication. It’s internet, music, video, web, social networks, navigation and everything else... The mobile ecosystem now embraces anything a consumer wishes to do either on the move or on a handheld device at home” - Forrester Applications running on mobile devices (e.g., mobile applications running on smart phones or new generation tablets) are becoming so popular that they are representing a revolution in the IT sector. Over 1.6 million mobile applications have been developed, available in Apple App Store and Google Play (www.mobithinking.com) Estimates for downloads of apps in 2013 range from 56 to 82 billion (www.idc.com) and a prediction of 200 billion global downloads in 2017 that will be worth US$63.5 billion (www.portioresearch.com) Native, Traditional, Hybrid, Oh My! • Native Apps: coded with a specific programming language. They are fast, reliable, and powerful, but are tied to a mobile platform and downloaded from a central portal by OS (i.e. Apple App Store, Google Play). That means you must duplicate them using the appropriate programming language in order to target another mobile platform. Netflix, Pandora, Shazam. Native, Traditional, Hybrid, Oh My! • Native Apps: coded with a specific programming language. They are fast, reliable, and powerful, but are tied to a mobile platform and downloaded from a central portal by OS (i.e. Apple App Store, Google Play). That means you must duplicate them using the appropriate programming language in order to target another mobile platform. Netflix, Pandora, Shazam. • Traditional Mobile Web Apps: mobile web sites designed to match every webenabled phone. They’re accessed through the mobile device’s web browser and do not need to be downloaded/installed. They re-direct to the site’s M Site. Amazon, eBay, MSN are good examples. Native, Traditional, Hybrid, Oh My! • Native Apps: coded with a specific programming language. They are fast, reliable, and powerful, but are tied to a mobile platform and downloaded from a central portal by OS (i.e. Apple App Store, Google Play). That means you must duplicate them using the appropriate programming language in order to target another mobile platform. Netflix, Pandora, Shazam. • Traditional Mobile Web Apps: mobile web sites designed to match every webenabled phone. They’re accessed through the mobile device’s web browser and do not need to be downloaded/installed. They re-direct to the site’s M Site. Amazon, eBay, MSN are good examples. • Hybrid Apps: rely on development frameworks and are written with the same technology used for websites and mobile web implementations. They are hosted or run inside a native container on a mobile device. They ensure cross-platform compatibility and can access the phone’s hardware (camera, GPS, user’s contacts, etc.). Foursquare, Twitter, Wikipedia and Facebook are good examples. Pop Quiz There are seven (yes, seven!) mobile operating systems that are recognized in the industry, other than the top 2 (iOS and Android), can you name one or more of the other five? Can you name the differences between Mobile Testing and Traditional Web-Based Testing? Mobile Testing vs. Traditional Web-Based Testing • Integration testing Within areas of the Device Hardware Battery, light, ringer, sleep, wake, usage, connectivity loss or change in speeds (“elevator test”), camera Integration with other Apps on the device Facebook, Twitter, etc. Mobile Testing vs. Traditional Web-Based Testing • Integration testing Within areas of the Device Hardware Battery, light, ringer, sleep, wake, usage, connectivity loss or change in speeds (“elevator test”), camera Integration with other Apps on the device Facebook, Twitter, etc. • Interruption Testing How the App behaves with user-controlled and automatic interruptions Mobile Testing vs. Traditional Web-Based Testing • Integration testing Within areas of the Device Hardware Battery, light, ringer, sleep, wake, usage, connectivity loss or change in speeds (“elevator test”), camera Integration with other Apps on the device Facebook, Twitter, etc. • Interruption Testing How the App behaves with user-controlled and automatic interruptions • Device-specific Gesture Testing Pinching, Zooming, Shaking, Orientation, Eye Scrolling, Eye Pausing, Tilting, Swiping, Press and Hold, Tapping Pop quiz What mobile testing challenges do you think there are? Challenges in Mobile Testing • The time frames • Variety of Devices & OS Versions Display density Different browsers Network connections Installation issues Challenges in Mobile Testing • The time frames • Variety of Devices & OS Versions • Display density Different browsers Network connections Installation issues Simulating real life scenarios Call interrupts Low battery Alarms Network issues More challenges in Mobile Testing • Usability Accessibility Intuitive Mobile experience More challenges in Mobile Testing • Usability Accessibility Intuitive Mobile experience • Automation What to automate? Tools Effort vs Value More challenges in Mobile Testing • Usability Accessibility Intuitive Mobile experience • Automation What to automate? Tools Effort vs Value • Non functional testing Performance Security Load testing Guidelines & Best Practices • Determining your Mobile Test Matrix • Setting up your Lab: Phones • Setting up your Lab: Tablets • Checklist • Key types of Mobile QA Testing: Manual or Automated Testing? • Things to remember • Test Automation Tool Selection – Few factors to consider Determining your Mobile Test Matrix The most difficult facet of the testing matrix is device fragmentation. There are nearly 4000 separate Android device models! How do you make sure that all users get a consistent experience? Device manufacturer market share (Q1 2013) Determining your Mobile Test Matrix Android device fragmentation Source: BGR Determining your Mobile Test Matrix Multiple approaches to build a “Mobile Test Matrix” • • • • Group devices based on the hardware and/or software specification and prioritize them User base – Build a test matrix based on the device and software version the user uses Use statistics from vendor market place (especially useful for native apps like games, utilities, etc.) Risk based and functionality based matrix Determining your Mobile Test Matrix Multiple approaches to build a “Mobile Test Matrix” • • • • Group devices based on the hardware and/or software specification and prioritize them User base – Build a test matrix based on the device and software version the user uses Use statistics from vendor market place (especially useful for native apps like games, utilities, etc.) Risk based and functionality based matrix Example: • • • Group 1, priority C: Small devices with a small CPU, RAM and low resolution. Older software versions and older browsers. Group 2, priority B: Mid-range devices with an avg. CPU, RAM (<512 MB), good screen size and resolution. The software is not the latest. Group 3, priority A: High-end devices with a dual/quad-core CPU, RAM (>512 MB) and a high screen resolution. Latest software versions. Setting up your Lab: Phones • • • • • Newest, highest resolution, high density, normal sized phone running latest version of OS. (Samsung Galaxy S4, iPhone 5S) Oldest, smallest, low density small sized phone running oldest supported version of OS. (iPhone 3, HTC Tattoo) Middle of the range phone matches highest usage, normal size, high density, normal resolution, highest usage OS (Samsung Galaxy S2) Phone with Highest Market Share (Samsung Galaxy S3, iPhone 4S) Budget smartphone - normal size, large screen, mdpi, old OS (Dell Venue) Setting up your Lab: Tablets • XLarge size high end tablet (10”), xhdpi, latest OS. (Nexus 10) • Large size Tablet (5-7”), med density, legacy OS (Kindle Fire) • Phablet (Phone/Tablet Hybrid) (5”) xhdpi, large size, latest OS, strange aspect ratio (LG Intuition, Samsung Note) • iOS running iOS 5 or lower (iPad 2) • iOS running iOS 6 (iPad mini, iPad 3) Checklist Key types of Mobile QA Testing: Manual or Automated Testing? Functional testing Performance testing Memory Leakage Testing Interrupt testing Usability testing Installation testing Upgrade testing Things to remember • • • • Start testing early. Use emulators / simulators Use the app on different carriers and network connections like 3G, 4G, WiFi, or LTE Combine testing tools and integrate them into a continuous integration system When possible, have a group of BETA testers to help with real-world testing • Consider the problem space: go mobile to test mobile • Don’t assume that because it works on one device, it will work on all Test Automation Tool Selection – Few factors to consider • • • • • • • • • • Supported devices Emulator support Availability of integrated simulators Types of connection supported Multi-device support (this is important to run same test on multiple devices) Compatibility with existing automation tools Security - VPN connections, data sharing, etc. Functionality supported - swipe, drag and drop, zoom, scrolling, pinching, rotating, etc Image / text recognition Debugging and test reporting Conclusions • Despite the challenges in mobile application testing, careful selection of target devices, using statistical techniques for test optimization and tools that maximize automation can ensure a cost effective mobile testing process. Conclusions • • Despite the challenges in mobile application testing, careful selection of target devices, using statistical techniques for test optimization and tools that maximize automation can ensure a cost effective mobile testing process. Given the stiff competition in the mobile apps market and variety of apps available for users to download, it is vital that you thoroughly test each and every aspect of the app before releasing it into the market, to ensure that the product meets the quality standard demanded by users.