Facebook on Wednesday unveiled insights into how it tests new code on thousands of mobile devices at an until-now secret lab in its Prineville, Ore., data center.
The social networking company also said it plans to open source the hardware design used in its custom mobile device testing rack as well as its Chef software. which is used to control smartphones and other devices for the testing operation.
In a lengthy blog post, Facebook production engineer Antoine Reversat laid out how the testing lab helps engineers monitor the way thousands of code changes each week can affect a smartphone’s memory, data or battery usage.
The blog describes an elaborate process of building up the lab to test nearly 2,000 phones on different operating systems and networks and with different configurations.
The work started last year when Facebook created a CT-Scan service, which monitors and predicts the implications of code changes, but that approach didn’t scale to enough devices. A small team of engineers was created to tackle the problem. The group quickly decided not to use a simulator approach, preferring to test code changes on actual devices for greater accuracy.
Managing the sheer volume of devices that needed to be tested involved issues, including making sure Wi-Fi would work properly with each device. The engineers moved from various approaches starting with a “sled” design, then the “gondola” design, then a “slatwall” and finally a custom-built “rack” that resembles a traditional server rack on the outside with dozens of phones connected inside. Facebook said it will open source the design for the custom rack, but didn’t announce timing.
In addition to a hardware testing design, Facebook created Chef, a software tool to manage the configuration of a server to say which software packages need to installed on the phones and other tasks. Chef has helped Facebook become more efficient at implementing fixes, Reversat said. Chef will also be open-sourced.
“We hope through our open-sourcing both the hardware design of our mobile device testing rack and the Chef recipes written to control the phones, others can benefit from our learnings and contribute their own ideas to our designs,” Reversat wrote.
Reversat said that Facebook has about 60 racks with 32 phones apiece, or 1,920 phones, and has plans to double that number soon after addressing some obstacles.
Today, only engineers who write tests using CT-Scan can make use of the mobile lab, but Facebook wants to create a generic platform for use by any team within Facebook that wants to do on-device testing. To reach that goal, Reversat said Facebook is collaborating on a product called WebDriver.