ABSTRACT
This paper presents a strategy for structural testing of object-oriented software systems with possibly unknown clients and unknown information about invoked methods. By exploiting the combined points-to and escape analysis developed for compiler optimization, our testing paradigm does not require a whole program representation to be in memory simultaneously for testing analysis. Potential effects from outside the component under test are easily identified and reported to the tester. As client and server methods become known, the graph representation of object relationships is easily extended, allowing the computation of test tuples to be performed in a demand-driven manner, without requiring unnecessary computation of test tuples based on predictions of potential clients.
References
- 1.L. O. Andersen. Program Analysis and Specialization for theC Programming Language. PhD thesis, DIKU, University of Copenhagen, 1994.Google Scholar
- 2.D. F. Bacon and P. F. Sweeney. Fast Static Analysis of C++ Virtual Function Calls. In OOPSLA, 1996. Google Scholar
Digital Library
- 3.B. Blanchet. Escape Analysis: Correctness proof, implementation and experimental results. In POPL, 1998. Google Scholar
Digital Library
- 4.B. Blanchet. Escape analysis for object-oriented languages, application to Java. In OOPSLA, 1999. Google Scholar
Digital Library
- 5.J. Bodga and U. Hoelzle. Removing unnecessary synchronization in Java. In OOPSLA, 1999. Google Scholar
Digital Library
- 6.R. Chatterjee and B. G. Ryder. Data- ow-based Testing of Object-Oriented Libraries. Technical Report 382, Rutgers U., 1999.Google Scholar
- 7.R. Chatterjee, B. G. Ryder, and W. A. Landi. Relevant Context Inference. In POPL, 1999. Google Scholar
Digital Library
- 8.J. Choi, M. Burke, and P. Carini. E~cient ow-sensitive interprocedural computation of pointer-induced aliases and side e~ects. In POPL, 1993. Google Scholar
Digital Library
- 9.J. Choi, M. Gupta, M. Serrano, V. Sreedhar, and S. Midki~. Escape analysis for Java. In OOPSLA, 1999. Google Scholar
Digital Library
- 10.A. Deutsch. On the Complexity of Escape Analysis. In POPL, 1997. Google Scholar
Digital Library
- 11.A. Diwan, J. E. B. Moss, and K. McKinley. Simple and E~ective Analysis of Statically-Typed Object-Oriented Programs. In OOPSLA, 1996. Google Scholar
Digital Library
- 12.M. Emami, R. Ghiya, and L. Hendren. Context-Sensitive Interprocedural Points-to Analysis in the Presence of Function Pointers. In PLDI, 1994. Google Scholar
Digital Library
- 13.B. Goldberg and Y. Park. Escape Analysis on Lists. In PLDI, 1992. Google Scholar
Digital Library
- 14.M. J. Harrold and G. Rothermel. Performing Data Flow Testing on Classes. In FSE, 1994. Google Scholar
Digital Library
- 15.M.J. Harrold and M.L. So~a. Interprocedural Data Flow Testing. In TAV, 1989. Google Scholar
Digital Library
- 16.M. Hind, M. Burke, P. Carini, and J.D. Choi. Interprocedural pointer alias analysis. ACM Trans. on Prog. Lang. and Sys., 1999. Google Scholar
Digital Library
- 17.W. Landi and B. G. Ryder. A Safe Approximation Algorithm for Interprocedural Pointer Aliasing. In PLDI, 1992. Google Scholar
Digital Library
- 18.L. Larsen and M. J. Harrold. Slicing Object-Oriented Software. In ICSE, 1996. Google Scholar
Digital Library
- 19.D. Liang and M. J. Harrold. Slicing Objects Using System Dependence Graphs. In Inter. Conf. on Soft. Maint., 1998. Google Scholar
Digital Library
- 20.D. Liang and M. J. Harrold. E~cient Points-to Analysis for Whole-Program Analysis. In FSE, 1999. Google Scholar
Digital Library
- 21.H. Pande, W. Landi, and B.G. Ryder. Interprocedural Def-Use Associations in C Programs. IEEE Trans. on Soft. Eng., 1994. Google Scholar
Digital Library
- 22.M. Shapiro and S. Horwitz. Fast and Accurate Flow-Insensitive Points-To Analysis. In POPL, 1997. Google Scholar
Digital Library
- 23.S. Sinha and M. J. Harrold. Criteria for Testing Exception-Handling Constructs for Java Programs. In Inter. Conf. on Soft. Maint., 1999. Google Scholar
Digital Library
- 24.A. L. Souter and L. L. Pollock. Inter-class Def-Use Analysis with Partial Class Representations. In PASTE, 1999. Google Scholar
Digital Library
- 25.B. Steensgaard. Points-to analysis in almost linear time. In POPL, 1996. Google Scholar
Digital Library
- 26.Sun Microsystems. Java Testing Tool. www.sun.com/workshop/testingtools/index.html, 1998.Google Scholar
- 27.C. Szyperski. Component Software Beyond Object-Oriented Programming. Addison-Wesley, 1998. Google Scholar
Digital Library
- 28.A. V.Aho, R. Sethi, and J. D. Ullman. Compilers Principles, Techniques, and Tools. Addison Wesley, 1986. Google Scholar
Digital Library
- 29.J. Whaley and M. Rinard. Compositional Pointer and Escape Analysis for Java Programs. In OOPSLA, 1999. Google Scholar
Digital Library
- 30.R. P. Wilson and M. S. Lam. E~cient Context-Sensitive Pointer Analysis for C Programs. In PLDI, 1995. Google Scholar
Digital Library
- 31.S. H. Yong, S. Horwitz, and T. Reps. Pointer Analysis for Programs with Structures and Casting. In PLDI, 1999. Google Scholar
Digital Library
Index Terms
OMEN: A strategy for testing object-oriented software






Comments