Skip to main content

An Approach for Test Impact Analysis on the Integration Level in Java Programs

  • Conference paper
  • First Online:
Proceedings of Eighth International Congress on Information and Communication Technology (ICICT 2023)

Part of the book series: Lecture Notes in Networks and Systems ((LNNS,volume 694))

Included in the following conference series:

  • 355 Accesses

Abstract

Test impact analysis is an approach to obtain a subset of tests impacted by code changes. This approach is mainly applied to unit testing where the link between the code and its associated tests is easy to obtain. On the integration level, however, it is not straightforward to find such a link programmatically, especially when the integration tests are held into separate repositories. We propose an approach for selecting integration tests based on the runtime analysis of code changes to reduce the test execution overhead. We provide a set of tools and a framework that can be plugged into existing CI/CD pipelines. We have evaluated the approach on a range of open-source Java programs and found \(\approx \) 50% reduction in tests on average, and above 80% in a few cases. We have also applied the approach to a large-scale commercial system in production and found similar results.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 229.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 299.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Version 1 in Fig. 4 provides an example of such a case.

  2. 2.

    Version 2 in Fig. 4 provides an example of such a case.

  3. 3.

    git diff-treeno-commit-idname-only -r HEAD

  4. 4.

    git show HEAD\( \hat{} \):<file>

  5. 5.

    https://docs.oracle.com/javase/8/docs/technotes/guides/jpda/.

  6. 6.

    https://github.com.

  7. 7.

    http://pitest.org/quickstart/mutators/.

  8. 8.

    https://www.jetbrains.com/idea/.

