Abstract
A large number of test coverage metrics have been proposed in the context of unit and system testing of object-oriented programs. However, structural coverage metrics for integration testing have scarcely been reported. On the other hand, interface bugs are known to be one of the most insidious. In this context, we propose a suite of integration test coverage metrics based on the coverage of data and control dependency edges of the JSysDG (Java System Dependency Graph). We also define a metric that additionally uses the state machine models of the given classes to be integrated. We present our experimental results and a comparison of our metrics with related metrics.
Similar content being viewed by others
References
Abdurazik A, Offutt J (2006) Coupling-based class integration and test order. In: Proceedings of the 2006 international workshop on automation of software test AST’06, Shanghai China, pp 50–56
Alexander RT, Offutt J, Stefik A (2010) Testing coupling relationships in object-oriented programs. Softw Test Verif Reliab 20(2010):291–327
Ali S, Briand LC, Jaffar-ur Rehman M, Asghar H, Iqbal MZZ, Nadeem A (2007) A state-based approach to integration testing based on UML models. Inf Softw Technol 49(2007):1087–1106
Baldini F, Giacomo Bucci LG, Vicario E (2007) Test coverage analysis for object oriented programs, structural testing through aspect oriented instrumentation. In: ICSOFT’07
Ball T (2004) A theory of predicate-complete test coverage and generation. Technical report MSR-TR-2004-28, Microsoft Research
Binder RV (1999) Testing object-oriented systems: models, patterns, and tools. Addison-Wesley Object Technology, Boston
Briand L, Labiche Y (2001) A UML-based approach to system testing. In: In the 4th international conference of the UML, LNCS, Toronto, Canada 2185, pp 194–208
Cai X, Lyu MR (2005) The effect of code coverage on fault detection under different testing profiles. International workshop on advances in model-based testing, pp 1–7
Choi JD, Grove D, Hind M, Sarkar V (1999) Efficient and precise modeling of exceptions for the analysis of Java programs. In: Proceedings of the ACM SIGPLAN-SIGSOFT workshop on program analysis for software tools and engineering (PASTE99), Toulouse, France, pp 21–31
Fraser G, Arcuri A (2012) Whole test suite generation. IEEE Trans Softw Eng 39(2):276–291
Friske M, Schlingloff BH (2007) Improving test coverage for UML state machines using transition instrumentation. In: Proceedinds of the 26th international conference on computer safety, reliability, and security (SAFECOMP’07), pp 301–314
GitHub Iluwatar. https://github.com/iluwatar/java-design-patterns
Gligoric M, Groce A, Zhang C, Sharma R, Alipour MA, Marinov D (2013) Comparing non-adequate test suites using coverage criteria. In: ISSTA13
Harel D (1987) Statecharts: a visual formalism for complex systems. Sci Comput Program 8(3):231–274
Harrold MJ, Rothermel G (1996) A coherent family of analyzable graphical representations for object-oriented software. Department of Computer and Information Science, The Ohio State University, Technical Report OSU-CISRC-11/96-TR60
Hartmann J, Imoberdorf C, Meisinger M (2000) UML-based integration testing. In: ACM SIGSOFT software engineering notes, proceedings of international symposium on software testing and analysis, vol 25
Hong HS, Kim YG, Cha SD, Bae DH, Ural H (2000) A test sequence selection method for statecharts. Softw Test Verif Reliab 10(4):203–227
Jaffar-ur Rehman M, Jabeen F, Bertolino A, Polini A (2007) Testing software components for integration: a survey of issues and techniques. Softw Test Verif Reliab 17(2007):95–133
Jana S, Kang Y, Roth S, Ray B (2016) Automatically detecting error handling bugs using error specifications. In: 25th USENIX security symposium
Larsen L, Harrold M (1996) Slicing object oriented software. In: 18th international conference of software engineering, pp 495–505
Linnenkugel U, Mullerburg M (1990) Test data selection criteria for (software) integration testing. In: First international conference on systems integration, systems integration conference, Morristown, New Jersey, pp 709–717
Mall R (2014) Fundamentals of software engineering, 4th edn. PHI Learning Private Limited, New Delhi
Mall R, Najumudheen ESF, Samanta D (2011) Test coverage analysis based on an object-oriented program model. J Softw Maint Evol Res Pract 23(2011):465–493
muJava (2016). https://cs.gmu.edu/~offutt/mujava/
Mukherjee D, Shekhar D, Mall R (2018) Proposal for a structural integration test coverage metric for object-oriented programs. ACM SIGSOFT Softw Eng Notes 43(1):1–4
Najumudheen ESF, Mall R, Samanta D (2019) Modeling of coverage analysis of programs with exception handling. In: ISEC 2019, Pune
OMG Unified Modeling Language (OMG UML) (2015). http://www.omg.org/spec/UML/2.5/
Orso A (1998) Integration testing of object-oriented software. Ph.D Thesis, Dipartimento di Elettronica e Informazione Politecnico di Milano, Milano, Italy. https://www.cc.gatech.edu/home/orso/papers/orso.thesis.pdf
Papailiopoulou V, Rajan A, Parissis I (2011) Structural test coverage criteria for integration testing of LUSTRE/SCADE programs. In: International workshop on formal methods for industrial critical systems, formal methods for industrial critical systems (FMICS 2011), pp 85–101
PlantUML (2018). http://plantuml.com/
Rapps S, Weyuker EJ (1982) Data flow analysis techniques for test data selection. In: Proceedings of the sixth international conference of software engineering, Tokyo, Japan, pp 272–277
Sarma M, Mall R (2009) Automatic generation of test specifications for coverage of system state transitions. Inf Softw Technol 51(2009):418–432
Sinha S, Harrold MJ (1999) Criteria for testing exception-handling constructs in Java programs. In: Proceedings of the IEEE international conference on software maintenance (ICSM99). Oxford, pp 265–274
Sinha S, Harrold MJ (2000) Analysis and testing of programs with exception handling constructs. IEEE Trans Softw Eng 26(9):849–871
Sinha S, Orso A, Harrold MJ (2004) Automated support for development, maintenance, and testing in presence of implicit control flow. In: Proceedings of the 26th international conference on software engineering (ICSE04)
Walkinshaw N, Roper M, Wood M (2003) The Java system dependence graph. In: Proceedings of 3rd IEEE international workshop on source code analysis and manipulation, pp 859–879
Wu Ye, Chen JMei-Hwa, Offutt Jeff (2003) UML-based integration testing for component-based software. In: Proceedings of the second international conference on COTS-based software systems (ICCBSS ’03), pp 251–260
Acknowledgements
Debashis Mukherjee wishes to acknowledge the research fellowship provided by MHRD, Govt. of India.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Mukherjee, D., Mall, R. An integration test coverage metric for Java programs. Int J Syst Assur Eng Manag 10, 576–601 (2019). https://doi.org/10.1007/s13198-019-00787-9
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s13198-019-00787-9