What is the impact of bring your own device (BYOD) policies on enterprise mobile app testing?
This is a fairly timely question for me. Enterprise mobile app testing projects need a variety of devices and configurations to accommodate bring-your-own-device policies that many organizations adopt. Can we predict what the interactions will be with other apps? I am not sure.
We can run simulators and emulators. We can have on-hand physical devices that are "clean" -- with only our official and approved apps loaded on them. We can have official policies about everything and limit what is loaded on company-owned equipment and what can be done, or not done, with personal equipment during working hours. This is all fairly typical stuff for large, traditionally structured organizations dealing with BYOD policies.
This is all well and good until you run into bottlenecks. For example, there are more mobile applications to be exercised by testers than there are official machines available. I know simulators can help. But when the real question is, "How does it work on the device?" there is nothing like running it on the device in question to find out. So, we're short on devices. We are short on people with the skills and knowledge to adjust quickly and efficiently. We're short on time.
Limiting use of personal devices for mobile app testing makes sense in some scenarios. For example, you have the "Bleeding edge, really the next big thing" app in development. Should you let coworkers load it on their smartphones and bring it home? It sounds like a good idea at first. But what if the kids get hold of it? What if the smartphone falls out of their pockets? There are a number of bad things you want to avoid.
Then again, if we're short on time and short on resources (such as actual devices we want the app to run on), how much does it cost us if someone is willing to use their device, their data plan and their time, to exercise our new, way-cool app? How much do we want to know if our app plays nicely with Angry Birds or other apps that are not ours? How much do we want to know if our app crashes their version of the device because of a variant in device and configuration?
Where is the balance point between those two sets of ideas? What is the right answer for your organization? I suspect both of those will be different for each group.
This was first published in January 2013