References

  1. Andrews JH, Briand LC, Labiche Y (2005) Is mutation an appropriate tool for testing experiments? In: Proceedings of the 27th international conference on software engineering. ICSE ’05. Association for Computing Machinery, pp 402–411

    Google Scholar 

  2. Azizi M, Do H (2018) Retest: a cost effective test case selection technique for modern software development. In: 29th IEEE international symposium on software reliability engineering, ISSRE 2018. IEEE Computer Society, pp 144–154

    Google Scholar 

  3. Cazzola W, Ghosh S, Al-Refai M, Maurina G (2022) Bridging the model-to-code abstraction gap with fuzzy logic in model-based regression test selection. Softw Syst Model 21(1):207–224

    Article  Google Scholar 

  4. Celik A, Vasic M, Milicevic A, Gligoric M (2017) Regression test selection across JVM boundaries. In: Proceedings of the 2017 11th joint meeting on foundations of software engineering. ESEC/FSE 2017. ACM, pp 809–820

    Google Scholar 

  5. Coles H, Laurent T, Henard C, Papadakis M, Ventresque A (2016) Pit: a practical mutation testing tool for Java (demo). In: Proceedings of the 25th international symposium on software testing and analysis. ISSTA 2016. ACM, pp 449–452

    Google Scholar 

  6. Gligoric M, Eloussi L, Marinov D (2015) Practical regression test selection with dynamic file dependencies. In: Proceedings of the 2015 international symposium on software testing and analysis. ISSTA 2015. ACM, pp 211–222

    Google Scholar 

  7. Gousset M (2011) Test impact analysis in visual studio 2010. Visual Studio Magazine

    Google Scholar 

  8. Guo S, Kusano M, Wang C (2016) Conc-ise: incremental symbolic execution of concurrent software. In: Proceedings of the 31st IEEE/ACM international conference on automated software engineering. ASE 2016. ACM, pp 531–542

    Google Scholar 

  9. Hammant P (2017) The rise of test impact analysis. https://tinyurl.com/y42xpf2b

  10. Heger C, Heinrich R (2014) Deriving work plans for solving performance and scalability problems. In: Computer performance engineering. LNCS, vol 8721. Springer, Cham, pp 104–118

    Google Scholar 

  11. Humble J, Farley D (2010) Continuous delivery: reliable software releases through build, test, and deployment automation. Addison-Wesley Professional

    Google Scholar 

  12. Indrasiri K, Siriwardena P (2018) Microservices for the enterprise: designing, developing, and deploying. Apress, Berkeley, CA

    Book  Google Scholar 

  13. Law J, Rothermel G (2003) Whole program path-based dynamic impact analysis. In: ICSE ’03. IEEE Computer Society, pp 308–318

    Google Scholar 

  14. Lehnert S (2011) A taxonomy for software change impact analysis. In: Proceedings of the 12th international workshop on principles of software evolution and the 7th annual ERCIM workshop on software evolution. ACM, pp 41–50

    Google Scholar 

  15. Lindholm T, Yellin F, Bracha G, Buckley A (2014) The Java virtual machine specification, Java SE 8 edition, 1st edn. Addison-Wesley Professional

    Google Scholar 

  16. Memon A, Gao Z, Nguyen B, Dhanda S, Nickell E, Siemborski R, Micco J (2017) Taming google-scale continuous testing. In: Proceedings of the 39th international conference on software engineering: software engineering in practice track, ICSE-SEIP 2017. IEEE Computer Society, pp 233–242

    Google Scholar 

  17. Orso A, Apiwattanapong T, Harrold MJ (2003) Leveraging field data for impact analysis and regression testing. SIGSOFT Softw Eng Notes 28(5)

    Google Scholar 

  18. Orso A, Apiwattanapong T, Law J, Rothermel G, Harrold MJ (2004) An empirical comparison of dynamic impact analysis algorithms. In: Proceedings of the 26th international conference on software engineering. ICSE ’04. IEEE Computer Society, pp 491–500

    Google Scholar 

  19. Peng Z, Chen T, Yang J (2022) Revisiting test impact analysis in continuous testing from the perspective of code dependencies. IEEE Trans Softw Eng 48(06):1979–1993

    Article  Google Scholar 

  20. Ren X, Shah F, Tip F, Ryder BG, Chesley O (2004) Chianti: a tool for change impact analysis of java programs. SIGPLAN Not 39(10):432–448

    Article  Google Scholar 

  21. Shahbaz M (2020) Integration TIA. https://tinyurl.com/36e9tphj

  22. Shahbaz M (2020) JVM Sniffer. https://tinyurl.com/5baurdyj

  23. Sun X, Li B, Tao C, Wen W, Zhang S (2010) Change impact analysis based on a taxonomy of change types. In: Proceedings of the 34th annual IEEE international computer software and applications conference, COMPSAC 2010. IEEE Computer Society, pp 373–382

    Google Scholar 

  24. Vallée-Rai R, Co P, Gagnon E, Hendren L, Lam P, Sundaresan V (2010) Soot: a Java bytecode optimization framework. In: CASCON first decade high impact papers. CASCON ’10. IBM Corp., pp 214–224

    Google Scholar 

  25. Yang G, Person S, Rungta N, Khurshid S (2014) Directed incremental symbolic execution. SIGPLAN Not 24(1)

    Google Scholar 

  26. Yoo S, Harman M (2012) Regression testing minimization, selection and prioritization: a survey. Softw Test Verif Reliab 22:67–120

    Article  Google Scholar 

  27. Zhang L (2018) Hybrid regression test selection. In: Proceedings of the 40th international conference on software engineering, ICSE 2018. ACM, pp 199–209

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Muzammil Shahbaz .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 The Author(s), under exclusive license to Springer Nature Singapore Pte Ltd.

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Shahbaz, M. (2023). An Approach for Test Impact Analysis on the Integration Level in Java Programs. In: Yang, XS., Sherratt, R.S., Dey, N., Joshi, A. (eds) Proceedings of Eighth International Congress on Information and Communication Technology. ICICT 2023. Lecture Notes in Networks and Systems, vol 694. Springer, Singapore. https://doi.org/10.1007/978-981-99-3091-3_14

Download citation

  • DOI: https://doi.org/10.1007/978-981-99-3091-3_14

  • Published:

  • Publisher Name: Springer, Singapore

  • Print ISBN: 978-981-99-3090-6

  • Online ISBN: 978-981-99-3091-3

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics