Towards Parallelization of Regression Test Selection
Skip to main content
eScholarship
Open Access Publications from the University of California

UC Irvine

UC Irvine Electronic Theses and Dissertations bannerUC Irvine

Towards Parallelization of Regression Test Selection

Creative Commons 'BY-ND' version 4.0 license
Abstract

Regression Test Selection (RTS) is a set of techniques for selecting a subset of test cases fromthe test suite based on the changes in source code. RTS tools may select tests in different granularity, namely file-level, class-level, or method-level. File- and class-level tools are less precise than method-level tools, but they are simpler and carry considerably less execution overhead in test selection. In this thesis, we show how method-level test selection can be made efficient by appropriate use of inverted indexing and parallel processing. We present a static method-level RTS tool, TLDR – a Maven plugin for unit testing with JUnit 4.x. Like other static RTS approaches, TLDR extracts the firewall of each changed method or field to compensate for dynamic dispatch. The main difference with other RTS tools is that it has a configurable and multi-threaded Pipe and Filter architecture, with several in-memory inverted indexes for fast lookup. We conducted 23.5 hours of experiments on 20 popular open-source Java projects where we compared TLDR with state-of-art RTS tools like Ekstazi, STARTS, and HyRTS, and traditional unit testing methods like retest-all and parallel retest-all. Our evaluation has shown that TLDR is both more precise and more efficient than contemporary RTS techniques like Ekstazi, STARTS, HyRTS, retest-all, and parallel retest-all.

Main Content
For improved accessibility of PDF content, download the file to your device.
Current View