Testing Requirements for Mobile Applications Dennis Soh Article authored by: Valéria Lelli Leitão Dantas, Fabiana Gomes Marinho, Aline Luiza da Costa, Rossana M. C. Andrade Background • Explosion of mobile technology – 60 million smartphone users in US in 2009 – Expected to grow to 142 million by end of 2011 • iPad, other tablets growing in popularity Background • Android, iOS, Palm WebOS, Windows 7 among mobile OSes • Each has unique properties, including unique development environment, programming language support, etc. Problems • Testing software on mobile devices has unique challenges • These must be considered early in development Key factors • Mobile Context – Environment limitations; e.g. screen, (lack of) keyboard, etc. • Mobile User – On-the-go; not sitting at a desk • Mobile Application – Different aspects of the device that the software can interact with; network operator, I/O interfaces, etc. Any test plan needs to consider these factors! Research methodology • 2 questionnaires, sent to 40 professionals at 15 companies – Professionals worked on >1 mobile app, >3 months experience in mobile app dev. – Questionnaire 1: for developers – Questionnaire 2: for QA Proposed Testing Requirements Testing Requirements • Development process model must focus on testing process – Incremental process most popular; used by 70% of professionals surveyed – Test process should consider mobile context; 85% of professionals not using test process designed for mobile Testing Requirements • Mobile applications must be tested on both emulator and real devices Emulator Mobile Device Functionality Device variations (keyboard, screen size, etc.) Usability issues, design Usability issues specific to device User behavior Performance, resources, realworld problems Testing Requirements • Test reports must document details about the test environment (emulator/device, device model, OS version, etc.) • Testers must verify that application does not harm any existing applications – Interruptions (e.g. someone’s calling you) must be handled appropriately Testing Requirements • Applications must be tested according to their targeted mobile context limitations – Memory, CPU, screen size/resolution, power, etc. • Test process must differentiate between features to be tested in controlled environment and features to be tested “in the field.” Testing Requirements • Usability testing specific to mobile applications must be included in testing phase – 56% of professionals perform usability testing, only 18% do so in field • Mobile user must have a clear sense of the state of the application. – What have you already done? What can you do now? Can you undo actions? Testing Requirements • Application must support change in device orientation – Portrait/landscape format • Application must ask for permission before making connections – What if user doesn’t have unlimited data? Lawsuit! Testing Requirements • UI layout must be appropriate for mobile devices – Minimize scrolling, appropriate contrast in background/text, appropriate text size, etc. • Important/irreversible actions should require confirmation – Easy for user to make mistakes due to screen size/imprecise input Testing Requirements • Sound (if present) should be useful and be integrated with device’s sound controls • Buttons should act in manner appropriate to the device – E.g. don’t bind the “exit” or “back” key to positive actions such as select and “OK” And the Survey Says… • No real consensus on the “right” way to test mobile • Very limited adoption of automated test tools (only 10% of professionals surveyed) Testing the Tests • Researchers applied test requirements to a mobile shopping app • Test requirements were found to be beneficial in highlighting areas of concern specific to mobile apps Conclusion • Testing for mobile has unique challenges – Vastly different spread in hardware configs – Mobility – Hardware constraints • Recent proliferation of mobile devices -> lack of consensus regarding development – Companies are “winging it” Conclusion • Proposed requirements offer a “starting point” – No comparison point because this is presumed to be better than “winging it” • In future.. – Requirements should be refined and prioritized – Requirements specific to certain categories of applications should be defined