On Error Representativeness of Function Call Interfaces for C/C++ Program

Wei Zhang, Hao Xu, Zhangjun Lu, Jianhui Jiang · 2023

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.

Read the paper · More papers on PaperTik