arrow
Return

Generating Class-Level Integration Tests Using Call Site Information

delete2023-04-01
delete1
delete
OA
AI
P
Pouria Derakhshanfar *
X
Xavier Devroey
A
Annibale Panichella
A
Andy Zaidman
A
Arie van Deursen
DOI:10.1109/TSE.2022.3209625delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
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.
Keywords:
Testing
Codes
Search problems
Couplings
Software testing
Automobiles
Test pattern generators
CLING
class integration testing
coverage criteria
search-based software testing
test adequacy

Journal

IEEE Transactions on Software Engineering cover
IEEE Transactions on Software Engineering
IF:
5.6
Papers:
2.9K
Citations:
1.1W

Organization

D
Delft University of Technology
Scholars:
2.6W
Papers: 2.5W
Citations: 3.8W
E
Eindhoven University of Technology
Scholars:
1.6W
Papers: 1.5W
Citations: 2.2W
Cited Papers

Cited Papers

Activation of words with phonological overlap
err2013-01-01
err0
errOAAI
errClaudia K. Friedrich; Verena Felder; Aditi Lahiri; Carsten Eulitz
errShare
errSave
err
IF0
err
err0
PREAI
err
errShare
errSave
On the velocity maximization in downhill skiing
err1997-05-01
err0
PREAI
errRaimo von Hertzen; Ulf Holmlund; Matti A. Ranta
errShare
errSave
Modeling of the Spray Zone for Particle Wetting in a Fluidized Bed
err2013-01-29
err0
PREAI
errManuel Heine; Sergiy Antonyuk; Lennart Fries; Gerhard Niederreiter; Stefan Heinrich; Stefan Palzer
errShare
errSave
Investigating faults missed by test suites achieving high code coverage
err2018-10-01
err16
PREAI
errSchwartz, Amanda; Puckett, Daniel; Meng, Ying; Gay, Gregory
errShare
errSave
Electrochemical Impedance Spectroscopy and Determination of the Internal Resistance as a Way to Estimate Lead-Acid Batteries Condition
err2018-12-12
err0
errOAAI
errWłodzimierz Majchrzycki; Ewa Jankowska; Marek Baraniak; Piotr Handzlik; Robert Samborski
errShare
errSave
researcher View more