Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Donglin Liang is active.

Publication


Featured researches published by Donglin Liang.


conference on object-oriented programming systems, languages, and applications | 2001

Regression test selection for Java software

Mary Jean Harrold; James A. Jones; Tongyu Li; Donglin Liang; Alessandro Orso; Maikel Pennings; Saurabh Sinha; S. Alexander Spoon; Ashish Gujarathi

Regression testing is applied to modified software to provide confidence that the changed parts behave as intended and that the unchanged parts have not been adversely affected by the modifications. To reduce the cost of regression testing, test cases are selected from the test suite that was used to test the original version of the software---this process is called regression test selection. A safe regression-test-selection algorithm selects every test case in the test suite that may reveal a fault in the modified software. Safe regression-test-selection technique that, based on the use of a suitable representation, handles the features of the Java language. Unlike other safe regression test selection techniques, the presented technique also handles incomplete programs. The technique can thus be safely applied in the (very common) case of Java software that uses external libraries of components; the analysis of the external code is note required for the technique to select test cases for such software. The paper also describes RETEST, a regression-test-selection algorithm can be effective in reducing the size of the test suite.


international conference on software maintenance | 1998

Slicing objects using system dependence graphs

Donglin Liang; Mary Jean Harrold

We present an SDG for object oriented software that is more precise than previous representations and is more efficient to construct than previous approaches. The new SDG distinguishes data members for different objects, provides a way to represent object parameters, represents the effects of polymorphism on parameters and parameter bindings, represents incomplete classes efficiently, and provides a way to represent class libraries. Based on this system dependence graph, we introduce the concept of object slicing and an algorithm to implement this concept. Object slicing enables the user to inspect the statements in the slice, object-by-object, and is helpful for debugging and impact analysis.


foundations of software engineering | 1999

Efficient points-to analysis for whole-program analysis

Donglin Liang; Mary Jean Harrold

To function on programs written in languages such as C that make extensive use of pointers, automated software engineering tools require safe alias information. Existing alias-analysis techniques that are sufficiently efficient for analysis on large software systems may provide alias information that is too imprecise for tools that use it: the imprecision of the alias information may (1) reduce the precision of the information provided by the tools and (2) increase the cost of the tools. This paper presents a flow-insensitive, context-sensitive points-to analysis algorithm that computes alias information that is almost as precise as that computed by Andersens algorithm — the most precise flow- and context-insensitive algorithm — and almost as efficient as Steensgaards algorithm — the most efficient flow- and context-insensitive algorithm. Our empirical studies show that our algorithm scales to large programs better than Andersens algorithm and show that flow-insensitive alias analysis algorithms, such as our algorithm and Andersens algorithm, can compute alias information that is close in precision to that computed by the more expensive flow- and context-sensitive alias analysis algorithms.


international symposium on software testing and analysis | 2002

Gamma system: continuous evolution of software after deployment

Alessandro Orso; Donglin Liang; Mary Jean Harrold; Richard J. Lipton

In this paper, we present the GAMMA system, which facilitates remote monitoring of deployed software using a new approach that exploits the opportunities presented by a software product being used by many users connected through a network. GAMMA splits monitoring tasks across different instances of the software, so that partial information can be collected from different users by means of light-weight instrumentation, and integrated to gather the overall monitoring information. This system enables software producers (1) to perform continuous, minimally intrusive analyses of their softwares behavior, and (2) to use the information thus gathered to improve and evolve their software.


workshop on program analysis for software tools and engineering | 2001

Extending and evaluating flow-insenstitive and context-insensitive points-to analyses for Java

Donglin Liang; Maikel Pennings; Mary Jean Harrold

This paper presents extensions to Steensgaards and Andersens algorithms to handle Java features. Without careful consideration, the handling of these features may affect the correctness, precision, and efficiency of these algorithms. The paper also presents the results of empirical studies. These studies compare the precision and efficiency of these two algorithms and evaluate the effectiveness of handling Java features using alternative approaches. The studies also evaluate the impact of the points-to information provided by these two algorithms on client analyses that use the information.


static analysis symposium | 2001

Efficient Computation of Parameterized Pointer Information for Interprocedural Analyses

Donglin Liang; Mary Jean Harrold

