Saved in:
Bibliographic Details
Main Authors: Yıldıran, Necip Fazıl, Oh, Jeho, Lawall, Julia, Gazzillo, Paul
Format: Preprint
Published: 2024
Subjects:
Online Access:https://arxiv.org/abs/2404.17966
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866916227268476928
author Yıldıran, Necip Fazıl
Oh, Jeho
Lawall, Julia
Gazzillo, Paul
author_facet Yıldıran, Necip Fazıl
Oh, Jeho
Lawall, Julia
Gazzillo, Paul
contents The Linux kernel is highly-configurable, with a build system that takes a configuration file as input and automatically tailors the source code accordingly. Configurability, however, complicates testing, because different configuration options lead to the inclusion of different code fragments. With thousands of patches received per month, Linux kernel maintainers employ extensive automated continuous integration testing. To attempt patch coverage, i.e., taking all changed lines into account, current approaches either use configuration files that maximize total statement coverage or use multiple randomly-generated configuration files, both of which incur high build times without guaranteeing patch coverage. To achieve patch coverage without exploding build times, we propose krepair, which automatically repairs configuration files that are fast-building but have poor patch coverage to achieve high patch coverage with little effect on build times. krepair works by discovering a small set of changes to a configuration file that will ensure patch coverage, preserving most of the original configuration file's settings. Our evaluation shows that, when applied to configuration files with poor patch coverage on a statistically-significant sample of recent Linux kernel patches, krepair achieves nearly complete patch coverage, 98.5% on average, while changing less than 1.53% of the original default configuration file in 99% of patches, which keeps build times 10.5x faster than maximal configuration files.
format Preprint
id arxiv_https___arxiv_org_abs_2404_17966
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Maximizing Patch Coverage for Testing of Highly-Configurable Software without Exploding Build Times
Yıldıran, Necip Fazıl
Oh, Jeho
Lawall, Julia
Gazzillo, Paul
Software Engineering
The Linux kernel is highly-configurable, with a build system that takes a configuration file as input and automatically tailors the source code accordingly. Configurability, however, complicates testing, because different configuration options lead to the inclusion of different code fragments. With thousands of patches received per month, Linux kernel maintainers employ extensive automated continuous integration testing. To attempt patch coverage, i.e., taking all changed lines into account, current approaches either use configuration files that maximize total statement coverage or use multiple randomly-generated configuration files, both of which incur high build times without guaranteeing patch coverage. To achieve patch coverage without exploding build times, we propose krepair, which automatically repairs configuration files that are fast-building but have poor patch coverage to achieve high patch coverage with little effect on build times. krepair works by discovering a small set of changes to a configuration file that will ensure patch coverage, preserving most of the original configuration file's settings. Our evaluation shows that, when applied to configuration files with poor patch coverage on a statistically-significant sample of recent Linux kernel patches, krepair achieves nearly complete patch coverage, 98.5% on average, while changing less than 1.53% of the original default configuration file in 99% of patches, which keeps build times 10.5x faster than maximal configuration files.
title Maximizing Patch Coverage for Testing of Highly-Configurable Software without Exploding Build Times
topic Software Engineering
url https://arxiv.org/abs/2404.17966