10.1145/347324.348871acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedings
Article

OMEN: A strategy for testing object-oriented software

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. 1.L. O. Andersen. Program Analysis and Specialization for theC Programming Language. PhD thesis, DIKU, University of Copenhagen, 1994.Google ScholarGoogle Scholar
  2. 2.D. F. Bacon and P. F. Sweeney. Fast Static Analysis of C++ Virtual Function Calls. In OOPSLA, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.B. Blanchet. Escape Analysis: Correctness proof, implementation and experimental results. In POPL, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.B. Blanchet. Escape analysis for object-oriented languages, application to Java. In OOPSLA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.J. Bodga and U. Hoelzle. Removing unnecessary synchronization in Java. In OOPSLA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.R. Chatterjee and B. G. Ryder. Data- ow-based Testing of Object-Oriented Libraries. Technical Report 382, Rutgers U., 1999.Google ScholarGoogle Scholar
  7. 7.R. Chatterjee, B. G. Ryder, and W. A. Landi. Relevant Context Inference. In POPL, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.J. Choi, M. Gupta, M. Serrano, V. Sreedhar, and S. Midki~. Escape analysis for Java. In OOPSLA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.A. Deutsch. On the Complexity of Escape Analysis. In POPL, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.M. Emami, R. Ghiya, and L. Hendren. Context-Sensitive Interprocedural Points-to Analysis in the Presence of Function Pointers. In PLDI, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.B. Goldberg and Y. Park. Escape Analysis on Lists. In PLDI, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.M. J. Harrold and G. Rothermel. Performing Data Flow Testing on Classes. In FSE, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15.M.J. Harrold and M.L. So~a. Interprocedural Data Flow Testing. In TAV, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.M. Hind, M. Burke, P. Carini, and J.D. Choi. Interprocedural pointer alias analysis. ACM Trans. on Prog. Lang. and Sys., 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17.W. Landi and B. G. Ryder. A Safe Approximation Algorithm for Interprocedural Pointer Aliasing. In PLDI, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.L. Larsen and M. J. Harrold. Slicing Object-Oriented Software. In ICSE, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.D. Liang and M. J. Harrold. Slicing Objects Using System Dependence Graphs. In Inter. Conf. on Soft. Maint., 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20.D. Liang and M. J. Harrold. E~cient Points-to Analysis for Whole-Program Analysis. In FSE, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.H. Pande, W. Landi, and B.G. Ryder. Interprocedural Def-Use Associations in C Programs. IEEE Trans. on Soft. Eng., 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.M. Shapiro and S. Horwitz. Fast and Accurate Flow-Insensitive Points-To Analysis. In POPL, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.S. Sinha and M. J. Harrold. Criteria for Testing Exception-Handling Constructs for Java Programs. In Inter. Conf. on Soft. Maint., 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24.A. L. Souter and L. L. Pollock. Inter-class Def-Use Analysis with Partial Class Representations. In PASTE, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25.B. Steensgaard. Points-to analysis in almost linear time. In POPL, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26.Sun Microsystems. Java Testing Tool. www.sun.com/workshop/testingtools/index.html, 1998.Google ScholarGoogle Scholar
  27. 27.C. Szyperski. Component Software Beyond Object-Oriented Programming. Addison-Wesley, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 28.A. V.Aho, R. Sethi, and J. D. Ullman. Compilers Principles, Techniques, and Tools. Addison Wesley, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29.J. Whaley and M. Rinard. Compositional Pointer and Escape Analysis for Java Programs. In OOPSLA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 30.R. P. Wilson and M. S. Lam. E~cient Context-Sensitive Pointer Analysis for C Programs. In PLDI, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 31.S. H. Yong, S. Horwitz, and T. Reps. Pointer Analysis for Programs with Structures and Casting. In PLDI, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. OMEN: A strategy for testing object-oriented software

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!