I remember my first mobile handset, a Mitsubishi Trium, for which I had to pay a hefty amount to the mobile operator to make or receive a call. At that time, the incoming call was free after 23.00 hrs, and I am sure many users like me would have spent long nights having conversations with their near and dear ones. Phones of that era had very few features besides calling and basic texting, 2or 3 games, and alarms. Over the last 10 years, the mobile phone has evolved massively and besides owing to the internal hardware progressing greatly, the true power of these devices are unleashed by their programs and software. The mobile market is no longer just about communication, it’s internet, music, video, web, social networks, navigation and everything else. The mobile ecosystem now embraces anything a consumer wishes to do on the move or on a handheld device at home.
Nowadays companies or test engineers are leaving no stone unturned to verify apps properly. Testing for the mobile market is indeed a challenge. In the fast pace of IT industry that’s constantly changing and growing, a lot of different problems and issues are coming up.
As per my experience, the biggest mobile application testing challenge is the OS & Device fragmentation. Application testing is difficult due to compatibility issues as a mobile application can be deployed across devices with different operating systems or device manufacturers. Any quality assurance engineer can’t be 100% sure if a tested app works well with a given device, it will run smoothly on the other device.
Next big challenge is soaring user expectation where we need to ensure the data usage, installation, usability. Security plays a very critical position in the mobile app where the world is talking about data privacy. Apart from these critical challenges we need to take care of the environment. Here, we need to be sure about the network, carrier technology, intelligence, localization. Performance plays the crucial role as well. In my experience, load time or the launch threshold should be less than 3 seconds. Also, we need to deal with different type of app like mobile web / native apps / hybrid apps. Maintaining the industry standard is another challenge, so the QA has to ensure industry standards for an application to be popular and globally accepted especially in this era of technology.
When we need to deal with these many challenges and many other small challenges, I always prefer to follow the best practices to test mobile app or any other testing. I would like to throw light on some do’s and don’ts.
Functional Testing:
It is always good to start testing the app early.
- Use emulators/simulators ensure core functionality of the app helps a lot.
- Test the app as a “black box” and try to break it. I Choose a test automation tool that fits into my company strategy and infrastructure. You can choose tools like Kobiton, Appium, Robotium, Selendroid, MonkeyRunner.
Non-Functional Testing:
- Don’t just restrict non-functional test performance or Load test. Carry-out usability test, Installation test and check the app on different carriers and network connections like 2G, 3G, WiFi, or LTE address device fragmentation.
- Build a “Mobile Test Priority Matrix” (old & new version). It is recommended to address device fragmentation.
Now let’s have a look at the multiple tests that need to be performed to make sure that you have a mobile app with a decent quality.
What to Test
- Installation
- Install App via App Store
- Over Wi-Fi
- Over data network
- App behavior with preinstalled apps
- First-time launch behavior
- Un-installation and device cleanup
- GUI & Usability
- Portrait and Landscape
- Interface
- Pop-ups
- Overlay
- Layout and alignment
- Header & Footer
- Multi-touch
- TILT
- Functional
- Emulators and Devices
- Data validation for forms
- Localization Testing (currencies, units of measure, Adapting graphics, dates, addresses, and phone numbers)
- Native language first
- Layout
- Text alignment
- Image & text captions
- Text-on-buttons
- Text Encoding
- Interrupt Testing
- Phone calls
- SMS
- Calendar alerts
- Volume
- Ringer
- Screenshot
- Sleep
- Headphones
- Low battery
- Compatibility
- Devices and networks
- Firmware versions
- Backward compatibility
- Device Screens
- Resolution
- Size and dpi
- Scaling of images/text
- Device features
- Flip
- Camera
- Accelerometer
- Battery Usage
- LBS (Location Based Services)
- Link navigation
- Open/close pop-ups
- Non-functional
- Performance Testing
- Security Testing
- Code Review
- Static Analysis
- Dynamic Analysis
- Non-functional
- Performance Testing
- Security Testing
- Code Review
That was all about the standards and the practices one should follow while building or testing a product. But if you are not passionate about what you are doing, and eager to learn new things while in the assignment, then I am sure you will only deliver a product with working features, not a great product.
Even a machine can follow the set of instructions, or follow the steps to complete the task…What makes us different than a machine is a human touch.
Adiós por ahora