Part 2 of the Menlo Technologies series
Mobile App Development 101
You download an app that promises to make you more organized and productive by syncing and categorizing your tasks in order of priority.
The app takes a just a little too long to download, and when the download is complete, you’re asked to complete a series of forms and to create a complex password. Just when you think you are done, the app freezes.
And that was the last straw.
Let’s face it.
Mobile app users who encounter a buggy or difficult to use application delete it, and their skepticism of future apps from the same provider rises. Although testing never eliminates the possibility of bugs, it minimizes their occurrence and impact if the correct testing approaches are taken. Those who skimp on testing still have their apps tested, but instead of it being performed by a team of professionals, it is done by end-users.
Just about everyone is walking around with a mobile device in their pocket, or trading up to another with more capabilities and features. The growth of smartphones worldwide has greatly exceeded analysts’ projections in number and rate of growth. As the whole family owns a smartphone, home phones (mine included) are becoming a thing of the past.
The explosion of consumer and B2B mobile apps can be seen in just about every industry. When they work well, they are strong contributors to business success.
- The competition is fierce. According to a recent report from Vision Mobile in London (Developer Economics Q1 2014: State of the Developer Nation) there are 3 million individuals working as mobile app developers worldwide.
- 80-90% of all downloaded apps are used once and then eventually deleted by the users, according to a recent study by Compuware. Mobile users expect a fast and seamless experience every time they open an app. Just one crash can lead a user to ditch an app or write a scathing review.
- According to a recent survey-based report from Forrester Research, U.S. and UK smartphone owners “use an average of 24 apps per month but spend more than 80 percent of their [in app] time on just five apps.”
Mobile users expect a fast and secure experience every time they open an app, so ensuring the quality, security and usability of mobile applications is of utmost importance.Effective and thorough mobile application testing is critical.
Here are 10 things to consider when developing mobile test plans:
1) Begin test planning when development starts.
Like programming, the cost of flaws in requirements and implementation is far less when those flaws are detected earlier rather than later. Most experts contend that the cost of fixing a defect increases ten-fold at every downstream step in the development life cycle. And given the skittishness and impatience of mobile users, the legacy concept of having users identify bugs in production is unconceivable.
2) Define carefully the testing scope.
The mobile app ecosystem is more diverse that that of PCs, and it’s critical to reduce options to a supportable scope. It’s impossible to test every combination of OS, manufacturer, device model, carrier, delivery method and device configuration, let alone versions and sub-versions of these. Test for the most common combinations and those, which from experience are representative of other platforms.
3) Automate testing as much as possible.
Automating mobile application testing is the best way to achieve the quick, precise results you need to support fast development cycles. During every stage of development, scripting, IDEs, in-house and cloud test frameworks are essential for detecting bugs or design flaws. Automation also allows for easy generation of variants on the basic scripts so much broader test coverage is possible.
4) Match testing tactics to development phases.
Up to the time of post-component integration when the mobile app is more or less whole, device emulators are the most effective and least costly test vehicle. A large selection of emulated devices can run tests in parallel.
As development approaches alpha, real devices within live networks must be employed. To scale this phase without building up costly, complex infrastructure, consider a cloud-based mobile app testing service with facilities for script generation,load testing. logging and 24/7 collaboration capabilities.
5) If your software development methodology is agile, employ agile methodologies for testing throughout the process of integration, testing and delivery.
This will reduce time gaps between new functionality, testing, bug detection and bug fixes, and improve team unity and efficiency, making necessary course changes easier to implement.
6) Test accounts for device limitations.
By mindful of the severity of operating constraints under which mobile apps work. The amount of memory, CPU horsepower and electrical power are guaranteed to be a fraction of that on a typical laptop or desktop PC. Reducing platform resources to the lowest practical figures during testing can reveal unforeseen edge cases that must be addressed.
7) Test network bandwidth response.
Though application performance will vary depending on the network connection, users will consider the app defective if performance suffers from a slow connection. A sound test plan can uncover opportunities for application enhancements to ensure adequate performance even on slow networks.
8) Test both client and server sides.
When browser apps have a server side component, test the mobile app under loads on the client, server and both sides at once. This testing should be done in conjunction with network bandwidth testing because of potential performance issues.
9) Do UX testing early and often
Usability testing, along with functional compatibility and performance testing, should be implemented as early as possible in the app development cycle to prevent the user from that one bad experience that will cause them to ditch it. Keep track of the user interaction to build improvements for the next app version. Remember, the small things can be big issues in the user’s mind. Apple, especially under Steve Jobs’ maniacal attention to user experience, has conditioned users to expect perfection.
10) Test for universal appeal.
Localization is essential, even for enterprise workforce business apps. Assume that the application has international appeal and test accordingly. The app must support different languages, display local currencies properly and account for localized versions of popular social networks or regional social sites.
11) Is the mobile app secure?
If not, you have the ultimate deal breaker.
“Software can be correct without being secure,” says James Whittaker, Technical Evangelist at Microsoft, “Indeed, software can meet every requirement and perform every specified action flawlessly yet still be exploited by a malicious user. This is because security bugs are different from traditional bugs. In order to locate security bugs, testers have to think differently too.”
We’ll examine the best practices for Mobile App security testing in this ongoing series, Mobile App Development 101.