TY - GEN
T1 - RunDroid
T2 - 11th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2017
AU - Yuan, Yujie
AU - Xu, Lihua
AU - Xiao, Xusheng
AU - Podgurski, Andy
AU - Zhu, Huibiao
N1 - Publisher Copyright:
© 2017 Association for Computing Machinery.
PY - 2017/8/21
Y1 - 2017/8/21
N2 - Fault localization is a well-received technique for helping developers to identify faulty statements of a program. Research has shown that the coverages of faulty statements and its predecessors in program dependence graph are important for effective fault localization. However, app executions in Android split into segments in different components, i.e., methods, threads, and processes, posing challenges for traditional program dependence computation, and in turn rendering fault localization less effective. We present RunDroid, a tool for recovering the dynamic call graphs of app executions in Android, assisting existing tools for more precise program dependence computation. For each execution, RunDroid captures and recovers method calls from not only the application layer, but also between applications and the Android framework. Moreover, to deal with the widely adopted multi-threaded communications in Android applications, RunDroid also captures methods calls that are split among threads.
AB - Fault localization is a well-received technique for helping developers to identify faulty statements of a program. Research has shown that the coverages of faulty statements and its predecessors in program dependence graph are important for effective fault localization. However, app executions in Android split into segments in different components, i.e., methods, threads, and processes, posing challenges for traditional program dependence computation, and in turn rendering fault localization less effective. We present RunDroid, a tool for recovering the dynamic call graphs of app executions in Android, assisting existing tools for more precise program dependence computation. For each execution, RunDroid captures and recovers method calls from not only the application layer, but also between applications and the Android framework. Moreover, to deal with the widely adopted multi-threaded communications in Android applications, RunDroid also captures methods calls that are split among threads.
KW - Android
KW - Multi-thread
KW - Software analysis
UR - http://www.scopus.com/inward/record.url?scp=85030758311&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85030758311&partnerID=8YFLogxK
U2 - 10.1145/3106237.3122821
DO - 10.1145/3106237.3122821
M3 - Conference contribution
AN - SCOPUS:85030758311
T3 - Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering
SP - 949
EP - 953
BT - ESEC/FSE 2017 - Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering
A2 - Zisman, Andrea
A2 - Bodden, Eric
A2 - Schafer, Wilhelm
A2 - van Deursen, Arie
PB - Association for Computing Machinery
Y2 - 4 September 2017 through 8 September 2017
ER -