Abstract

Fault localization, a technique to fix and ensure the dependability of software, is rapidly becoming infeasible due to the increasing scale and complexity of multilingual programs. Compared to other fault localization techniques, slicing can directly narrow the range of the code which needed checking by abstracting a program into a reduced one by deleting irrelevant parts. Only minority slicing methods take into account the fact that the probability of different statements leading to failure is different. Moreover, no existing prioritized slicing techniques can work on multilingual programs. In this paper, we propose a new technique called weight prioritized slicing(WP-Slicing), an improved static slicing technique based on constraint logic programming, to help the programmer locate the fault quickly and precisely. WP-Slicing first converts the original program into logic facts. Then it extracts dependences from the facts, computes the static backward slice and calculates the statements’ weight. Finally, WP-Slicing provides the slice in a suggested check sequence by weighted-sorting. By comparing it’s slice time and locate effort with three pre-exsiting slicing techniques on five real world C projects, we prove that WP-Slicing can locate fault within less time and effort, which means WP-Slicing is more effectively.

Highlights

  • Fault localization, identifying the location of a fault in the program, is a time-consuming and prohibitively expensive task [1]

  • Thin slicing ignores both control dependences and base pointer flow dependences, only include producer statements for the criteria, which related by producer flow dependences

  • Our empirical studies are designed to answer the following research questions: RQ1: How practical is WP-Slicing in terms of time cost? RO2: How effective is WP-Slicing for fault localization compared to Weiser slicing, thin slicing and prio-slicing? We perform all our experiments on a computer with configurations: core i7 CPU, 8G

Read more

Summary

Introduction

Fault localization, identifying the location of a fault in the program, is a time-consuming and prohibitively expensive task [1]. Existing slicing techniques can be classified into two major types: static slicing and dynamic slicing Both these two types of techniques can reduce the scale of the statements to be checked in the program by removing irrelevant parts. In the series of improved methods and variants according to the actual applicative requirements, thin slicing [11] attracts more attention as it can significantly reduce the size of a slice. Thin slicing ignores both control dependences and base pointer flow dependences, only include producer statements for the criteria, which related by producer flow dependences. A thin slice is tiny, but it excludes many possible faults

Methods
Results
Conclusion
Full Text
Paper version not known

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

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.