Thu 20 Jul 2023 11:15 - 11:30 at Smith Classroom (Gates G10) - ISSTA 10: Test Optimizations Chair(s): Wing Lam

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.

Thu 20 Jul

Displayed time zone: Pacific Time (US & Canada) change

10:30 - 12:00
ISSTA 10: Test OptimizationsTechnical Papers at Smith Classroom (Gates G10)
Chair(s): Wing Lam University of Illinois at Urbana-Champaign
10:30
15m
Talk
More Precise Regression Test Selection via Reasoning about Semantics-Modifying ChangesACM SIGSOFT Distinguished Paper
Technical Papers
Yu Liu University of Texas at Austin, Jiyang Zhang University of Texas at Austin, Pengyu Nie University of Texas at Austin, Milos Gligoric University of Texas at Austin, Owolabi Legunsen Cornell University
DOI
10:45
15m
Talk
Catamaran: Low-Overhead Memory Safety Enforcement via Parallel Acceleration
Technical Papers
Yiyu Zhang Nanjing University, Tianyi Liu Nanjing University, Zewen Sun Nanjing University, Zhe Chen Nanjing University of Aeronautics and Astronautics, Xuandong Li Nanjing University, Zhiqiang Zuo Nanjing University
DOI
11:00
15m
Talk
Applying and Extending the Delta Debugging Algorithm for Elevator Dispatching Algorithms (Experience Paper)
Technical Papers
Pablo Valle Mondragon University, Aitor Arrieta Mondragon University, Maite Arratibel Orona
DOI Pre-print
11:15
15m
Talk
June: A Type Testability Transformation for Improved ATG Performance
Technical Papers
Dan Bruce University College London, David Kelly King’s College London, Hector Menendez King’s College London, Earl T. Barr University College London; Google DeepMind, David Clark University College London
DOI
11:30
15m
Talk
Pattern-Based Peephole Optimizations with Java JIT Tests
Technical Papers
Zhiqiang Zang University of Texas at Austin, Aditya Thimmaiah University of Texas at Austin, Milos Gligoric University of Texas at Austin
DOI Pre-print
11:45
15m
Talk
GPUHarbor: Testing GPU Memory Consistency at Large (Experience Paper)ACM SIGSOFT Distinguished Artifact
Technical Papers
Reese Levine University of California at Santa Cruz, Mingun Cho University of California at Davis, Devon McKee University of California at Santa Cruz, Andrew Quinn University of California at Santa Cruz, Tyler Sorensen University of California at Santa Cruz
DOI