# Fault Localization Using TrustRank Algorithm
## 3 Proposed Approach  
The focus of this experimental research is to enhance the accuracy of software fault localization techniques by analyzing the centrality of software execution networks through the TrustRank algorithm, and it is completed through the following steps. First, by extracting data behavior from the dynamic execution process of the program under test from the test case set, the topological structure of the software execution network is constructed. Considering that most SBFL techniques are limited by redundant test case execution information, in order to alleviate the negative impact of redundant coverage information on SBFL calculation formulas, the obtained network structure will focus on failed test cases' execution traces on the program under test. On the other hand, a software network that has undergone redundancy elimination can also eliminate ranking ties among program entities caused by identical suspicion values. Then, based on traditional SBFL techniques, suspicion values are calculated for program entities in the software execution network and used as node weights in the software execution network. These weights serve as a basis for selecting seed sets in the TrustRank algorithm. Finally, we execute the TrustRank algorithm to assign error probabilities to nodes in the software execution network to improve the performance of traditional fault localization methods.  
Here, the TrustRank algorithm determines the suspicion level of program elements based on the data dependencies of the program under test and their propagation effects, which is also a key indicator of program localization techniques. From the perspective of influence propagation between program elements, the following research hypotheses are proposed for this experiment:  
1. The more suspicious program elements pointing to a certain program element, the higher the suspicion value of that element;
2. The higher the suspicion value of suspicious program elements pointing to a certain element, the higher the suspicion value of that element;
3. The more trustworthy program elements pointing to a certain program element, the lower its suspicion value;
4. The lower the suspicion value of trustworthy program elements pointing to a certain element, the lower its suspicion value.  
The method framework used in this paper can be found in Figure 1. The method used in this paper is characterized by constructing a program execution network and using the TrustRank algorithm to evaluate the risk of each execution statement. As shown in the figure, the program fault localization process is divided into two stages: data pre-processing and algorithm construction. In the first stage, two parts of data will be obtained. One is a brief analysis of the tested program using traditional fault localization techniques, and the analysis results will serve as the basis for subsequent algorithms. The other is to extract features of the target program's source code using a dynamic call relationship generator. Inthe second stage, an analysis model is constructed based on the above features, and the TrustRank algorithm is used to rank statements.  
Next, the implementation process of these two stages will be introduced in turn.