Facebook (NASDAQ: FB) is open-sourcing an internal tool it has used to test how apps perform on 2G, EDGE, 3G, and LTE networks. The social networking giant is making the tool available on GitHub.
The goal is to give all sorts of developers the ability to test how their apps will perform under different network conditions. The tool, called Augmented Traffic Control, simulates network connections based on bandwidth and latency, as well as packet loss, corruption and reordering.
In 2013, after first trying to simulate a 2G network and then using a Wi-Fi network to simulate various network speeds, Facebook created ATC. Facebook's Manu Chantra and John Morrow wrote in a company blog post that ATC was the company's "biggest step toward creating test network conditions that simulated what people would most likely experience on different kinds of networks."
In the following weeks, Facebook set up the ATC system so it could simulate 2G, EDGE, 3G, and LTE networks. The company specifically simulated the most common network connection situations in countries such as Brazil, India, Indonesia, Kenya, Nigeria and the Philippines. With ATC, Facebook said it and other developers can switch easily from one connection strength to another and demonstrate app features in real time on different network simulations. Facebook said that because ATC is built into Wi-Fi networks, its developers have been able to use it to test apps on iOS, Android and feature phones.
Facebook used ATC internally to test its own apps. For instance, an engineering team working on an update to Messenger that would make the app run faster and more reliably used ATC to check how the app would perform when the network connection wasn't as strong. "They ran automated tests in which the bandwidth connections were changed in order to look at how long Messenger should wait before timing out and how many retries were optimal to send messages," Chantra and Morrow wrote. "This information allowed the Messenger team to choose a selection of small A/B tests to run. By zeroing in on where the weaknesses were in different networks, they were able to more quickly identify problems and save development time. The Messenger team also uses ATC APIs in automation to measure call quality on different network configurations."
ATC let the engineers reduce their use of A/B tests and make sure their tests were consistent. As a result, they could improve downloads to make them more adaptable and flexible to different network strengths, Chantra and Morrow wrote. They added that in some cases, developers were able to recreate issues that would happen only on extremely slow networks, and then investigate and handle those conditions correctly.
Facebook has been thinking about how to optimize its apps--and get more people to use them--for some time now. In January, Facebook quietly launched its Facebook Lite app in a handful of countries in Asia and Africa, including Bangladesh, Nepal, Nigeria, South Africa, Sudan, Sri Lanka, Vietnam and Zimbabwe. The Facebook Lite app is available only for Android phones, is just 252 KB in size, and is designed specifically to work on 2G networks and in areas with poor wireless connectivity.
In October 2014, according to ZDNet, Facebook disclosed that it had reworked the back-end infrastructure of its Messenger app to reduce data consumption and errors for users.
And the company's work on the issue is important to network operators; Ericsson recently found that Facebook was the most-used app in the United States with 16 percent share.
- see this Facebook blog post
- see this FierceMobileIT article
- see this TechCrunch article
- see this VentureBeat article
Ericsson: Facebook, YouTube, Netflix, Instagram and Snapchat make up 61% of U.S. mobile app traffic
Facebook launches Facebook Lite app designed for 2G networks in emerging markets
Facebook's mobile redesign drives total wireless traffic up 5-10%, study finds