Skip to main content
Log in

An integration test coverage metric for Java programs

  • Original Article
  • Published:
International Journal of System Assurance Engineering and Management Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15

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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Chapter  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Article  MathSciNet  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Chapter  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Chapter  Google Scholar 

Download references

Acknowledgements

Debashis Mukherjee wishes to acknowledge the research fellowship provided by MHRD, Govt. of India.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Debashis Mukherjee.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s13198-019-00787-9

Keywords

Navigation