Learn More
Program slicing is a technique to extract program parts with respect to some special computation. Since Weiser first proposed the notion of slicing in 1979, hundreds of papers have been presented in this area. Tens of variants of slicing have been studied, as well as algorithms to compute them. Different notions of slicing have different properties and(More)
Received (Day Month Year) Revised (Day Month Year) Accepted (Day Month Year) Cluster test selection is a new successful approach to select a subset of the existing test suite in regression testing. In this paper, program slicing is introduced to improve the efficiency and effectiveness of cluster test selection techniques. A static slice is computed on the(More)
Program slicing is an important program analysis technique and now has been used in many fields of software engineering. However, most existing program slicing methods focus on static programming languages such as C/C++ and Java, and methods on dynamic languages like Python are rarely seen. Python, a typical dynamic object-oriented language, has been more(More)
Data dependences are of critical importance in many software engineering activities. Due to the dynamic allocation mechanism, it is still difficult to extract them precisely for heap locations. This paper firstly proposes two notion of interstatement must aliases and then exploits these aliases in improving data depend-ence analysis for heap locations. We(More)
Regression testing is an expensive and frequently executed activity, which is often performed in a resource constrained execution environment. As resource-aware test suite optimization problem can be reduced to the 0-1 knapsack problem, which can be efficiently approximated with multiple algorithms. This paper proposes a new resource-aware test suite(More)
Based on land ecological classification of the source regions of the Yangtze and Yellow Rivers and field investigation, two phases of TM remote sensing data obtained in 1986 and 2000 were compared. From spatial variations and type transformation trends, the spatial changes and evolutional patterns of land ecosystem in the source regions of the two rivers(More)
With the keyword synchronized, Java provides a simple but often over-used synchronization mechanism. Many programmers tend to use a big synchronized section to protect a large block of statements even if many of them are unnecessarily synchronized. Such coarse-gained synchronizations may increase lock contention and thereby decrease the performance of a(More)
Lots of efforts have yet been devoted to the detection of memory leaks. However, very few work concerns on the problem of memory leak fixing. In this paper, we propose a dynamic approach for the weak reference based memory leak fixing. The approach can automatically infer the weakenable references in a program, rank them and report them to the user. The(More)