Abstract

Automatically fixing bugs in software programs can significantly reduce the cost and improve the productivity of the software. Toward this goal, a critical and challenging problem is automatic fix localization, which identifies program locations where a bug fix can be synthesized. In this paper, we present AgxFaults, a technique that automatically identifies minimal subsets of program statements at which a suitable modification can remove the error. AgxFaults works based on dynamically encoding semantic of program parts that are relevant to an observed error into an unsatisfiable logical formula and then manipulating this formula in an increasingly on-demand manner. We perform various experiments on faulty versions of the traffic collision avoidance system (TCAS) program in the Siemens Suite, programs in Bekkouche’s benchmark, and server real bugs in the Defects4J benchmark. The experimental results show that AgxFaults outperforms single-path-formula approaches in terms of effectiveness in finding fix localization and fault localization. AgxFaults is better than program-formula-based approaches in terms of efficiency and scalability, while providing similar effectiveness. Specifically, the solving time of AgxFaults is 28% faster, and the running time is 45% faster, than the program-formula-based approach, while providing similar fault localization results.

Highlights

  • We describe the fault localization problem and provide a running example.we explain the basic background of maximal satisfiability-based fault localization.2.1

  • To evaluate the effectiveness of our method in finding angelic fix candidates, we report and compare (1) the number of minimal angelic fix candidates (MFC) that each technique found for each run and (2) the number of which are feasible angelic fix candidates

  • After examining the MFCs generated by all methods, we found that all MFCs generated by AgxFaults, PF, and Flow Insensitive (FI) are feasible, while only 35 in a total of 52 MFCs generated by Flow Sensitive (FS) are feasible

Read more

Summary

Introduction

We describe the fault localization problem and provide a running example.we explain the basic background of maximal satisfiability-based fault localization.2.1. We describe the fault localization problem and provide a running example. We explain the basic background of maximal satisfiability-based fault localization. Fault localization is the problem of identifying program statements that responsible for an observed failure in a software program. Any program statement or subset of program statements, that, if suitably modified, can remove the failure, is considered possibly faulty [12,14,16]. Since checking the existence of an actual syntactic fix for a program is extremely computation expensive [7,21], we check for the existence of an angelic fix that removes the failure in an angelically way by replacing program expressions with suitable non-deterministic values (i.e., angelic values)

Methods
Results
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call