Selecting Software Test Data Using Data Flow Information
IEEE Transactions on Software Engineering
The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
An Applicable Family of Data Flow Testing Criteria
IEEE Transactions on Software Engineering
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dynamic slicing in the presence of unconstrained pointers
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Data flow-based test adequacy analysis for languages with pointers
TAV4 Proceedings of the symposium on Testing, analysis, and verification
A safe approximate algorithm for interprocedural aliasing
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Interprocedural modification side effect analysis with pointer aliasing
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Application of the pointer state subgraph to static program slicing
Journal of Systems and Software
Effective whole-program analysis in the presence of pointers
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
Reuse-driven interprocedural slicing
Proceedings of the 20th international conference on Software engineering
System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow
Proceedings of the 21st international conference on Software engineering
Efficient points-to analysis for whole-program analysis
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
The Effects of the Precision of Pointer Analysis
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
A static measure of a subset of intra-procedural data flow testing coverage based on node coverage
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
Effects of Different Flow Insensitive Points-to Analyses on DEF/USE Sets
CSMR '99 Proceedings of the Third European Conference on Software Maintenance and Reengineering
WPC '97 Proceedings of the 5th International Workshop on Program Comprehension (WPC '97)
Reuse-Driven Interprocedural Slicing in the Presence of Pointers and Recursions
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Effects of Pointers on Data Dependences
IWPC '01 Proceedings of the 9th International Workshop on Program Comprehension
Slicing, Chopping, and Path Conditions with Barriers
Software Quality Control
Analysis and Visualization of Predicate Dependence on Formal Parameters and Global Variables
IEEE Transactions on Software Engineering
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
An empirical study of static program slice size
ACM Transactions on Software Engineering and Methodology (TOSEM)
A vocabulary of program slicing-based techniques
ACM Computing Surveys (CSUR)
Static detection of unsafe component loadings
CC'12 Proceedings of the 21st international conference on Compiler Construction
Topology analysis of software dependencies
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
Program slicing is useful for assisting with many software-maintenance tasks. The presence and frequent usage of pointers in languages such as C causes complex data dependences. To function effectively on such programs, slicing techniques must account for pointer-induced data dependences. Existing slicing techniques do not distinguish data dependences based on their types. This paper presents a new slicing technique, in which slices are computed based on types of data dependences. This new slicing technique offers several benefits and can be exploited in different ways, such as identifying subtle data dependences for debugging, computing reduced-size slices quickly for complex programs, and performing incremental slicing. This paper describes an algorithm for incremental slicing that increases the scope of a slice in steps, by incorporating different types of data dependences at each step. The paper also presents empirical results to illustrate the performance of the technique in practice. The results illustrate that incremental slices can be significantly smaller than complete slices. Finally, the paper presents a case study that explores the usefulness of incremental slicing for debugging.