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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
References
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
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
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
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
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
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
Gousset M (2011) Test impact analysis in visual studio 2010. Visual Studio Magazine
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
Hammant P (2017) The rise of test impact analysis. https://tinyurl.com/y42xpf2b
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
Humble J, Farley D (2010) Continuous delivery: reliable software releases through build, test, and deployment automation. Addison-Wesley Professional
Indrasiri K, Siriwardena P (2018) Microservices for the enterprise: designing, developing, and deploying. Apress, Berkeley, CA
Law J, Rothermel G (2003) Whole program path-based dynamic impact analysis. In: ICSE ’03. IEEE Computer Society, pp 308–318
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
Lindholm T, Yellin F, Bracha G, Buckley A (2014) The Java virtual machine specification, Java SE 8 edition, 1st edn. Addison-Wesley Professional
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
Orso A, Apiwattanapong T, Harrold MJ (2003) Leveraging field data for impact analysis and regression testing. SIGSOFT Softw Eng Notes 28(5)
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
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
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
Shahbaz M (2020) Integration TIA. https://tinyurl.com/36e9tphj
Shahbaz M (2020) JVM Sniffer. https://tinyurl.com/5baurdyj
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
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
Yang G, Person S, Rungta N, Khurshid S (2014) Directed incremental symbolic execution. SIGPLAN Not 24(1)
Yoo S, Harman M (2012) Regression testing minimization, selection and prioritization: a survey. Softw Test Verif Reliab 22:67–120
Zhang L (2018) Hybrid regression test selection. In: Proceedings of the 40th international conference on software engineering, ICSE 2018. ACM, pp 199–209
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Singapore Pte Ltd.
About this paper
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)