Mobile Testing
• Mobile application testing is a process by
which application software developed for hand held mobile devices is tested for its functionality, usability and
consistency.
• A mobile application (or mobile app) is a software
application designed to run on smartphones, tablets and other mobile devices.
• Mobile OS is the operating system that operates a
smartphone, tablet, PDA, or other digital mobile devices.
Android from Google Inc. (free and open source)
iOS from Apple Inc. (closed source, proprietary)
Windows Phone from Microsoft (closed source, proprietary)
BlackBerry 10 from BlackBerry (closed source, proprietary)
• They are specific to a given mobile platform (iOS, Android, Windows Mobile & others) using the development tools and language for the respective platform. Native apps are what you download form the app stores.
Native Apps
• Mobile Web apps are indeed web applications for use on mobile devices, and are invoked through web browsers such as Safari or Chrome. They offer the promise of “Write Once, Run Anywhere” that works on all types of platforms and devices.
They are developed using standard web technologies such as HTML5, JavaScript and CSS.
Mobile Web apps
• Hybrid apps work like native apps and you download them from the app stores also. The key difference is that that they are not developed using native technologies. Rather, they can be developed in one of the popular languages; PhoneGap, perhaps the most popular framework to develop hybrid apps, allows developers to write code in JavaScript/HTML5 that can be converted to a mobile app.
Hybrid
apps
• Get familiar with your testing device(s):
• Model
• OS version
• Device specific features –keyboard, camera etc.
• Debugging tools
:
?
• To find what version of the Android OS your device is running, navigate to Settings > About phone/About tablet and look for Android
version.
• To check your iOS version follow the steps:
1. Press the ‘Settings’ from your iPhone/iPad 2. Press ‘General’ from your ‘Settings’ menu 3. Go to ‘About’ from ‘General’ menu
4. Scroll down and find the iOS version under ‘Version’
• Android OS is used by 3 000+ devices (including manufactures like HTC, Asus, LG, Samsung etc.)
• Android is open source code and allows the software to be freely modified and distributed by device
manufacturers, wireless carriers, mobile application
companies and enthusiast developers.
• iPhone Configuration Utility
1. Open the tool
2. Connect your iPhone/iPad to the PC
3. Select your device from the left side of the tool – See the attached screen shot.
4. After this select ‘Console’ – now you can see the log files
5. To save your log file either copy and paste it as a document or click ‘Save Console As’ at the bottom right corner.
• Screenshots
1. Navigate to the screen of the application that you want to take a screen shot.
2. Simply hold down Home key and Lock key together. This activates the screen-shot capture and saves the photo on your device.
3. Connect the device to the PC , navigate to ‘Internal Storage’ -> DCIM -> Choose the correct directory and find your screen shot
4. Copy the file and paste it to your PC
• Eclipse -> DDMS
(Dalvik Debug Monitor Server) 1. Open device settings – select ‘Enable USB debugging’2. Connect the device to PC
3. Open Eclipse – Select ‘Open Perspective’ icon which is placed on upper right corner and choose ‘DDMS’
4. Your device will be shown on the upper left corner. Click on the device.
If the device is missing it means that you have to install additional drivers -
http://developer.android.com/tools/extras/oem-usb.html#Drivers
5. Get device logs - devices’ log files are shown in the ‘LogCat’ section on the screen.
You can choose the level of filtering the logs but with no additional selection, if there is a crash, the log will be colored in red. Usually the crash appears with the text ‘
FATAL_EXCEPTION’ or ‘Terminating app due to uncaught exception’, but you can also search for other errors or exceptions in the log. When the Android app crashes most probably you will see an error dialog saying ‘Force Close’ on the screen.
6. Capture screen shot - look on the up right corner – you should see a little camera icon. When clicking it, a screen shot of your device’s current screen is made.
• DO always submit your device
in http://devices.devsmm.com/ - to login user your MM mail credentials.
• DO NOT UPGRADE your testing device OS
version without consulting QA Practice Leader.
• DO NOT JAILBREAK iOS devices and DO NOT
ROOT Android devices EVER.
• Test the app as a ‘black box ’ and try to break it.
• Make sure that the features implemented conforms to the user story’s requirements.
• Every code change or a new feature could affect existing features and their behavior.
• While testing a new feature, always test how the app behaves in a foreground/background.
• Open every screen of the mobile app and change
the device from portrait to landscape mode and
back again.
• Test app while some other action is performed on the device - for example use the app while the
device is charging, when the card is mounted etc.
• Test app in a silent mode - if your app supports some sound notification, for example receiving a message that makes the device to ring, or game with sound, etc, you need to test how it behaves in silent mode.
• Performs some tests while the device mobile
device sleeps, locks on/off.
• Testing network connectivity
– Ensure app works on Wi-Fi, 3G, GPRS (if supported) – Ensure offline support - checked how does mobile app
respond to connection outages, and reduced quality of service.
– Check how mobile app behaves in airplane mode.
– Ensure that all the connectivity issues are handled
with user-friendly messages or some other behavior
that is intuitive for the user to understand what is the
problem.
• Estimate mobile app response time and define variables that impact it:
Data uploaded
Network issues -network abort, delay, change and weak connections
Third party applications integration
Mobile browsers
Devices
• Compare performance levels between the
released and the new version of the mobile app.
• User interaction – level of intuitiveness and efficiency
– Touchscreen - gestures, input
– Motion sensors - pan, overturning
– Keyboards - numeric keyboards, QWERTY keyboards – Trackball, track wheel
• Navigation – adherence to platform rules and guidelines
– menus like Home, Log Out, and Help, About, etc. should be present on the different pages inside the application.
• Layout and user interface design – look and feel, aesthetics, and precision in layout
– Positions of icons – logical
– Readability - look, display duration – Language - grammar, spelling
– Different display format - suitable
– Text display -alignment, overlap, text wrapping – Progress bars - timing