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 EmulatorMobile Device FunctionalityDevice variations (keyboard, screen size, etc.) Usability issues, designUsability issues specific to device User behaviorPerformance, resources, real- world 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. someones 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 doesnt 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 devices sound controls Buttons should act in manner appropriate to the device – E.g. dont 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