TY - GEN
T1 - Enhanced File System Testing through Input and Output Coverage
AU - Liu, Yifei
AU - Kuenning, Geoff
AU - Kamal Parvez, Md
AU - Smolka, Scott A.
AU - Zadok, Erez
N1 - Publisher Copyright:
© 2025 Copyright held by the owner/author(s).
PY - 2025/9/8
Y1 - 2025/9/8
N2 - Effective file system testing relies on coverage to detect bugs and enhance reliability. We analyzed real file system bugs and found a weak correlation between code coverage, the most commonly used metric, and test effectiveness; many bugs were in covered code but remained undetected. Our study also showed that covering diverse file system inputs and outputs—system call arguments and return values—can be key to detecting the majority of observed bugs. We present input coverage and output coverage as new metrics for evaluating and improving file system testing, and have developed the IOCov framework for computing these metrics. Unlike existing system call tracers, IOCov computes coverage using only the calls relevant to testing, excluding unrelated ones that should not be counted. To demonstrate IOCov’s utility, we used it to extend the existing testing tool CrashMonkey into CM-IOCov, which achieves broader input coverage and more thorough detection of crash consistency bugs. Our experimental evaluation shows that IOCov computes input and output coverage accurately with minimal overhead. IOCov is applicable to different types of file system testing and can provide insights for improvement as well as identify untested cases based on coverage results. Moreover, the bugs found exclusively by CM-IOCov are 2.1 and 12.9 times more than those found exclusively by CrashMonkey on the 6.12 and 5.6 kernels, respectively, demonstrating the effectiveness of the IOCov-based coverage approach.
AB - Effective file system testing relies on coverage to detect bugs and enhance reliability. We analyzed real file system bugs and found a weak correlation between code coverage, the most commonly used metric, and test effectiveness; many bugs were in covered code but remained undetected. Our study also showed that covering diverse file system inputs and outputs—system call arguments and return values—can be key to detecting the majority of observed bugs. We present input coverage and output coverage as new metrics for evaluating and improving file system testing, and have developed the IOCov framework for computing these metrics. Unlike existing system call tracers, IOCov computes coverage using only the calls relevant to testing, excluding unrelated ones that should not be counted. To demonstrate IOCov’s utility, we used it to extend the existing testing tool CrashMonkey into CM-IOCov, which achieves broader input coverage and more thorough detection of crash consistency bugs. Our experimental evaluation shows that IOCov computes input and output coverage accurately with minimal overhead. IOCov is applicable to different types of file system testing and can provide insights for improvement as well as identify untested cases based on coverage results. Moreover, the bugs found exclusively by CM-IOCov are 2.1 and 12.9 times more than those found exclusively by CrashMonkey on the 6.12 and 5.6 kernels, respectively, demonstrating the effectiveness of the IOCov-based coverage approach.
KW - Crash Consistency
KW - File System Testing
KW - Input Coverage
KW - Output Coverage
UR - https://www.scopus.com/pages/publications/105017805827
U2 - 10.1145/3757347.3759138
DO - 10.1145/3757347.3759138
M3 - Conference contribution
AN - SCOPUS:105017805827
T3 - Proceedings of the 18th ACM International Systems and Storage Conference, SYSTOR 2025
SP - 151
EP - 166
BT - Proceedings of the 18th ACM International Systems and Storage Conference, SYSTOR 2025
PB - Association for Computing Machinery, Inc
T2 - 18th ACM International Systems and Storage Conference, SYSTOR 2025
Y2 - 8 September 2025 through 9 September 2025
ER -