Title
Generating Class-Level Integration Tests Using Call Site Information
Author
Derakhshanfar, P. (TU Delft Software Engineering) 
Devroey, Xavier (University of Namur)
Panichella, A. (TU Delft Software Engineering) 
Zaidman, A.E. (TU Delft Software Engineering) 
van Deursen, A. (TU Delft Software Technology) 
Department
Software Technology
Date
2023
Abstract
Search-based approaches have been used in the literature to automate the process of creating unit test cases. However, related work has shown that generated tests with high code coverage could be ineffective, i.e., they may not detect all faults or kill all injected mutants. In this paper, we propose Cling, an integration-level test case generation approach that exploits how a pair of classes, the caller and the callee, interact with each other through method calls. In particular, Cling generates integration-level test cases that maximize the Coupled Branches Criterion (CBC). Coupled branches are pairs of branches containing a branch of the caller and a branch of the callee such that an integration test that exercises the former also exercises the latter. CBC is a novel integration-level coverage criterion, measuring the degree to which a test suite exercises the interactions between a caller and its callee classes. We implemented Cling and evaluated the approach on 140 pairs of classes from five different open-source Java projects. Our results show that (1) Cling generates test suites with high CBC coverage, thanks to the definition of the test suite generation as a many-objectives problem where each couple of branches is an independent objective; (2) such generated suites trigger different class interactions and can kill on average 7.7% (with a maximum of 50%) of mutants that are not detected by tests generated randomly or at the unit level; (3) Cling can detect integration faults coming from wrong assumptions about the usage of the callee class (25 for our subject systems) that remain undetected when using automatically generated random and unit-level test suites.
Subject
search-based software engineering
Class Integration testing
coverage criteria
evolutionary algorithms
Many-objective optimization
To reference this document use:
http://resolver.tudelft.nl/uuid:c6e6cf2c-de3d-439c-bb8e-8b176fcb3b58
DOI
https://doi.org/10.1109/TSE.2022.3209625
Embargo date
2023-11-01
ISSN
0098-5589
Source
IEEE Transactions on Software Engineering, 49 (4), 2069-2087
Bibliographical note
Green Open Access added to TU Delft Institutional Repository 'You share, we take care!' - Taverne project https://www.openaccess.nl/en/you-share-we-take-care Otherwise as indicated in the copyright section: the publisher is the copyright holder of this work and the author uses the Dutch legislation to make this work public.
Part of collection
Institutional Repository
Document type
journal article
Rights
© 2023 P. Derakhshanfar, Xavier Devroey, A. Panichella, A.E. Zaidman, A. van Deursen