Technology•Jul 02, 2020
Integrating and Testing Emergent Mobile Technology: Mobile Strategy Series Part 3
The capabilities of mobile devices keep evolving at a rapid pace, and building a team that can learn to make use of them is a challenge. Teams must be able to integrate and support the tools and technologies used to build mobile solutions while adopting agile software development processes that allow for consistent rollout of new features. Leveraging this technology also requires new testing practices as novel experiences complicate the quality assurance and control process.
In this blog post, we’ll explore how to keep up with emergent mobile technology and build a foundation for testing that will scale to handle the complexities of cutting-edge technology.
IMPACTS OF NEW TECHNOLOGY
The core of any new technology decision is what benefits and impacts it will have to your customer experience, what impacts will it provide to your organization’s growth and revenue, and what difficulties will there be to maintain this technology long term.
User Experience Benefits
In our prior blog post, “Creating Better User Experiences for Your Mobile App,” we explored how new mobile technologies can also enhance your user experience (UX) and provide your customers improved experiences by automating routine tasks. Biometric logins, camera QR scanning, and location-related features via GPS are now so commonplace and convenient that users expect them, but they were widely disruptive technologies when introduced to smartphones. The reason users embraced these technologies was because the benefit for a convenient and streamlined user experience was greater than the trade-off for providing organizations more user attention and access.
Technology Tradeoffs and Organization Strategy
Similar UX benefits and tradeoffs should be assessed for other emergent technologies you’re looking to adopt.
Are you providing a tangible, location-based benefit to customers through beacons?
Does augmented reality allow for a unique experience that users will continually embrace, despite the additional overhead and maintenance costs?
In each of these tradeoff assessments, understand how the technology fits into your organization’s long-term digital and mobile strategies. In some cases, it’s worth absorbing initial costs for the technology development to grow your user base and digital sales ahead of competitors. Apparel and furniture retailers are embracing AR to increase their digital sales with virtual fitting rooms and galleries, and Warby Parker developed an AR eyeglasses app that allows them to thrive in a direct-to-consumer model. Domino’s Pizza adopted mobile technology early with a focus around core user experiences and disrupted the pizza delivery industry with order tracking and an innovative car fleet designed to be connected to their mobile platform. These mobile strategies have a high cost for initial development, testing, rollout, and maintenance but were critical to each organizations’ long-term strategies.
FIND THE RIGHT TECHNOLOGY FOR YOUR MOBILE STRATEGY
Where to Look
Part of recognizing new ways technology can be leveraged by your team is keeping up with the rapidly changing mobile landscape, especially popular platforms such as iOS and Android. Apple hosts their annual Worldwide Developer Conference every summer where they often reveal a new version of iOS along with updates to their other operating systems. Similarly, Google hosts their annual Google I/O conference where you can expect updates to Android and news on recent technology trends such as Flutter. Both of these conferences have virtual sessions available and articles on topics of interest, such as what’s new in their SDKs, updates to native machine learning frameworks, or additional hardware APIs.
Another great way to keep up with mobile technology or identify potential hotspots is through following popular blogs such as Mobile TechCrunch. Following technology-specific blog series that directly pertain to your toolset is also important for getting the most out of your dependency and keeping up with vendor updates. Keeping tabs on the latest developments is part of maintaining a solution that doesn’t become obsolete.
Create Platforms for Scalability
When choosing technologies for your mobile strategy, design for scalability by creating mobile platforms that meet initial requirements while remaining extendable. Mobile platforms separate core business logic from mobile apps and are easier to maintain, test, and release than standalone applications, especially if you are supporting multiple app stores (Apple and Google). Keep the native apps focused on the user experience and drive the features through service orientated architectures that offload heavy business logic into reusable cloud services or construct event-driven architectures that rely on serverless cloud.
Many mobile technologies require extensive client-side SDK integrations (AR with camera hardware, beacons and GPS, etc.), but the data associated with these hardware integrations should be processed and verified on your organization’s platform servers when appropriate. The logic and validation of the data can then be maintained independent of app releases.
Successful technology implementations depend on user-adoption and stability. New Relic, AppDynamics, and Dynatrace are popular app performance tracking services, and they each have mobile SDKs that can be used for performance monitoring with custom event tracking, dashboards, alerts, and reports. The
Part of tracking how users are engaging with your app is making sure you’re aware of pitfalls and errors. Crashes can be especially hard to track as logs or stack traces become lost when the app terminates. Fortunately, there are tools such as Crashlytics (formerly owned by Fabric and now owned by Google), which make it easy to view crash reports and help you achieve a crash-free product.
Finally, measure customer satisfaction by monitoring social media campaigns and user feedback on reviews. Incorporate direct feedback and rating prompts after a new feature has been used to understand if it’s achieving the desired business outcome.
Integrating with new technology offerings has an inherent risk that will always be present. While we can measure the success after a feature has been launched, if the feature is unstable customers may abandon the app before becoming repeat users. In order to mitigate this, testing needs to be put in place to ensure new technologies are performant.
Understand Your Users
Knowing the device demographics of your users is critical to having an effective testing strategy. Each app naturally lends itself to different devices, some of which may not support cutting-edge features like biometric logins or neural network processing. By knowing the kinds of devices that are being used, compatibility testing and expected adoptions can be focused on the kinds of devices that are most heavily utilized.
Alternatively, if an app is either not yet released or does not yet have established demographics, compatibility testing can be focused on devices that hold the largest market share.
Gather Appropriate Devices
Testing for mobile applications can be completed on app emulators, cloud device farms, or physical devices. Emulators are only applicable for developer testing, and physical devices provide the best end-user experience but require additional equipment purchase, mobile device management, and potentially self-built device farms.
Cloud solutions are beneficial for apps that span large device demographics with many older devices that need to be supported. They also scale well with new devices and tests, but at a per-use cost that can exceed building an in-house farm for long-term use.
Separate Testing Concerns
Once devices are procured, it’s important to understanding separation of testing responsibilities to ensure that developer and QA resources can focus on the core business logic that needs to be tested. As a general rule: test your logic, not the frameworks.
For example, the majority of testing for speech recognition features using Alexa or Siri should be done after the respective natural-language processing level occurs. Build out tests that ensure business flows execute correctly when receiving both expected and unexpected processed-language inputs. Consistently testing the voice processing frameworks would be excessive since they are outside a developer’s control. However, end-to-end user acceptance testing (UAT) could be used to confirm that the speech functionality was improving the user experience and providing a business impact.
Similarly, some technologies (like location-based or beacon services) are inherently more difficult to test than others due to differences between cellular carrier service, GPS availability, and GPS hardware. Architect your application and platform to test for various success and failure scenarios with known inputs, rather than focusing the majority of testing on real-world UAT.
Automate to Scale
No matter what devices, platforms, or features you eventually integrate, automation will be crucial as the scale and audience of your application grows. Follow the testing pyramid to focus on automating app and platform unit test first, followed by service integration and then user interface (UI) tests.
Figure 1 – The Test Pyramid
If you’ve appropriately separated business logic for new technology integrations, the automated tests would then cover the initial technology touchpoints in isolation, the business logic integrations with known data, and the appropriate flow routing after new technology and business logic was processed.
As an example, testing a biometric login flow should:
Unit test that the biometric API calls for available hardware, user permissions, and user state.
Unit test the failure and pass scenarios for processing logins with appropriate biometric tokens.
Service test the integrations between the mobile app and platform login APIs.
Optionally, UI test the login entry with biometrics if alternative entry points are available.
Focusing on the isolated, logical touchpoints separates complex UI patterns from the core technology that’s being tested. End-to-end UI tests will still be needed to some degree, but a sufficient automation platform can avoid expensive and repetitive manual testing.
CONTINUING THE CONVERSATION
Thanks for continuing to follow along with our series on mobile strategy! If you missed it, part one of our series explored 8 Critical Considerations for Developing a Successful Mobile Strategy and part two dove into Creating Better User Experiences for Your Mobile App. Stay tuned for part four where we’ll discuss how to engage your base with marketing, notifications, and data privacy.
Need help now? Reach out to firstname.lastname@example.org.