TEST COVERAGE ANALYSIS FOR OBJECT ORIENTED PROGRAMS - Structural Testing through Aspect Oriented Instrumentation

Fabrizio Baldini, Giacomo Bucci, Leonardo Grassi, Enrico Vicario

Abstract

The introduction of Object Oriented Technologies in test centered processes has emphasized the importance of finding new methods for software verification. Testing metrics and practices, developed for structured programs, have to be adapted in order to address the prerogatives of object oriented programming. In this work, we introduce a new approach to structural coverage evaluation in the testing of OO software. Data flow paradigm is adopted and reinterpreted through the definition of a new type of structure, used to record def/use information for test critical class member variables. In the final part of this paper, we present a testing tool that employs this structure for code based coverage analysis of Java and C++ programs.

References

  1. Baudry, B. and Traon, Y. L. (2005). Measuring design testability of a uml class diagram. Information and Software Technology, 1(47).
  2. Beizer, B. (1990). Software testing techniques (2nd ed.). Van Nostrand Reinhold Co., New York, NY, USA.
  3. Binder, R. V. (1994). Design for testability in objectoriented systems. Commun. ACM, 37(9):87-101.
  4. Chen, Y., Qiu, W., Zhou, B., and Peng, C. (2004). An automatic test coverage analysis for systemc description using aspect-oriented programming. In Computer Supported Cooperative Work in Design. Proceedings. The 8th International Conference on, Vol. 2, pages 632 - 636.
  5. Cockburn, A. (1996). The interaction of social issues and software architecture. Commun. ACM, 39(10):40-46.
  6. Fowler, M. (2003). UML Distilled: A Brief Guide to the Standard Object Modeling Language. AddisonWesley Longman Publishing Co., Inc., Boston, MA, USA.
  7. Fujiwara, S., von Bochmann, G., Khendek, F., Amalou, M., and Ghedamsi, A. (1991). Test selection based on finite state models. IEEE Trans. Softw. Eng., 17(6):591- 603.
  8. Gallagher, L., Offutt, J., and Cincotta, A. (2006). Integration testing of object-oriented components using finite state machines: Research articles. Softw. Test. Verif.
  9. Reliab., 16(4):215-266.
  10. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
  11. Harrold, M. J. and Rothermel, G. (1994). Performing data flow testing on classes. In SIGSOFT 7894: Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering, pages 154-163. ACM Press.
  12. Heumann, J. (2001). Generating test cases from use cases. The Rational Edge. Retrieved January 20, 2007, from www.therationaledge.com.
  13. Holley, L. H. and Rosen, B. K. (1981). Qualified data flow problems. IEEE Trans. Softw. Eng., 7(1):60-78.
  14. Hong, H. S., Kwon, Y. R., and Cha, S. D. (1995). Testing of object-oriented programs based on finite state machines. In APSEC 7895: Proceedings of the Second Asia Pacific Software Engineering Conference, page 234. IEEE Computer Society.
  15. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C. V., Loingtier, J.-M., and Irwin, J. (1997). Aspect-oriented programming. In Proceedings of the 11th European Conference on Object-Oriented Programming, pages 220-242.
  16. Kuhn, T. and Thomann, O. (2006). Abstract syntax tree. Eclipse Corner Articles. Retrieved October 23, 2006, from http://www.eclipse.org/articles/index.php.
  17. Ntafos, S. C. (1988). A comparison of some structural testing strategies. IEEE Trans. Softw. Eng., 14(6):868- 874.
  18. Pande, H. D. and Landi, W. (1991). Interprocedural def-use associations in c programs. In TAV4: Proceedings of the symposium on Testing, analysis, and verification, pages 139-153, New York, NY, USA. ACM Press.
  19. Rajan, H. and Sullivan, K. (2005). Aspect language features for concern coverage profiling. In AOSD 7805: Proceedings of the 4th international conference on Aspect-oriented software development, pages 181- 191. ACM Press.
  20. Rapps, S. and Weyuker, E. J. (1985). Selecting software test data using data flow information. IEEE Trans. Softw. Eng., 11(4):367-375.
  21. Yannakakis, M. and Lee, D. (1995). Testing finite state machines: fault detection. In Selected papers of the 23rd annual ACM symposium on Theory of computing, pages 209-227. Academic Press, Inc.
Download


Paper Citation


in Harvard Style

Baldini F., Bucci G., Grassi L. and Vicario E. (2007). TEST COVERAGE ANALYSIS FOR OBJECT ORIENTED PROGRAMS - Structural Testing through Aspect Oriented Instrumentation . In Proceedings of the Second International Conference on Software and Data Technologies - Volume 1: ICSOFT, ISBN 978-989-8111-05-0, pages 55-60. DOI: 10.5220/0001329200550060


in Bibtex Style

@conference{icsoft07,
author={Fabrizio Baldini and Giacomo Bucci and Leonardo Grassi and Enrico Vicario},
title={TEST COVERAGE ANALYSIS FOR OBJECT ORIENTED PROGRAMS - Structural Testing through Aspect Oriented Instrumentation},
booktitle={Proceedings of the Second International Conference on Software and Data Technologies - Volume 1: ICSOFT,},
year={2007},
pages={55-60},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0001329200550060},
isbn={978-989-8111-05-0},
}


in EndNote Style

TY - CONF
JO - Proceedings of the Second International Conference on Software and Data Technologies - Volume 1: ICSOFT,
TI - TEST COVERAGE ANALYSIS FOR OBJECT ORIENTED PROGRAMS - Structural Testing through Aspect Oriented Instrumentation
SN - 978-989-8111-05-0
AU - Baldini F.
AU - Bucci G.
AU - Grassi L.
AU - Vicario E.
PY - 2007
SP - 55
EP - 60
DO - 10.5220/0001329200550060