Abstract
This work defines several control-flow coverage criteria for testing the interactions among a set of collaborating objects. The criteria are based on UML sequence diagrams that are reverse-engineered from the code under test. The sequences of messages in the diagrams are used to define the coverage goals for the family of criteria, in a manner that generalizes traditional testing techniques such as branch coverage and path coverage. We also describe a run-time analysis that gathers coverage measurements for each criterion. To compare the criteria, we propose an approach that estimates the testing effort required to satisfy each criterion, using analysis of the complexity of the underlying sequence diagrams. The criteria were investigated experimentally on a set of realistic Java components. The results of this study compare different approaches for testing of object interactions and provide insights for testers and for builders of test coverage tools.
Chapter PDF
We’re sorry, something doesn't seem to be working properly.
Please try refreshing the page. If that doesn't work, please contact support so we can address the problem.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Binder, R.: Testing object-oriented software: a survey. Journal of Software Testing, Verification and Reliability 6, 125–252 (1996)
Perry, D., Kaiser, G.: Adequate testing and object-oriented programming. Journal of Object-Oriented Programming 2, 13–19 (1990)
Binder, R.: Testing Object-Oriented Systems: Models, Patterns, and Tools. Addison-Wesley, Reading (1999)
Abdurazik, A., Offutt, J.: Using UML collaboration diagrams for static checking and test generation. In: International Conference on the Unified Modeling Language, pp. 383–395 (2000)
Briand, L., Labiche, Y.: A UML-based approach to system testing. Journal of Software and Systems Modeling 1 (2002)
Fraikin, F., Leonhardt, T.: SeDiTeC—testing based on sequence diagrams. In: International Conference on Automated Software Engineering, pp. 261–266 (2002)
Wu, Y., Chen, M.H., Offutt, J.: UML-based integration testing for component-based software. In: International Conference on COTS-Based Software Systems (2003)
Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language User Guide. Addison-Wesley, Reading (1999)
Fowler, M.: UML Distilled, 3rd edn. Addison-Wesley, Reading (2003)
Larman, C.: Applying UML and Patterns, 2nd edn. Prentice Hall, Englewood Cliffs (2002)
Kollman, R., Gogolla, M.: Capturing dynamic program behavior with UML collaboration diagrams. In: European Conference on Software Maintenance and Reengineering, pp. 58–67 (2001)
Tonella, P., Potrich, A.: Reverse engineering of the interaction diagrams from C++ code. In: IEEE International Conference on Software Maintenance, pp. 159–168 (2003)
Rountev, A., Volgin, O., Reddoch, M.: Control flow analysis for reverse engineering of sequence diagrams. Technical Report OSU-CISRC-3/04-TR12, Ohio State University (2004)
Rountev, A., Connell, B.H.: Object naming analysis for reverse-engineered sequence diagrams. In: International Conference on Software Engineering. (2005) to appear.
Jorgenson, P., Erickson, C.: Object-oriented integration testing. Communications of the ACM 37, 30–38 (1994)
Basanieri, F., Bertolino, A.: A practical approach to UML-based derivation of integration tests. In: 4th International Quality Week Europe (2000)
Milanova, A., Rountev, A., Ryder, B.G.: Parameterized object sensitivity for points-to analysis for Java. ACM Transactions on Software Engineering and Methodology (2004) (to appear)
Bodik, R., Gupta, R., Soffa, M.L.: Refining data flow information using infeasible paths. In: ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 361–377 (1997)
Rountev, A., Kagan, S., Sawin, J.: Coverage criteria for testing of object interactions in sequence diagrams. Technical Report OSU-CISRC-12/04-TR68, Ohio State University (2004)
Ball, T., Larus, J.: Efficient path profiling. In: IEEE/ACM International Symposium on Microarchitecture, pp. 46–57 (1996)
Rountev, A., Milanova, A., Ryder, B.G.: Points-to analysis for Java based on annotated constraints. In: Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 43–55 (2001)
Rountev, A., Kagan, S., Gibas, M.: Static and dynamic analysis of call chains in Java. In: ACM SIGSOFT International Symposium on Software Testing and Analysis, pp. 1–11 (2004)
Sharir, M., Pnueli, A.: Two approaches to interprocedural data flow analysis. In: Muchnick, S., Jones, N. (eds.) Program Flow Analysis: Theory and Applications, pp. 189–234. Prentice Hall, Englewood Cliffs (1981)
Ammons, G., Ball, T., Larus, J.: Exploiting hardware performance counters with flow and context sensitive profiling. In: ACM SIGSOFT Conference on Programming Language Design and Implementation, pp. 85–96 (1997)
Melski, D., Reps, T.: Interprocedural path profiling. In: Jähnichen, S. (ed.) CC 1999. LNCS, vol. 1575, pp. 47–63. Springer, Heidelberg (1999)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Rountev, A., Kagan, S., Sawin, J. (2005). Coverage Criteria for Testing of Object Interactions in Sequence Diagrams. In: Cerioli, M. (eds) Fundamental Approaches to Software Engineering. FASE 2005. Lecture Notes in Computer Science, vol 3442. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-31984-9_22
Download citation
DOI: https://doi.org/10.1007/978-3-540-31984-9_22
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25420-1
Online ISBN: 978-3-540-31984-9
eBook Packages: Computer ScienceComputer Science (R0)