## 4 Fault Localization Method Using Memory Updates
### Comparison of Difference between Memory Updates of Normal and Failed Operations  
In the fourth step, the normal operation executed during the unit test is compared with the failed operation during the integration test. The memory usage pattern generated from the normal operation of each unit test has already been obtained through the previous steps. We define the IDUA of the unit test as functional symbols for the normal operation of the unit function. That is, the IDUA reacts directly when the function is activated by the input. Therefore, we can find the cause of the fault by observing the IDUA of the unit function within the IDUR of integration test. When analyzing the memory symbols, there are symbols required during the function operation, infrastructure symbols used for OS operation and communication and temporary symbols such as buffers and counters [24]. Therefore, the MUI of the integrated function is composed of IDUA of each unit functions and integrated function, the infrastructure symbols and the temporary symbols. If the integration test is operating normally, the IDUA of the unit function should behave similar to unit test. As the fault candidates, we present the MUI of the IDUA identified in each unit function and the failed integration test. In Equation (6), we define the fault candidates (FC) as the MUI, which consists of the IDUAs within the frame range-IDUR, the address of the symbol, the update frequency and a set of values for each frame. The fault candidates (FC) are defined by Equation (6). \[\text{FC}\equiv\ \{\text{MUI}_{\text{a,IDUR}}|\text{a}\ \in\ \{\text{IDUA of the Integrated Function}\cup\text{IDUA of each Unit Function}\}\} \tag{6}\]  
Finding fault using memory updated information has two implications. One is that the update is not made at the time when the update should be made. The other is that the update is made at the correct time but it is updated to the wrong value. Therefore, we proposed a two-step fault localization method using the fault candidates. The first step is to find the \"not updated\" symbols where the value of MUF is zero in IDUR. These symbols are symbols that are not used as the integrated function among the IDUA of the unit functions or are affected by the fault. The next step is to check the revised value of the updated symbols whose MUF is one or more in the IDUR. Based on the value, you can check which symbol has been updated to the incorrect value. In other words, it is possible to find faults by first identifying symbols that are not updated and then by identifying the cause of the failure operation with the changed values of the updated symbols. For example, the \"Emergency Stop Signal\" (ESS) is a function that quickly flashes the brake lamp in an emergency stop situation. Specifically, the \"Advanced ESS\" (Adv ESS) is connected to the function that automatically turns on the emergency lamp when the vehicle is completely stopped. At this time, the \"Adv ESS\" consists of an integrated function of \"ESS\" and \"Emergency Signal\". Therefore, by observing the IDUA of the integrated function, the cause of the fault in the \"Adv ESS\" can be found. Figure 8 presents an example of fault candidates for the \"Adv ESS\". It shows the MUI for the IDUA of each \"Emergency Signal\" and \"ESS\" from the top of Figure 8. Each IDUA (from function A and B) is updated in order of the cmd* symbol, the flag* symbol and the status\" symbol after the update of the mCan* symbol. Figure 8 also shows fault candidates for the integrated functions. The cells highlighted in yellow are the values that have changed in the address and the symbols highlighted as the shaded bars are the symbols that were not updated. The FC contains the union of IDUA of each unit function and the symbols belonging to each unit function are marked as \(\textcircled{a}\) and \(\textcircled{b}\). Among these symbols, the symbols marked with \(\textcircled{b}\) have been similarly updated for unit B and the integrated function but the symbols with \(\textcircled{a}\) marks are not similar.