Detecting Network Bugs in 99% of Mobile Apps

San Diego, April 19, 2017 — Computer Science and Engineering (CSE) Ph.D. candidate Xinxin Jin is getting ready to defend her dissertation in early May in front of a committee chaired by her advisor, CSE Prof. Yuanyuan Zhou, who holds the Qualcomm Endowed Chair in Mobile Systems, funded through that company's commitment to Calit2's Qualcomm Institute. Also sitting on the committee will be: CSE professors Bill Griswold, Alex Snoeren and Geoffrey Voelker, as well as ECE professor and Qualcomm Institute director Ramesh Rao. The topic: "Tooling and Language Support for Robust and Easy Network Programming of Mobile Applications."

CSE Ph.D. candidate Xinxin Jin

In the abstract for her doctoral thesis, Jin notes that mobile networks pose unique programming challenges for mobile application developers, particularly compared to desktop-based networks, because mobile networks are "much more dynamic with frequent connectivity disruptions, network-type switches, and quality changes." The result, she argues, is that so-called "network programming defects (NPDs) are pervasive in mobile apps, causing bad user experiences such as crashes, data loss, etc."

In her dissertation, Jin shows that NPDs are pervasive despite the availability of fault-tolerant APIs from third-party network libraries, and she characterizes "90 real-world NPDs in Android apps towards a deep understanding of their impacts, root causes and code patterns."  

In her research, Jin built a practical tool to detect NPDs, called NChecker, which statically analyzes Android app binaries, and she applied NChecker to hundreds of real Android apps. "Shockingly," noted Jin, using a word that is rarely used in computer science dissertations, "NChecker detects network bugs in 99% of the evaluated apps," many of which are caused by app developers making common mistakes when using network libraries. (For more on NChecker, see Xinxin Jin's paper presented at the European Conference on Computer Systems in April 2016, titled "NChecker: Saving Mobile App Developers from Network Disruptions.") 

Xinxin Jin (back row second from left) with professor
YY Zhou (front row center) and other members of Zhou's
Opera operating systems research group in CSE.

Beyond detecting network programming defects, Jin notes that giving developers easy-to-use interfaces for network programming can also help get rid of NPDs, and she proposes an annotation language to allow developers to state desired and actual properties of an application largely without referring to fault-tolerant concepts. Finally, Jin presents a declarative language and middleware for Android, dubbed ANEL, which enables non-experts. "We demonstrate the expressiveness and practicability of ANEL annotations through case studies on real-world networked mobile apps," explains Jin. "We also show that the ANEL middleware introduces negligible runtime performance overhead."

Xinxin Jin earned her M.S. in computer science from Peking University in 2011, and her undergraduate degree from the Beijing University of Posts and Telecommunications (BUPT) in 2008. She did an internship  at Microsoft Research in 2015 and has worked for mobile event app company, Whova, a San Diego-based startup, since it was founded in 2012 by her advisor, YY Zhou. Jin and her co-authors also shared a Best Paper award at the 2016 Symposium on Operating Systems Design and Implementation (OSDI) last November.

Note: Jin's final dissertation defense is scheduled for May 2 at noon in room 3109 of the CSE building. The meeting is open to any interested observers.