SMBFL: slice-based cost reduction of mutation-based fault localization

  • PDF / 3,285,538 Bytes
  • 33 Pages / 439.37 x 666.142 pts Page_size
  • 91 Downloads / 189 Views

DOWNLOAD

REPORT


SMBFL: slice-based cost reduction of mutation-based fault localization Nazanin Bayati Chaleshtari 1 & Saeed Parsa 1 # Springer Science+Business Media, LLC, part of Springer Nature 2020

Abstract

Fault localization is one of the most important and difficult tasks in the software debugging process. Therefore, several methods have been proposed to automate and improve this process. Mutation-based fault localization is one of the states of the art techniques that try to locate faults by executing different mutants of the faulty program. In addition to favorable results, it is along with a massive increase in mutation execution cost. In this paper, we propose a new mutationbased fault localization approach called SMBFL, that aim to reduce the execution cost by reducing the number of statements to be mutated. As fewer mutants execute with SMBFL, the whole process will become faster and the cost will decrease. SMBFL only examines the statements in the dynamic slice of the program under test. The statements that present in the dynamic slice have a direct effect on the execution of the program with the specified test case. In the SMBFL method, the suspiciousness score of program statements is measured based on the entropy of their mutants. The proposed formula, MuEn, determines the suspiciousness score based on the result of executing mutants of each statement of the program. SMBFL is evaluated during a series of tests. The results show a relative increase in the accuracy of fault localization, by an average of 14.2%, and a decrease in the execution time of the fault localization process, by an average of 24.3%. Finally, the MuEn formula applies the least execution overhead to the fault localization process. Keywords Fault localization . Mutation-based . Slice . Entropy

Communicated by: Paolo Tonella

* Nazanin Bayati Chaleshtari [email protected] Saeed Parsa [email protected]

1

Department of Computer Engineering, Iran University of Science and Technology, Tehran, Iran

Empirical Software Engineering

1 Introduction The fault localization method is considered as one of the most expensive and timeconsuming steps in the software testing process (DiGiuseppe and Jones 2015). The higher sensitivity of the software leads to more importance of the fault localization, and the old debugging methods are neither effective nor efficient. Therefore, a large number of studies have been conducted to improve and automate the fault localization process, which can help developers find fault location with minimal human intervention (Le et al. 2017). Many fault localization methods have been proposed to find the location of faults in a program such as spectrum-based (Abreu et al. 2009; Lu et al. 2017), slice-based (Mao et al. 2014; Feyzi and Parsa 2018) and mutation-based fault localization (Papadakis and Taron 2015; Kim et al. 2019; Liu et al. 2018). In the spectrum-based methods, the location of the fault is determined based on the statistics of the presence of statements in the program’s passed and failed runs (Abreu et