The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
An extensible program representation for object-oriented software
ACM SIGPLAN Notices
Slicing object-oriented software
Proceedings of the 18th international conference on Software engineering
Efficient coverage testing using global dominator graphs
Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Testing object-oriented systems: models, patterns, and tools
Testing object-oriented systems: models, patterns, and tools
Selecting Regression Tests for Object-Oriented Software
ICSM '94 Proceedings of the International Conference on Software Maintenance
Slicing Objects Using System Dependence Graphs
ICSM '98 Proceedings of the International Conference on Software Maintenance
Data-flow graphs as an intermediate program form.
Data-flow graphs as an intermediate program form.
Fragment Class Analysis for Testing of Polymorphism in Java Software
IEEE Transactions on Software Engineering
Static and dynamic analysis of call chains in java
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Coverage testing of Java programs and components
Science of Computer Programming - Special issue on new software composition concepts
Constructing the Call Graph of a Program
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
Test coverage analysis is used to determine the extent to which different features of interest are exercised by a given test suite. For object-oriented programs, it involves determining the extent to which features such as inheritance, polymorphism, dynamic binding, etc. are exercised. As object-oriented coverage analysis using only source code or object code is difficult and inefficient, the source code is converted to a suitable intermediate representation for subsequent analysis. We propose a dependence graph-based representation for object-oriented programs, named Call-based Object-Oriented System Dependence Graph (COSDG). COSDG captures the important object-oriented features, provides details of method visibility in a derived class, and differentiates various calling contexts with different type of method call edges: simple, inherited, and polymorphic. We also propose an algorithm to construct COSDG incrementally. Though COSDG has been developed primarily to aid test coverage analysis, it can be used in a variety of other software engineering applications also.