Ethan Allen


18 May 2010

Testing is one of the primary pain points for cross-platform mobile development. The complexity involved in replicating various environments can be daunting, time consuming, and expensive. Emulators are approximations of devices, at best, and creating a testing lab with actual devices can be cost-prohibitive. This article discusses a remote service called DeviceAnywhere, which allows you to use several actual mobile devices through a virtualized model.

Challenges of testing

Anyone who has developed web applications for awhile remembers that the challenge of cross-platform testing became pervasive during the early days, when you had to contend with different system architectures, varying bandwidths, browser versions, HTML specifications, and so on. (I may be dating myself here, but I remember having to code to a baseline of 133 MHz processor with 64 MB RAM and a 28K modem. Throwing in MSIE, Netscape, Mosaic, and Lynx on top of Windows 95/NT, Mac OS 7/8, and SunOS/Solaris and the testing permutations became positively mind-numbing.)
The same testing complexities from the past have emerged once more in the mobile computing environments. The number of devices, subtle differences, and the rate of obsolescence have made testing more daunting. Luckily, testing technology has evolved with other forms of computing. Instead of having to rely solely on limited approximations of devices, or creating and maintaining an expensive testing lab, there are services that allow the use of the actual devices remotely.
One such service that I have used successfully is called DeviceAnywhere, which allows you to use the actual device through a virtualized model. How does DeviceAnywhere create this model? The short version is that DeviceAnywhere hardwires actual handheld devices into their datacenter and then creates a virtual view to the end user through a standalone application. The datacenter looks like parts of the "Matrix" made available though an Internet connection with a hint of the "Borg" on the finish.

The Adobe Virtual Developer Laboratory

In conjunction with DeviceAnywhere, Adobe has created the Virtual Developer Laboratory (VDL) to aid in your testing of Adobe Flash Player on mobile devices. We created this VDL with a focus on updated environments, latest builds of Flash Player, and current devices.
The reason for creating the Adobe VDL is to ensure that you have the actual environments for useful testing. Having the Adobe VDL decreases testing complexity, time, cost, and frustration while increasing productivity and confidence in the end product.
As part of the creation of the Adobe VDL, we are subsidizing a group of developers to aid us in refining the process, environment, and use of this service. In essence, we are paying a group of developers to ensure that our VDL meets the needs of the Adobe developer community.
One of the primary functions I use in the VDL is the Test Case Manager capability. Once I create a test case, I can fully or partially automate the process. By creating automated test cases, I can ensure consistent actions between teting sessions.
I also create testing "objects" (short test cases in DeviceAnywhere) and reuse them across test case projects . I can assemble these objects in various combinations to create individual test cases. One task I perform with these objects is the automation of rote activities. A simple example is the creation of an object to step through the following sequence:
  1. Unlock the phone.
  2. Open the web browser.
  3. Modify the phone's settings.
  4. Type in a desired URL.
  5. Load a URL.
Though the above example is rather simple, I am able to automate 15–20 repetitive actions while ensuring consistency throughout each use of the test case. Take those 15–20 actions and multiply them during the course of development and the manual entry savings are in the thousands.
Another feature of DeviceAnywhere that has become essential to me is exporting fames and videos of a testing session. It automatically captures video for each session on a 15-minute sliding window—such as the last 15 minutes of a session. I can export a portion of that video, or a PNG of an individual frame, and then send the video or frames to the developers, input the visual information into test and/or bug tracking software, or send to others stakeholders. Your marketing resources may also find uses for this video/frame capture function. (The session capture can also be used to compile a demo for marketing purposes. One manner of doing this would be to write a test case that mimics a desired marketing sequence, executes the script, and exports the video. )
The Adobe VDL is an easy, systematic, and intuitive tool to test applications and/or behaviors on a variety of devices. Accessing the VDL is done though an application provided by DeviceAnywhere.

Learning more about the VDL

For detailed information regarding the DeviceAnywhere platform, watch the following webinar:
The following is an illustrated workflow within DeviceAnywhere:
Open the DeviceAnywhere application and log in
Figure 1. Open the DeviceAnywhere application and log in.
Choose Adobe VDL from the drop-down list
Figure 2. Choose Adobe VDL from the drop-down list.
Right-click the device you want to use for testing and choose the Acquire Device option
Figure 3. Right-click the device you want to use for testing and choose the Acquire Device option.
Start interacting with the virtualized device in the right panel
Figure 4. Start interacting with the virtualized device in the right panel.
Every development project requires testing, no matter how much you may wish it did not. Given the immutable law of testing, you may find that DeviceAnywhere is a service that minimizes time, cost, and anxiety for your development projects. Please e-mail me if you are interested in being added to group of developers we are subsidizing for the Adobe VDL on DeviceAnywhere.