There are times during mobile testing projects that the only thing you feel sure of is that you're lost. For one,...
it can seem like there are innumerable platform considerations, including hardware, OSes, installed products vs. running a browser and even which browser to use.
Those concerns alone can be daunting for many people. So, once you add the nuances of planning your test and automation strategy, things can seem unapproachable. To help you navigate the chaos, here are five quick tips for when and how to utilize various mobile app developer tools and approaches.
1. Screen capture tools communicate exactly what you mean
Bugs are difficult to put into words. Testers not only have to find the language that precisely describes a problem, but that also clearly conveys the minimum number of steps necessary to reproduce the bug and what the log files say. Unsurprisingly, it is easy for even the best tester to miss an important piece of information or write a bug report that is hard to skim and understand. The common result of this dilemma is that programmers say the reported problem can't be reproduced. Screen capture applications are the most effectual mobile app developer tools at minimizing these miscommunications. They allow you to record the problem in a sharable video or image file. Several capture applications exist for both Android and iOS systems.
2. Reduce repetitive work with automation
Every testing project will have some repetition. Dubbed regression testing, testers often batch up this repetitious work and perform all of it right before a scheduled release. Between the many different OSes, browsers and hardware versions, testers end up performing a lot of the same work again and again. This, however, can be improved by configuring certain tests to be performed identically each time. These practices can be automated using tool sets like Appium or iOS Driver and then run in either a cloud service like Sauce Labs or a local mobile device cloud.
It may take time to architect and build useful automation, but it can pay off in the future.
3. Fast-paced testing at the service level
For any piece of software, a significant amount of testing involves data manipulation. A tester selects a value for a field (or a couple of fields), types it in, clicks submit and then makes observations about what happens. These steps can be time-consuming.
To expedite data testing, it may be worth performing your software assessments at the service level. Testing at the service level entails some sort of RESTful API or web service. Mobile app developer tools, like Postman or HTTPie, can run several tests quickly. For testers, it requires sending a new piece of data, and since the setup is close to the code, the results come back very quickly.
4. Access more test environments with emulators and simulators
Some of the issues referred to earlier in this article could be considered combinatorial problems, and having them within mobile testing isn't surprising. After all, mobile developers have to consider two to three OSes -- plus, up to three browsers per OS -- and then who knows how many hardware platforms for each. With numerous possible combinations, you get far too many places that need to be tested as well. Besides, most development shops won't be able to keep every device they need in their mobile device lab.
This is where a mix of simulators and emulators can be effective. Simulators allow a developer to build the latest version of a code base and get a running version of the product in a matter of minutes. Emulators are more like virtual machines for mobile devices. Both can be quite handy early in the development process. Although, once you need a more realistic test environment -- with access to Wi-Fi, battery power, interruptions from other apps and so on -- you will want to pick up a real device.
5. Test for every circumstance
A mobile device's many facets affect test results. If your product's latest build earns an "OK," it might mean anything from "serviceable" to "still pretty buggy." There is always the chance several key dimensions aren't being properly tested.
Some projects are inherently tricky to guarantee thorough assessments for. This was the case for one mobile product I worked on that was made for anesthesiologists. These particular doctors are often situated in the lower floors of hospitals, so we had to account for how one minute they could have internet and the next no service at all. For any code change that involves sending data to the server, we had to plan for users walking in and out of coverage zones to know what happens when the device loses connectivity at an inconvenient time.
Think about all considerations unique to mobile devices -- rotation, gestures, connectivity, resource usage -- and how that fits into a product's daily usage. You'll want to plan for them within your exploratory testing.
Keep calm and test on
Consider your testing scenario to work with the most effective mobile app developer tools. If you're ever unsure as to what approach should be taken, try to slow things down. Take on one problem at a time, and that will go a long way toward making mobile testing seem less convoluted.