Generating Class-Level Integration Tests Using Call Site Information

Pouria Derakhshanfar, Xavier Devroey, Annibale Panichella, Andy Zaidman, Arie van Deursen

Research output: Contribution to journalArticlepeer-review

25 Downloads (Pure)

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.

Original languageEnglish
Pages (from-to)2069-2087
Number of pages19
JournalIEEE Transactions on Software Engineering
Volume49
Issue number4
Early online date14 Oct 2022
DOIs
Publication statusPublished - 1 Apr 2023

Keywords

  • Automobiles
  • CLING
  • Class integration testing
  • Codes
  • Couplings
  • Coverage criteria
  • Search problems
  • Search-based software testing
  • Software testing
  • Test adequacy
  • Test pattern generators
  • Testing
  • class integration testing
  • test adequacy
  • coverage criteria
  • search-based software testing

Fingerprint

Dive into the research topics of 'Generating Class-Level Integration Tests Using Call Site Information'. Together they form a unique fingerprint.

Cite this