Toolset and Program Repository for Code Coverage-Based Test Suite Analysis and Manipulation

Dávid Tengeri, Árpád Beszédes, Dávid Havas and Tibor Gyimóthy 
Code coverage is often used in academic and industrial practice of white-box software testing. Various test optimization methods, e.g. test selection and prioritization, rely on code coverage information, but other related fields benefit from it as well, such as fault localization. These methods require access to the fine details of coverage information and efficient ways of processing this data. The purpose of the (free) SoDA library and toolset is to provide an efficient set of data structures and algorithms which can be used to prepare, store and analyze in various ways data related to code coverage. The focus of SoDA is not on the calculation of coverage data (such as instrumentation and test execution) but on the analysis and manipulation of test suites based on such information. An important design goal of the library was to be usable on industrial-size programs and test suites. Furthermore, there is no limitation on programming language, analysis granularity and coverage criteria. In this paper, we demonstrate the purpose and benefits of the library, the associated toolset, which also includes a graphical user interface, as well as possible usage scenarios. SoDA also includes a repository of prepared programs, which are from small to large sizes and can be used for experimentation and as a benchmark for code coverage related research.

Keywords: Regression testing, test suite analysis, test suite optimization, code coverage, program repository.