Yepang Liu
Hong Kong University of Science and Technology
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Yepang Liu.
international conference on software engineering | 2014
Yepang Liu; Chang Xu; Shing Chi Cheung
Smartphone applications’ performance has a vital impact on user experience. However, many smartphone applications suffer from bugs that cause significant performance degradation, thereby losing their competitive edge. Unfortunately, people have little understanding of these performance bugs. They also lack effective techniques to fight with such bugs. To bridge this gap, we conducted a study of 70 real-world performance bugs collected from eight large-scale and popular Android applications. We studied the characteristics (e.g., bug types and how they manifested) of these bugs and identified their common patterns. These findings can support follow-up research on performance bug avoidance, testing, debugging and analysis for smartphone applications. To demonstrate the usefulness of our findings, we implemented a static code analyzer, PerfChecker, to detect our identified performance bug patterns. We experimentally evaluated PerfChecker by applying it to 29 popular Android applications, which comprise 1.1 million lines of Java code. PerfChecker successfully detected 126 matching instances of our performance bug patterns. Among them, 68 were quickly confirmed by developers as previously-unknown issues that affect application performance, and 20 were fixed soon afterwards by following our optimization suggestions.
ieee international conference on pervasive computing and communications | 2013
Yepang Liu; Chang Xu; Shing Chi Cheung
Smartphone applications have millions of users. Their energy efficiency is very important. However, we investigated 174 Android applications and found 33 of them suffering serious energy inefficiency problems. Many of these problems are due to ineffective use of sensors and their data. In this paper, we propose a novel approach to systematically diagnose energy inefficiency problems in Android applications. We derive an application execution model from Android specifications, and leverage it to realistically simulate an applications runtime behavior. Our approach can automatically analyze an applications sensory data utilization at different states, and report actionable information to help developers locate energy inefficiency problems and identify their root causes. We built a tool called GreenDroid on top of Java PathFinder and evaluated it using six popularly downloaded Android applications. GreenDroid analyzed these applications in a few minutes, and successfully located real energy inefficiency problems in them.
automated software engineering | 2016
Lili Wei; Yepang Liu; Shing Chi Cheung
Android ecosystem is heavily fragmented. The numerous combinations of different device models and operating system versions make it impossible for Android app developers to exhaustively test their apps. As a result, various compatibility issues arise, causing poor user experience. However, little is known on the characteristics of such fragmentation-induced compatibility issues and no mature tools exist to help developers quickly diagnose and fix these issues. To bridge the gap, we conducted an empirical study on 191 real-world compatibility issues collected from popular open-source Android apps. Our study characterized the symptoms and root causes of compatibility issues, and disclosed that the patches of these issues exhibit common patterns. With these findings, we propose a technique named FicFinder to automatically detect compatibility issues in Android apps. FicFinder performs static code analysis based on a model that captures Android APIs as well as their associated context by which compatibility issues are triggered. FicFinder reports actionable debugging information to developers when it detects potential issues. We evaluated FicFinder with 27 large-scale open-source Android apps. The results show that FicFinder can precisely detect compatibility issues in these apps and uncover previously-unknown issues.
Journal of Systems and Software | 2013
Yepang Liu; Chang Xu; Shing Chi Cheung
Context-aware adaptive applications continually sense and adapt to their changing environments. A large body of such applications relies on user-configured adaptation rules to customize their behavior. We call them rule-based context-aware applications (or RBAs for short). Due to the complexity required for adequately modeling environmental dynamics, adaptation faults are common in these RBAs. One promising approach to detecting such faults is to build a state transition model for an RBA, and exhaustively explore the models state space. However, it can suffer from numerous false positives. For example, 78.6% of 784 reported faults for one popular RBA - PhoneAdapter, turn out to be false in a real deployment. In this paper, we address this false positive problem by inferring a domain model and an environment model for an RBA. The two models capture the hidden features inside user-configured adaptation rules as well as the RBAs running environment. We formulate these features as deterministic constraints and probabilistic constraints to prune false positives and effectively prioritize remaining faults. Our experiments on two real RBAs report that this approach successfully removes 46.5% of false positives and ranks 86.2% of true positives to the top of the fault list.
foundations of software engineering | 2016
Yepang Liu; Chang Xu; Shing Chi Cheung; Valerio Terragni
Wake locks are widely used in Android apps to protect critical computations from being disrupted by device sleeping. Inappropriate use of wake locks often seriously impacts user experience. However, little is known on how wake locks are used in real-world Android apps and the impact of their misuses. To bridge the gap, we conducted a large-scale empirical study on 44,736 commercial and 31 open-source Android apps. By automated program analysis and manual investigation, we observed (1) common program points where wake locks are acquired and released, (2) 13 types of critical computational tasks that are often protected by wake locks, and (3) eight patterns of wake lock misuses that commonly cause functional and non-functional issues, only three of which had been studied by existing work. Based on our findings, we designed a static analysis technique, Elite, to detect two most common patterns of wake lock misuses. Our experiments on real-world subjects showed that Elite is effective and can outperform two state-of-the-art techniques.
Science in China Series F: Information Sciences | 2013
Chang Xu; Yepang Liu; Shing Chi Cheung; Chun Cao; Jian Lv
Internetware applications are emerging and being widely used. They can adapt their behavior based on environmental contexts and deliver smart services. These contexts can be subject to various noises, which cause them to be inaccurate, incomplete, or even to conflict with each other. This is known as context inconsistency problem. Context inconsistency can trigger unexpected behavior to applications, and therefore should be prevented. One promising approach is to check contexts against consistency constraints so as to detect the occurrences of context inconsistency at runtime. Existing techniques have attempted different ways to improve the checking efficiency or effectiveness with different trade-offs in space overhead or communication cost. However, none of them has exploited multi-core computing capability to systematically improve the checking efficiency. In this paper, we propose a novel concurrent checking technique Con-C to efficiently detect inconsistencies in huge volumes of dynamic contexts. Con-C derives checking subtasks for each consistency constraint based on its structure and semantics. It achieves this in a fully automated way, and at the same time can guarantee its derived checking subtasks to be persistently balanced. We evaluated Con-C by controlled experiments through a large-scale real-world application. It reported promising results that Con-C improved the checking efficiency by extra 57.0%, in addition to what had been gained by incremental checking.
automated software engineering | 2014
Wenhua Yang; Chang Xu; Yepang Liu; Chun Cao; Xiaoxing Ma; Jian Lu
Self-adaptive applications address environmental dynamics systematically. They can be faulty and exhibit runtime errors when environmental dynamics are not considered adequately. It becomes more severe when uncertainty exists in their sensing and adaptation to environments. Existing work verifies self-adaptive applications, but does not explicitly consider environmental constraints or uncertainty. This gives rise to inaccurate verification results. In this paper, we address this problem by proposing a novel approach to verifying self-adaptive applications suffering uncertainty in their environmental interactions. It builds Interactive State Machine (ISM) models for such applications and verifies them with explicit consideration of environmental constraints and uncertainty. It then refines verification results by prioritizing counterexamples according to their probabilities. We experimentally evaluated our approach with real-life self-adaptive applications, and the experimental results confirmed its effectiveness. Our approach reported 200-660% more counterexamples than not considering uncertainty, and eliminated all false counterexamples caused by ignoring environmental constraints.
Science in China Series F: Information Sciences | 2015
Wen Hua Yang; Yepang Liu; Chang Xu; Shing Chi Cheung
The goal of this survey is to summarize the state-of-the-art research results and identify research challenges of developing and deploying dependable pervasive computing systems. We discuss the factors that affect the system dependability and the studies conducted to improve it with respect to these factors. These studies were categorized according to their similarities and differences in hope of shedding some insight into future research. There are three categories: context management, fault detection, and uncertainty handling. These three categories of work address the three most difficult problems of pervasive computing systems. First, pervasive computing systems’ perceived environments, which are also called their contexts, can vary intensively, and thus have a great impact on the systems’ dependability. Second, it is challenging to guarantee the correctness of the systems’ internal computations integrated with interactions with external environments for developers. Fault detection is then an important issue for improving dependability for these systems. Last but not least importantly, pervasive computing systems interact with their environments frequently. These interactions can be affected by many uncertainties, which can jeopardize the systems’ dependability. After a discussion of these pieces of work, we present an outlook for its future research directions.摘要创新点本文分析了开发部署一个可靠的普适计算系统过程中所面临的挑战, 并总结了为应对这些挑战而提出的最先进的研究成果。 通过讨论影响普适计算系统可靠性的因素, 我们将已有提高系统可靠性的技术分为了三类: 上下文管理, 错误检测以及不确定性的处理。 首先, 普适计算系统会感知并利用环境信息(上下文), 而上下文变化剧烈且极可能发生不一致, 因此上下文会对系统可靠性产生较大影响。 其次, 保证系统内部计算及其与外界环境交互的正确性对开发者来说是具有挑战性的, 故错误检测是提高系统可靠性的重要辅助手段。 再者, 普适计算系统与环境的交互过程中存在很大的不确定性, 这些不确定性会危害系统的可靠性。 对这些工作进行详细讨论之后, 我们又对普适计算可靠性提高的未来研究方向做了展望。
Science in China Series F: Information Sciences | 2017
Qiwei Li; Chang Xu; Yepang Liu; Chun Cao; Xiaoxing Ma; Jian Lu
Smartphones are an indispensable part of people’s daily lives. Smartphone apps often use phone sensors to probe their users’ physical environmental conditions to provide services. However, sensing operations can be energy-consumptive, and thus the obtained sensory data should be effectively utilized by apps for their users’ benefits. Existing studies disclosed that many real-world smartphone apps have poor utilization of sensory data, and this causes serious energy waste. To diagnose such energy bugs, a recent technique GreenDroid automatically generates sensory data, tracks their propagation and analyzes their utilization in an app. However, we observe that GreenDroid’s sensory data generation is random and this can negatively affect its stability and effectiveness. Our study reported that GreenDroid might miss energy bugs that require specific sensory data to manifest. To address this problem, we propose a novel approach to systematically generating multi-dimensional sensory data. For effective diagnosis, we also propose to consider app state changes at a finer granularity. We implemented our approach as a prototype tool CyanDroid, and evaluated it using four real-world Android apps and hundreds of their mutants. Our results confirmed that CyanDroid is more stable and effective in energy inefficiency diagnosis for sensory data underutilization issues.摘要创新点1.用多维白盒采样技术分析安卓应用的传感数据利用率;2.用细粒度运行状态提升安卓应用能耗低效分析的稳定性。
IEEE Software | 2015
Yepang Liu; Chang Xu; Shing Chi Cheung
Mobile Internetware applications sense physical and cyber environments and connect a tremendous world of users and things. Smartphone applications are one typical example. However, the smart services of many real-world smartphone applications are realized in an energy-inefficient or performance-ill way, seriously affecting user experience. What is even worse, developers lack powerful tools to combat such problems. This curbs the continuous growth of Internet-based mobile computing. There thus exists a strong call from research communities and industries for effective techniques to diagnose energy and performance bugs in smartphone applications. In this article, we study the characteristics of these bugs and discuss challenges in diagnosing them. We then review state-of-the-art techniques in this field and explore future research directions. Finally, we study the use of one representative tool in analyzing commercial Android applications and Samsung Mobile SDK. We show how the tool can provide useful diagnostic information to developers and discuss effective ways to support Internet-based mobile computing and beyond.