• Publications
  • Influence
CloneCloud: elastic execution between mobile device and cloud
The design and implementation of CloneCloud is presented, a system that automatically transforms mobile applications to benefit from the cloud that enables unmodified mobile applications running in an application-level virtual machine to seamlessly off-load part of their execution from mobile devices onto device clones operating in a computational cloud. Expand
Scalable statistical bug isolation
A statistical debugging algorithm that isolates bugs in programs containing multiple undiagnosed bugs and identifies predictors that are associated with individual bugs that reveal both the circumstances under which bugs occur as well as the frequencies of failure modes, making it easier to prioritize debugging efforts. Expand
Dynodroid: an input generation system for Android apps
Dynodroid views an app as an event-driven program that interacts with its environment by means of a sequence of events through the Android framework, and monitors the reaction of an app upon each event in a lightweight manner, using it to guide the generation of the next event to the app. Expand
Effective static race detection for Java
We present a novel technique for static race detection in Java programs, comprised of a series of stages that employ a combination of static analyses to successively reduce the pairs of memoryExpand
A randomized dynamic program analysis technique for detecting real deadlocks
A novel dynamic analysis technique that finds real deadlocks in multi-threaded programs by observing an execution of the program and controlling a random thread scheduler to create the potential deadlocks with high probability. Expand
Automated concolic testing of smartphone apps
The approach is based on concolic testing and generates sequences of events automatically and systematically and alleviates the path-explosion problem by checking a condition on program executions that identifies subsumption between different event sequences. Expand
From symptom to cause: localizing errors in counterexample traces
An algorithm is presented that exploits the existence of correct traces in order to localize the error cause in an error trace, report a single error trace per error cause, and generate multiple error traces having independent causes. Expand
COSMOS: computation offloading as a service for mobile devices
The design and implementation of the COSMOS system is presented, which bridges the gap between how individual mobile devices demand computing resources and how cloud providers offer them by providing computation offloading as a service to mobile devices and reduces the monetary cost per request to the provider. Expand
Effective static deadlock detection
The algorithm uses a novel combination of static analyses each of which approximates a different necessary condition for a deadlock, finding all known deadlocks as well as discovering previously unknown ones in the authors' benchmarks with few false alarms. Expand
Conditional must not aliasing for static race detection
This paper introduces and gives an algorithm for conditional must not alias analysis and discusses experimental results for sound race detection of Java programs. Expand