| Literature DB >> 24982957 |
Hui He1, Dongyan Zhang2, Min Liu1, Weizhe Zhang1, Dongmin Gao1.
Abstract
Software security defects have a serious impact on the software quality and reliability. It is a major hidden danger for the operation of a system that a software system has some security flaws. When the scale of the software increases, its vulnerability has becoming much more difficult to find out. Once these vulnerabilities are exploited, it may lead to great loss. In this situation, the concept of Software Assurance is carried out by some experts. And the automated fault localization technique is a part of the research of Software Assurance. Currently, automated fault localization method includes coverage based fault localization (CBFL) and program slicing. Both of the methods have their own location advantages and defects. In this paper, we have put forward a new method, named Reverse Data Dependence Analysis Model, which integrates the two methods by analyzing the program structure. On this basis, we finally proposed a new automated fault localization method. This method not only is automation lossless but also changes the basic location unit into single sentence, which makes the location effect more accurate. Through several experiments, we proved that our method is more effective. Furthermore, we analyzed the effectiveness among these existing methods and different faults.Entities:
Mesh:
Year: 2014 PMID: 24982957 PMCID: PMC3996880 DOI: 10.1155/2014/463912
Source DB: PubMed Journal: ScientificWorldJournal ISSN: 1537-744X
Figure 1An example of data dependencies definition.
Definitions of different statements data dependencies.
| Statement type | Definition of left and right values | Examples of statements | Left and right linked lists | |
|---|---|---|---|---|
| Assignment statement | ||||
| Definition declaration | Left value is the linked list defining variables, and right value is null. | Int |
|
|
| Direct assignment | Left value is the linked list defining variables, and right value is null. |
|
|
|
| Indirect assignment | Left value is the assigned variable, and right value is the assigned value. |
|
|
|
| Control statement | ||||
| While | Left value and right value are the same in these statements, which are variables involved in(). Left and right values of these statements are included in the left and right linked lists of all statements in the control domains. | While ( |
|
|
| If else | If ( |
|
| |
| For | For ( |
|
| |
| Console statement | Left value and right value are both null. | return | Null | Null |
| Function call | ||||
| User-defined | Related to parameter types. |
Abs(∗ |
| Abs() |
| Library function | Left and right values are both null. | Print f() | Null | Null |
Algorithm 1Data_dependent_extraction algorithm (source.c).
Figure 2Data-dependent storage diagram.
Figure 3Data-dependent traverse diagram.
Algorithm 2Traversal algorithm: traverse (var).
Figure 4Basic idea description block diagram.
Figure 5System structure diagram.
Within the scope of each code to detect the error ratio.
| Testing code rate% | CPSS | Tarantula | CT | SBI |
|---|---|---|---|---|
| 1 | 7.14 | 6.93 | 5.26 | 7.14 |
| 10 | 50.00 | 47.36 | 26.36 | 50.00 |
| 20 | 85.71 | 63.16 | 36.84 | 71.43 |
| 30 | 92.86 | 71.31 | 51.17 | 78.57 |
| 40 | 100.00 | 79.51 | 52.72 | 92.86 |
| 50 | 100.00 | 86.89 | 59.70 | 92.86 |
| 60 | 100.00 | 87.71 | 62.80 | 92.86 |
| 70 | 100.00 | 88.53 | 70.55 | 92.86 |
| 80 | 100.00 | 92.63 | 75.20 | 100.00 |
| 90 | 100.00 | 100.00 | 82.18 | 100.00 |
| 100 | 100.00 | 100.00 | 100.00 | 100.00 |
Figure 6Comparison of location effect of condition judgment fault.
Figure 7Location effect of the assignment fault.
Figure 8Location effect of the function fault.