Skip to content Skip to navigation
Qualifying Exam
3/6/2015 11:00 am
CoRE B(Room 305)

X-Checker: Testing Native Cross-Platform Mobile App Development Frameworks

Nader Boushehri, Rutgers University

Examination Committee: Liviu Iftode, Vinod Ganapathy, Santosh Nagarakatte, and Mario Szegedy

Abstract

Mobile app developers often wish to make their apps available on a wide variety of platforms, e.g., Android, iOS, and Windows devices. Each of these platforms uses a different programming environment, each with its own language and APIs for app development. Small app development teams lack the resources and the expertise to build and maintain separate code bases of the app customized for each platform. As a result, we are beginning to see a number of cross-platform mobile app development frameworks. These frameworks allow the app developers to specify the business logic of the app once, using the language and APIs of a home platform (e.g., Windows Phone), and automatically produce versions of the app for multiple target platforms (e.g., iOS and Android).

My research focuses on the problem of testing cross-platform app development frameworks. Such frameworks are challenging to develop because they must correctly translate the home platform API to the (possibly disparate) target platform API while providing the same behavior. We develop a differential testing methodology to identify inconsistencies in the way that these frameworks handle the APIs of the home and target platforms. We have built a prototype testing tool, called X-Checker, and have applied it to test Xamarin, a popular framework that allows Windows Phone apps to be cross-compiled into native Android (and iOS) apps. To date, X-Checker has found 47 inconsistencies in the way that Xamarin translates between the semantics of the Windows Phone and the Android APIs.