Shengqian Yang

dblp:16/8164 · DBLP profile ↗
← Back
7ranked-venue papers
3as first author
0since 2021 · last 2018
0009-0003-1892-6821ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7 · 3 first-authorSystems, architecture and hardware · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
3 papers
Program analysis · 68% Debugging and program repair · 16% Software testing · 16%

Topics — the 6 heaviest of 7, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis
static analysis
0.422015
Static Window Transition Graphs for Android (T) · ASE 2015
Static Control-Flow Analysis of User-Driven Callbacks in Android Applications · ICSE (1) 2015
Program analysis › static analysis › interprocedural analysis
context-sensitive analysis
0.212015
Static Control-Flow Analysis of User-Driven Callbacks in Android Applications · ICSE (1) 2015
Program analysis
control flow analysis
0.212015
Static Control-Flow Analysis of User-Driven Callbacks in Android Applications · ICSE (1) 2015
Software testing › test generation
GUI test generation
0.212015
Static Window Transition Graphs for Android (T) · ASE 2015
Debugging and program repair
fault localization
0.112010
BPGen: an automated breakpoint generator for debugging · ICSE (2) 2010
Program analysis › static analysis › interprocedural analysis
call graph analysis
0.112015
Static Control-Flow Analysis of User-Driven Callbacks in Android Applications · ICSE (1) 2015

Methods — techniques the papers use, named apart from their topics

window transition graph · 0.2static analysis · 0.2path traversal · 0.2interprocedural analysis · 0.2graph reachability · 0.2dynamic fault localization · 0.1
YearPublicationVenuePosition
2018 Static window transition graphs for Android
Shengqian Yang, Haowei Wu 0004, Hailong Zhang 0006, Chandrasekar Swaminathan, Dacong Yan, Atanas Rountev
Autom. Softw. Eng.1
2016 Static detection of energy defect patterns in Android applications
abstract
For static analysis researchers, Android software presents a wide variety of interesting challenges. The target of our work is static detection of energy-drain defects in Android applications. The management of energy-intensive resources (e.g., GPS) creates various opportunities for software defects. Our goal is to detect statically “missing deactivation” energy-drain defects in the user interface of the application. First, we define precisely two patterns of run-time energy-drain behaviors, based on modeling of Android GUI control-flow paths and energy-related listener leaks along such paths. Next, we define a static detection algorithm targeting these patterns. The analysis considers valid interprocedural control-flow paths in a callback method and its transitive callees, in order to detect operations that add or remove listeners. Sequences of callbacks are then analyzed for possible listener leaks. Our evaluation considers the detection of GUI-related energy-drain defects reported in prior work, as well as new defects not discovered by prior approaches. In summary, the detection is very effective and precise, suggesting that the proposed analysis is suitable for practical use in static checking tools for Android.
Shengqian Yang, Atanas Rountev
CC2
2015 Static Control-Flow Analysis of User-Driven Callbacks in Android Applications
abstract
Android software presents many challenges for static program analysis. In this work we focus on the fundamental problem of static control-flow analysis. Traditional analyses cannot be directly applied to Android because the applications are framework-based and event-driven. We consider user-event-driven components and the related sequences of callbacks from the Android framework to the application code, both for lifecycle callbacks and for event handler callbacks. We propose a program representation that captures such callback sequences. This representation is built using context-sensitive static analysis of callback methods. The analysis performs graph reachability by traversing context-compatible interprocedural control-flow paths and identifying statements that may trigger callbacks, as well as paths that avoid such statements. We also develop a client analysis that builds a static model of the application's GUI. Experimental evaluation shows that this context-sensitive approach leads to substantial precision improvements, while having practical cost.
Shengqian Yang, Dacong Yan, Atanas Rountev
ICSE (1)1
2015 Static Window Transition Graphs for Android (T)
abstract
This work develops a static analysis to create a model of the behavior of an Android application's GUI. We propose the window transition graph (WTG), a model representing the possible GUI window sequences and their associated events and callbacks. A key component and contribution of our work is the careful modeling of the stack of currently-active windows, the changes to this stack, and the effects of callbacks related to these changes. To the best of our knowledge, this is the first detailed study of this important static analysis problem for Android. We develop novel analysis algorithms for WTG construction and traversal, based on this modeling of the window stack. We also describe an application of the WTG for GUI test generation, using path traversals. The evaluation of the proposed algorithms indicates their effectiveness and practicality.
Shengqian Yang, Hailong Zhang 0006, Haowei Wu 0004, Dacong Yan, Atanas Rountev
ASE1
2014 LeakChecker: Practical Static Memory Leak Detection for Managed Languages
Dacong Yan, Guoqing Harry Xu, Shengqian Yang, Atanas Rountev
CGO3
2013 Systematic testing for resource leaks in Android applications
abstract
The use of mobile devices and the complexity of their software continue to grow rapidly. This growth presents significant challenges for software correctness and performance. In addition to traditional defects, a key consideration are defects related to the limited resources available on these devices. Resource leaks in an application, due to improper management of resources, can lead to slowdowns, crashes, and negative user experience. Despite a large body of existing work on leak detection, testing for resource leaks remains a challenging problem. We propose a novel and comprehensive approach for systematic testing for resource leaks in Android software. Similar to existing testing techniques, the approach is based on a GUI model, but is focused specifically on coverage criteria aimed at resource leak defects. These criteria are based on neutral cycles: sequences of GUI events that should have a “neutral” effect and should not lead to increases in resource usage. Several important categories of neutral cycles are considered in the proposed test coverage criteria. Experimental evaluation and case studies were performed on eight Android applications. The approach exposed 18 resource leak defects, 12 of which were previously unknown. These results provide motivation for future work on analysis, testing, and prevention of resource leaks in Android software.
Dacong Yan, Shengqian Yang, Atanas Rountev
ISSRE2
2010 BPGen: an automated breakpoint generator for debugging
abstract
During debugging processes, breakpoints are frequently used to inspect and understand runtime behaviors of programs. Although most development environments offer convenient breakpoint facilities, the use of these environments usually requires considerable human efforts in order to generate useful breakpoints. Before setting breakpoints or typing breakpoint conditions, developers usually have to make some judgements and hypotheses on the basis of their observations and experience. To reduce this kind of efforts we present a tool, named BPGen, to automatically generate breakpoints for debugging. BPGen uses three well-known dynamic fault localization techniques in tandem to identify suspicious program statements and states, through which both conditional and unconditional breakpoints are generated. BPGen is implemented as an Eclipse plugin for supplementing the existing Eclipse JDT debugger.
Dacong Yan, Jianjun Zhao 0001, Yuting Chen 0001, Shengqian Yang
ICSE (2)5