This paper presents a modular algorithm that efficiently computes parameterized pointer information, in which symbolic names are introduced to identify memory locations whose addresses may be passed into a procedure. Parameterized pointer information can be used by a client program analysis to compute parameterized summary information for a procedure.T he client can then instantiate such information at each specific callsite by binding the symbolic names.Comp ared to non-parameterized pointer information, in which memory locations are identified using the same name throughout a program, parameterized pointer information lets the client reduce the spurious information that is propagated across procedure boundaries.Suc h reduction will improve not only the precision, but also the efficiency of the client.T he paper also presents a set of empirical studies.Th e studies show that (1) the algorithm is efficient; and (2) using parameterized pointer information may significantly improve the precision and efficiency of program analyses.


international conference on software maintenance | 1999

Reuse-driven interprocedural slicing in the presence of pointers and recursion

Donglin Liang; Mary Jean Harrold

Program slicing, a technique to compute the subset of program statements that can affect the value of a program variable at a specific program point, is widely used in tools to support maintenance activities. To be useful for supporting these activities, a slicing technique must be sufficiently precise and efficient. Harrold and Ci (1998) proposed a method for improving the efficiency of slicing by reusing slicing information for subsequent slicing. This paper presents an interprocedural slicing algorithm that improves the efficiency and precision of Harrold and Cis algorithm for programs with pointer variables and recursion. Our empirical results show that our improvements can effectively achieve more reuse in slice computation, for programs with pointers, and can significantly reduce the sizes of slices, for programs with recursion.


international symposium on software testing and analysis | 2002

Evaluating the precision of static reference analysis using profiling

Donglin Liang; Maikel Pennings; Mary Jean Harrold

Program analyses and optimizations of Java programs require reference information that determines the instances that may be accessed through dereferences. Reference information can be computed using reference analysis. This paper presents a set of studies that evaluate the precision of two existing approaches for identifying instances and one approach for computing reference information in a reference analysis. The studies use dynamic reference information collected during run-time as a lower bound approximation to the precise reference information. The studies measure the precision of an existing approach by comparing the information computed using the approach with the lower bound approximation. The paper also presents case studies that attempt to identify the cases under which an existing approach is not effective. The presented studies provide information that may guide the usage of existing reference-analysis techniques and the development of new reference analysis techniques.


international conference on software engineering | 2000

Light-weight context recovery for efficient and accurate program analyses

Donglin Liang; Mary Jean Harrold

To compute accurate information efficiently for programs that use pointer variables, a program analysis must account for the fact that a procedure may access different sets of memory locations when the procedure is invoked under different callsites. This paper presents light-weight context recovery, a technique that can efficiently determine whether a memory location is accessed by a procedure under a specific callsite. The paper also presents a technique that uses this information to improve the precision and efficiency of program analyses. Our empirical studies show that (1) light-weight context recovery can be quite precise in identifying the memory locations accessed by a procedure under a specific callsite and (2) distinguishing memory locations accessed by a procedure under different callsites can significantly improve the precision and the efficiency of program analyses on programs that use pointer variables.


ACM Transactions on Software Engineering and Methodology | 2002

Equivalence analysis and its application in improving the efficiency of program slicing

Donglin Liang; Mary Jean Harrold

Existing methods for handling pointer variables during dataflow analyses can make such analyses inefficient in both time and space because the data-flow analyses must store and propagate large sets of data facts that are introduced by dereferences of pointer variables. This article presents equivalence analysis, a general technique to improve the efficiency of data-flow analyses in the presence of pointer variables. The technique identifies equivalence relations among the memory locations accessed by a procedure, and ensures that two equivalent memory locations share the same set of data facts in a procedure and in the procedures that are called by that procedure. Thus, a data-flow analysis needs to compute the data-flow information for only a representative memory location in an equivalence class. The data-flow information for other memory locations in the equivalence class can be derived from that of the representative memory location. The article also shows the extension to an interprocedural slicing algorithm that uses equivalence analysis to improve the efficiency of the algorithm. Our empirical studies suggest that equivalence analysis may effectively improve the efficiency of many data-flow analyses.

Collaboration


Dive into the Donglin Liang's collaboration.

Top Co-Authors

Avatar

Mary Jean Harrold

Georgia Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Alessandro Orso

Georgia Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Maikel Pennings

Georgia Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

James A. Jones

University of California

View shared research outputs
Top Co-Authors

Avatar

Richard J. Lipton

Georgia Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

S. Alexander Spoon

Georgia Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Tongyu Li

Georgia Institute of Technology

View shared research outputs
Researchain Logo
Decentralizing Knowledge