Fig 1.
The workflow of Detraque is depicted in the figure. Divided into two main modules, one is the Dynamic Execution Cycle, the function is to execute the program through the Test Bench and collect the dynamic execution information of the program. The other part is the SVE Algorithm to Detraque, whose function is to calculate the suspicious value of the statement based on the information output in the Dynamic Execution Cycle. Finally, obtain the final fault localization result based on the suspicious value.
Fig 2.
The coverage and results of P executions.
Shown in the figure is a matrix based on program dynamic execution information. One dimension of the matrix is the executable statement Q, and the other dimension is the test case T. Each test case corresponding to an execution result is represented by an element ei in vector error. Each element in the matrix represents whether a certain test case executes a certain statement, which is distinguished by 1 and 0.
Fig 3.
The lower case illustrating seven evaluation metrics of fault localization approaches.
The figure content is divided into upper and lower parts. The upper part includes the program, injected fault information, and annotation. The lower part is the matrix information based on Fig 2 composed of statements and test cases, S1 to S15 are executable statements of the program, and t1 to t5 are test cases.
Table 1.
Definitions of evaluation metrics used.
Table 2.
Test suite information.
Table 3.
Sample of fault injection.
Table 4.
EXAM of seven programs on seven evaluation metrics.
Fig 4.
EXAM comparison of seven evaluation metrics.
(a): The EXAM Comparison on AES. (b): The EXAM Comparison on Cordic. (c): The EXAM Comparison on FPU. (d): The EXAM Comparison on SHA256. (e): The EXAM Comparison on Pci. (f): The EXAM Comparison on Uart. (g): The EXAM Comparison on USB. (h): The EXAM Comparison on all faulty versions.
Fig 5.
RImp comparison of remaining evaluation metrics.
(a): The RImp of Dstar over others on AES. (b): The RImp of Dstar over others on Cordic. (c): The RImp of Dstar over others on FPU. (d): The RImp of Dstar over others on SHA256. (e): The RImp of Dstar over others on Pci. (f): The RImp of Dstar over others on Uart. (g): The RImp of Dstar over others on USB. (h): The RImp of Dstar over others on all faulty versions.
Table 5.
Wilcoxon-Signed-Rank test of Detraque on seven programs.
Table 6.
Wilcoxon-Signed-Rank test of Detraque vs GDE.