Facebook can test its code on 2,000 phones at once
Facebook makes thousands of changes in its code every week. Any one of them could accidentally cause Facebook software to take up more data, memory or battery life on your phone. So the company tests code on more than 2,000 phones to account for different hardware models, operating systems and network connections.
At first, Facebook engineers would just test one phone at a time at their desks. To speed things up, the company built the "sled," a tray that could hold several phones for testing all at once. But using a metal tray, and sliding it into a metal rack, affected the phones' Wi-Fi connections.
Plastic worked better
Next, the company built a rack called the "gondola," which was plastic so it wouldn't interfere with Wi-Fi. It could hold 100 phones. But the USB wires attached to the phones got tangled.
Going even bigger
Next came the "slatwall," which could hold 240 devices. Wanting to test 2,000 phones at once would have required nine rooms like this at Facebook's Menlo Park, California, headquarters, and there wasn't room. So they moved the operation up to the company's Prineville, Oregon, data center.
Finally, the company needed to isolate each rack of phones from the others so their Wi-Fi networks didn't interfere with each other. This was necessary to create a consistent Wi-Fi environment for repeatable tests. Facebook built the chambers with insulation, copper tape, and a power filter. Each rack can hold 32 phones, plus computers that drive the phones to install, test, and uninstall applications. For iPhones, Facebook uses eight Mac Minis, and for Android phones, it uses four Open Compute Project Leopard servers.
There are about 60 of these racks in the Prineville testing center. Test engineers can watch the screens of the phones through cameras mounted inside the racks. Part of the testing is also automated, and Facebook is adding more automation. The company is now working to fit 64 phones in each rack and to open-source the design. Another challenge is to fit larger phones into the racks.