I'm a Research Computer Scientist at USC Information Scienced Institute (ISI) Arlington (VA), doing cool research and working with cool people 😊 I enjoy solving important and interesting problems with broad research interests (knowledge has no boundaries, right?). My current research focus is listed below (it changes overtime, largely driven by how the world changes and who I met). Prior to ISI, I enjoyed 2 wonderful years in the beautiful town Amherst (MA) as a Computing Innovation Fellow (CIFellow) at University of Massachusetts Amherst (UMass). I received my Ph.D. in Computer Science from University of Southern California (USC) in 2020. Before my PhD, I grew up in China and received my Bachelor’s degree in Software Engineering from the Harbin Institute of Technology (HIT) in China.
Throughout my research projects, I enjoy working with people the most. I love learning about leadership and mentoring very much! My mentoring experience can be found here.
PhD in Computer Science, 2014 -- 2020
University of Southern California (USC), USA
BEng in Software Engineering, 2010 -- 2014
Harbin Institute of Technology (HIT), China
[Jul 2023] I'm attending OHBM annual meeting in Montreal! Come say hi if you're around! 🇨🇦
[Jul 2023] I just came back from my 10-day silent meditation retreat at Dhamma Sukha Meditation Center (my annual tradition!)🧘♀️ For those interested, I wrote about my experience in How I Sit for 8 Hours in Meditation.
[Mar 2023] I'm chairing ICSE 2023‘s Student Mentoring Workshop (SMeW) and we've got huge interests from students! If you're coming to ICSE, consider sign up as a student mentor to make your ICSE trip more fun and rewarding! 🤝
[Jan 2023] Our paper AVGUST: A Tool for Generating Usage-Based Tests from Videos of App Executions is accepted to ICSE 2023 Demo track! Australia here I come! 🇦🇺
see CV for the full list :)
see CV for the full list :)
Writing and maintaining UI tests for mobile apps is a time-consuming and tedious task. While decades of research have produced automated approaches for UI test generation, these approaches typically focus on testing for crashes or maximizing code coverage. By contrast, recent research has shown that developers prefer usage-based tests, which center around specific uses of app features, to help support activities such as regression testing. Very few existing techniques support the generation of such tests, as doing so requires automating the difficult task of understanding the semantics of UI screens and user inputs. In this paper, we introduce Avgust, which automates key steps of generating usage-based tests. Avgust uses neural models for image understanding to process video recordings of app uses to synthesize an app-agnostic state-machine encoding of those uses. Then, Avgust uses this encoding to synthesize test cases for a new target app. We evaluate Avgust on 374 videos of common uses of 18 popular apps and show that 69% of the tests Avgust generates successfully execute the desired usage, and that Avgust's classifiers outperform the state of the art.
Prefetching and caching is a fundamental approach to reduce user-perceived latency, and has been shown effective in various domains for decades. However, its application on today’s mobile apps remains largely under-explored. This is an important but overlooked research area since mobile devices have become the dominant platform, and this trend is reflected in the billions of mobile devices and millions of mobile apps in use today. At the same time, user-perceived latency has been shown to have a large impact on mobile-user experience and can cause significant economic consequences. ❧ In this dissertation, I aim to fill this gap by providing a multifaceted solution to establish the foundation for exploring prefetching and caching in the mobile-app domain. To that end, my dissertation consists of four major elements. As a first step, I conducted an extensive study to investigate the opportunities for applying prefetching and caching techniques in mobile apps, providing empirical evidence on their applicability and demonstrating insights to guide future techniques. Second, I developed PALOMA, the first content-based prefetching technique for mobile apps using program analysis, which has achieved significant latency reduction with high accuracy and negligible overhead. Third, I constructed HiPHarness, a tailorable framework for investigating history-based prefetching in a wide range of scenarios. Guided by today’s stringent privacy regulations that have limited the access to mobile-user data, I further leveraged HiPHarness to conduct the first study on history-based prefetching with “small” prediction models, demonstrating its feasibility on mobile platforms and in turn, opening up a new research direction. Finally, to reduce the manual effort required in evaluating prefetching and caching techniques, I have devised FrUITeR, a customizable framework for assessing test-reuse techniques, in order to automatically select suitable test cases for evaluating prefetching and caching techniques without real users’ engagement as required previously.
UI testing is tedious and time-consuming due to the manual effort required. Recent research has explored opportunities for reusing existing UI tests from an app to automatically generate new tests for other apps. However, the evaluation of such techniques currently remains manual, unscalable, and unreproducible, which can waste effort and impede progress in this emerging area. We introduce FrUITeR, a framework that automatically evaluates UI test reuse in a reproducible way. We apply FrUITeR to existing test-reuse techniques on a uniform benchmark we established, resulting in 11,917 test reuse cases from 20 apps. We report several key findings aimed at improving UI test reuse that are missed by existing work.
A large number of mobile-app analysis and instrumentation techniques have emerged in the past decade. However, those techniques’ components are difficult to extract and reuse outside their original tools, their evaluation results are hard to reproduce, and the tools themselves are hard to compare. This paper introduces DECREE, an infrastructure intended to guide such techniques to be reproducible, practical, reusable, and easy to adopt in practice. DECREE allows researchers and developers to easily discover existing solutions to their needs, enables unbiased and reproducible evaluation, and supports easy construction and execution of replication studies. The paper describes DECREE's three modules and its potential to fundamentally alter how research is conducted in this area.
Reducing network latency in mobile applications is an effective way of improving the mobile user experience and has tangible economic benefits. This paper presents PALOMA, a novel client-centric technique for reducing the network latency by prefetching HTTP requests in Android apps. Our work leverages string analysis and callback control-flow analysis to automatically instrument apps using PALOMA's rigorous formulation of scenarios that address “what” and “when” to prefetch. PALOMA has been shown to incur significant runtime savings (several hundred milliseconds per prefetchable HTTP request), both when applied on a reusable evaluation benchmark we have developed and on real applications.