UCL Discovery
UCL home » Library Services » Electronic resources » UCL Discovery

June: A Type Testability Transformation for Improved ATG Performance

Bruce, D; Kelly, D; Menendez, H; Barr, ET; Clark, D; (2023) June: A Type Testability Transformation for Improved ATG Performance. In: ISSTA 2023: Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis. (pp. pp. 274-284). ACM Green open access

[thumbnail of june.pdf]
Preview
Text
june.pdf - Accepted Version

Download (604kB) | Preview

Abstract

Strings are universal containers: they are flexible to use, abundant in code, and difficult to test. String-controlled programs are programs that make branching decisions based on string input. Automatically generating valid test inputs for these programs considering only character sequences rather than any underlying string-encoded structures, can be prohibitively expensive. We present June, a tool that enables Java developers to expose any present latent string structure to test generation tools. June is an annotation-driven testability transformation and an extensible library, JuneLib, of structured string definitions. The core JuneLib definitions are empirically derived and provide templates for all structured strings in our test set. June takes lightly annotated source code and injects code that permits an automated test generator (ATG) to focus on the creation of mutable substrings inside a structured string. Using June costs the developer little, with an average of 2.1 annotations per string-controlled class. June uses standard Java build tools and therefore deploys seamlessly within a Java project. By feeding string structure information to an ATG tool, June dramatically reduces wasted effort; branches are effortlessly covered that would otherwise be extremely difficult, or impossible, to cover. This waste reduction both increases and speeds coverage. EvoSuite, for example, achieves the same coverage on June-ed classes in 1 minute, on average, as it does in 9 minutes on the un-June-ed class. These gains increase over time. On our corpus, June-ing a program compresses 24 hours of execution time into ca. 2 hours. We show that many ATG tools can reuse the same June-ed code: a few June annotations, a one-off cost, benefit many different testing regimes.

Type: Proceedings paper
Title: June: A Type Testability Transformation for Improved ATG Performance
Event: ISSTA '23: 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis
ISBN-13: 9798400702211
Open access status: An open access version is available from UCL Discovery
DOI: 10.1145/3597926.3598055
Publisher version: https://doi.org/10.1145/3597926.3598055
Language: English
Additional information: This version is the author accepted manuscript. For information on re-use, please refer to the publisher’s terms and conditions.
UCL classification: UCL
UCL > Provost and Vice Provost Offices > UCL BEAMS
UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science
UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science > Dept of Computer Science
URI: https://discovery.ucl.ac.uk/id/eprint/10175616
Downloads since deposit
53Downloads
Download activity - last month
Download activity - last 12 months
Downloads by country - last 12 months

Archive Staff Only

View Item View Item