SEMERU Android Developer Tools

Welcome to the home page for the SEMERU set of Android development tools.  This site is a portal to research projects and tools created by the SEMERU Research group at the College of William & Mary and collaborators.  Our goal is to build useful, practical tools for developers to help improve the process of software creation, maintenance, and testing for mobile applications (with a focus on Android) by leveraging emerging program analysis, information retrieval, and machine learning techniques.  Our tools have been published at top research venues (including ICSE, FSE, and ICST), and we actively collaborate with industrial partners to apply solutions from academic research to problems faced by real world mobile developers. 

Current Projects

Fusion - Improving Bug Reporting for Mobile Applications

Bug reporting systems have not changed significantly in recent years. Despite striking advancements in program analysis techniques, reporters typically enter textual information to describe a bug.  However, this type of report has been shown to be woefully inadequate for developers looking to reproduce and fix reported bugs.  The goal of the Fusion project is to leverage static and dynamic program analyses to improve the bug reporting process and produce higher quality reports with more detailed information, while requiring less effort from reporters.

CrashScope- Effective Automated Testing for Android Applications

Automated testing techniques for Android exhibit notable shortcomings including: (i) A lack of expressive fault reports, (ii) lack of testing for contextual features (e.g. GPS, network), (iii) multiple input generation strategies.  CrashScope aims to overcome these shortcomings by using static analysis to identify GUI-specific locations where contextual features exist and multiple input generation strategies to effectively test these locations and uncover crashes.  When the tool crashes a target application, it generates an expressive report with the steps for reproduction and a repayable test script. Thus, CrashScope is an effective and practical automated testing tool for Android.

Current Team Members

Kevin P. Moran is currently a graduate student in the Computer Science Department at the College of William and Mary pursuing a Ph.D degree.  He graduated with a B.A. in Physics and Computer Science from the College of the Holy Cross in 2013, and an M.S. in Computer Science from the College of William and Mary in 2015.  Kevin is a member of the SEMERU research group and advised by Dr. Denys Poshyvanyk. His main research interest involves facilitating the processes of Software Engineering, Maintenance, and Evolution with a focus on mobile platforms.

Carlos Eduardo Bernal-C√°rdenas is a Ph.D. student at the College of William and Mary advised by Dr. Denys Poshyvanyk. He received his B.S. in Systems Engineering in 2012 and his M.S. in Systems Engineering and Computing from Universidad Nacional de Colombia. His research interests include software engineering, software evolution and maintenance, information retrieval, software reuse, mining software repositories, mobile applications development and user experience.

Denys Poshyvanyk is an Associate Professor in the Computer Science Department at William and Mary (see W&M by numbers) where he leads SEMERU research group. He received his Ph.D. from Wayne State University, where he was advised by Dr. Andrian Marcus. His current research is in the area of software engineering, evolution and maintenance, program comprehension, reverse engineering, software privacy, repository mining, traceability, performance testing, mobile app (Android) development and testing, energy consumption, and reuse.

External Team Members

Mario Linares-Vasquez has recently received his Ph.D. from the College of William and Mary, advised by Dr. Denys Poshyvanyk, and he has joined Universidad de los Andes (Colombia), as a tenure­track Assistant Professor. His research interests include evolution and maintenance of mobile apps, automated GUI testing, and application of data mining and machine learning techniques to support software engineering tasks. The topic of his dissertation focused on supporting evolution and maintenance of Android apps, by relying on novel combinations of dynamic analysis, mining software repositories, and static analysis.