一句话:提出分层建模与抽象负载细化方法,生成高覆盖系统调用序列以测试文件系统实现。
文件系统实现测试需要高质量的系统调用序列,但输入空间极其庞大。本文提出基于分层模型与抽象负载细化的负载生成方法,并将其实例化为三层文件系统模型:底层表示抽象状态与操作,上层逐步细化为可执行系统调用序列。通过模型引导生成覆盖关键语义的负载,在短周期实验中,顺序负载即在主线 Linux 内核文件系统中触发超过一千次崩溃,报告了 12 个此前未知的缺陷。研究还表明,该方法生成的负载可惠及其他领域特定测试技术,如崩溃一致性测试与并发测试。
Generating high-quality system call sequences is not only important to testing file system implementations, but also challenging due to the astronomically large input space. This paper introduces a new approach to the workload generation problem by building layered models and abstract workloads refinement. This approach is instantiated as a three-layer file system model for file system workload generation. In a short-period experiment run, sequential workloads (system call sequences) manifested over a thousand crashes in mainline Linux Kernel file systems, with 12 previously unknown bugs being reported. We also provide evidence that such workloads benefit other domain-specific testing techniques including crash consistency testing and concurrency testing.
DOI 原文 ·
@inproceedings{paperbot5620,
title = {Testing file system implementations on layered models},
author = {Dongjie Chen and Yanyan Jiang and Chang Xu and Xiaoxing Ma and Jian Lu},
booktitle = {ICSE},
year = {2020},
doi = {10.1145/3377811.3380350}
}