Abstract:
Software fault injection is a fundamental technique for studying the dependability of software systems. The code mutation based defect injections encounter efficiency (i....Show MoreMetadata
Abstract:
Software fault injection is a fundamental technique for studying the dependability of software systems. The code mutation based defect injections encounter efficiency (i.e., dormant faults) and accuracy (when they are not done at the source code level) issues. Software error injections directly emulate the effects of software defects, which is more efficient and practical. But, whether the injected errors truly represent the impact of bugs in the real world is still an open problem. Several studies have investigated the representativeness problem of component interface (API) errors. However, the component API error injections are relatively coarse in granularity because they regard the component programs as black boxes. Thus, they cannot be used to analyze the internal error behaviors within the components. To overcome this issue, we propose a finite state machine for generating representative code mutations (as baseline) and a novel tracing approach for collecting function call interface data. That enables the analysis of the representativeness of program internal errors from the perspective of function call interface for C/C++ programs by fault-free and fault injection control experiments. The experimental results imply that the traditional error models cannot accurately emulate software defects at function call interfaces. We provide useful suggestions based on our findings for improving the representativeness of function call interface error injection.
Published in: 2023 IEEE 23rd International Conference on Software Quality, Reliability, and Security (QRS)
Date of Conference: 22-26 October 2023
Date Added to IEEE Xplore: 25 December 2023
ISBN Information: