User scenarios and Functionality may be the major theme while testing any software. Software generally comes with detailed help file. Complex and unfamiliar workflows later become a standard. But the trend is changing in mobile world with minimal help file, and more intuitive ways of interacting with software with minimal learning curve. Mobile users use applications on the go, so network availability and data consumption plays a major factor while testing. So, there are several factors to test for in Touch devices.
This mnemonic “COP FLUNG GUN” is to remind testers of what to think about when they are creating tests
People may use smart phones for different reasons, but the primary task of the phone is to receive and make voice calls. How does your app behave on interruptions during incoming calls? How does your app communicate with voice call, texting, and voice messages? How easy is it to attend, reject, hold, or disconnect a call while using your application? Test the app not just on Wi-Fi, but also with good cellular connection with constant interruptions and noises.
People can rotate mobile devices at any time for various reasons. Whatever their reason for rotating the device, people expect the app to maintain focus on basic functionality. Do you test changing the orientation in a sign up page of the app? While on a pop up screen? With notifications? With touch keyboard on? While filling a form? Do you change orientation and scroll, swipe between pages, pinch zoom? Does the app change its size and alignment as per orientation? If the app is not designed to change its orientation, are people informed? Never test mobile applications keeping it static at your desk, carry them to the pantry, to rest rooms, use it while traveling, on your bed, lying on a couch. Apart from observing orientation, also look for ergonomic related tests and clues.
One of the ways to understand the platform is to explore, observe and learn platform’s standard apps. Apart from those, track and use most popular and most downloaded apps like Zyte, flipboard, Instagram and games like Temple Run, Draw something. These apps will help in knowing various gestures, how certain gestures can help users accomplish a task with ease. These apps will help compare usability, and user experience of the apps under test.
When it comes to Apple you have to think different, apple thinks different and set a trend, and rewrite the rules. So, the heuristics like similar products can’t be applied here. So, how to test such new paradigm shift? To test Apple products you should be a fan of Apple, a true apple fan, else you would never understand why things are done certain way. Apple focuses on getting better ways for people to interact with software; it never wants users to worry about internal file system.
Though heuristics and mindset need change, the core skill to test remains the observation skills. Observation starts even before you open application, even before you power on your iDevices. Have you observed the way people carry their iPads? Covered with neat leather case makes them look as if they are real paper notebook. Have you ever observed how people take notes in iPad? Do they click on new file? Click on save? Search in a folder to open xxx.TXT file? You click, now tap notes app icon, type your notes, once done close as if you were taking notes with a pen. Apple never wants end users to learn all technical details to take simple notes. Apple restricts end users from accessing the core OS file system, but for good.
Android, most tech savvy people embrace android mainly because it is an open platform, not restricting users from accessing the OS. Users here expect every app to behave the way they love when they change their settings. Do you derive tests by discussing with tech savvy android users? Do you test with unrooted phones? There are many different display resolutions, OS versions available; it’s good to have a combination matrix to cover most popular screen size and resolution variables. Though there are simulators, they would fail on real device.
Everything that a product does, the most common form of testing, for the requirements. See that each function does what it’s supposed to do and not what it isn’t supposed to do. Starting, shutting down of the apps, interactions, multimedia, file access, navigation, user interface, data syncing on the cloud etc. Did you tap all known interfaces? Did you enter all possible data in the form? Did you change the settings?
Location tracking is one of the key features to be tested in mobile applications. Unlike desktop devices, mobile devices are mostly on the move. Geo location tracking: Most of the apps these days have the feature to track your location, how easy is it for people to change the settings? Are people informed clearly about their location tracking? Does your application adhere to mobile platforms location tracking and other privacy guidelines? Moving from one location to another location how is the application behavior when moved out of Wi-Fi connection? Moved from one data network to another? Never test mobile applications sitting in one place.
It’s about thinking real scenarios of how a mobile device and the application would be used by people. Try to think of how a tech savvy user would try to accomplish a task. Think how a novice user who never had a smart phone would try to accomplish a task. Try credible, complex user scenarios. List out possible users, environments, commonly used scenarios, extreme scenarios, disfavored scenarios.
Mobile applications are mostly used on the move, and so depend on availability, strength and reliability of Wi-Fi and cellular networks. How does the application respond while moving between Wi-Fi, GPRS and 3G,4G? Does your application automatically use Wi-Fi when available instead of cellular network?
In this part of world, apps respond to gestures not clicks. People expect all the gestures to work the same, irrespective of apps. Does your application respond to gestures? Navigations are by swiping on the screen, no more, next and back buttons? are people indicated properly that there is more than one page available to swipe? Does your application respond to various multi touch gestures? Does your application use standard gestures? Are the gestures consistent across the app?
Most mobile platforms have guidelines for developing app, Apple has iOS Human Interface Guideline (HIG).There are guidelines for app store approvals like Apple’s App Store Review guidelines. Use these guidelines to test for error handling, location tracking, user privacy, accessibility, logging etc. There could be important changes in guidelines, which need to be tracked and tested for changes, like Apple restricting apps from accessing UDID to identify users.
Another important factor to consider in mobile platform, unlike desktops the updates here are frequent. While testing, it’s always good to start with at least one version lower than latest, use the app, now upgrade to the latest available version, and observe the application behavior. Updates also need to be tracked to learn about new features available to app developers, and how that could change the workflow or existing gestures. Good to have app developer licenses of various platforms and explore the developer beta seeds to get to know all latest features.