A survey on software fault localization

W. Eric Wong, Ruizhi Gao, Yihao Li, Rui Abreu, Franz Wotawa

Research output: Contribution to journalReview articleResearchpeer-review

Abstract

Software fault localization, the act of identifying the locations of faults in a program, is widely recognized to be one of the most tedious, time consuming, and expensive - yet equally critical - activities in program debugging. Due to the increasing scale and complexity of software today, manually locating faults when failures occur is rapidly becoming infeasible, and consequently, there is a strong demand for techniques that can guide software developers to the locations of faults in a program with minimal human intervention. This demand in turn has fueled the proposal and development of a broad spectrum of fault localization techniques, each of which aims to streamline the fault localization process and make it more effective by attacking the problem in a unique way. In this article, we catalog and provide a comprehensive overview of such techniques and discuss key issues and concerns that are pertinent to software fault localization as a whole.

Original languageEnglish
Article number7390282
Pages (from-to)707-740
Number of pages34
JournalIEEE Transactions on Software Engineering
Volume42
Issue number8
DOIs
Publication statusPublished - 1 Aug 2016

Fingerprint

Program debugging

Keywords

  • execution trace
  • program debugging
  • Software fault localization
  • software testing
  • survey
  • suspicious code

ASJC Scopus subject areas

  • Software

Fields of Expertise

  • Information, Communication & Computing

Treatment code (Nähere Zuordnung)

  • Review

Cite this

A survey on software fault localization. / Wong, W. Eric; Gao, Ruizhi; Li, Yihao; Abreu, Rui; Wotawa, Franz.

In: IEEE Transactions on Software Engineering, Vol. 42, No. 8, 7390282, 01.08.2016, p. 707-740.

Research output: Contribution to journalReview articleResearchpeer-review

Wong, W. Eric ; Gao, Ruizhi ; Li, Yihao ; Abreu, Rui ; Wotawa, Franz. / A survey on software fault localization. In: IEEE Transactions on Software Engineering. 2016 ; Vol. 42, No. 8. pp. 707-740.
@article{52eb76f0306b479ba62297b00c6f7517,
title = "A survey on software fault localization",
abstract = "Software fault localization, the act of identifying the locations of faults in a program, is widely recognized to be one of the most tedious, time consuming, and expensive - yet equally critical - activities in program debugging. Due to the increasing scale and complexity of software today, manually locating faults when failures occur is rapidly becoming infeasible, and consequently, there is a strong demand for techniques that can guide software developers to the locations of faults in a program with minimal human intervention. This demand in turn has fueled the proposal and development of a broad spectrum of fault localization techniques, each of which aims to streamline the fault localization process and make it more effective by attacking the problem in a unique way. In this article, we catalog and provide a comprehensive overview of such techniques and discuss key issues and concerns that are pertinent to software fault localization as a whole.",
keywords = "execution trace, program debugging, Software fault localization, software testing, survey, suspicious code",
author = "Wong, {W. Eric} and Ruizhi Gao and Yihao Li and Rui Abreu and Franz Wotawa",
year = "2016",
month = "8",
day = "1",
doi = "10.1109/TSE.2016.2521368",
language = "English",
volume = "42",
pages = "707--740",
journal = "IEEE Transactions on Software Engineering",
issn = "0098-5589",
publisher = "Institute of Electrical and Electronics Engineers",
number = "8",

}

TY - JOUR

T1 - A survey on software fault localization

AU - Wong, W. Eric

AU - Gao, Ruizhi

AU - Li, Yihao

AU - Abreu, Rui

AU - Wotawa, Franz

PY - 2016/8/1

Y1 - 2016/8/1

N2 - Software fault localization, the act of identifying the locations of faults in a program, is widely recognized to be one of the most tedious, time consuming, and expensive - yet equally critical - activities in program debugging. Due to the increasing scale and complexity of software today, manually locating faults when failures occur is rapidly becoming infeasible, and consequently, there is a strong demand for techniques that can guide software developers to the locations of faults in a program with minimal human intervention. This demand in turn has fueled the proposal and development of a broad spectrum of fault localization techniques, each of which aims to streamline the fault localization process and make it more effective by attacking the problem in a unique way. In this article, we catalog and provide a comprehensive overview of such techniques and discuss key issues and concerns that are pertinent to software fault localization as a whole.

AB - Software fault localization, the act of identifying the locations of faults in a program, is widely recognized to be one of the most tedious, time consuming, and expensive - yet equally critical - activities in program debugging. Due to the increasing scale and complexity of software today, manually locating faults when failures occur is rapidly becoming infeasible, and consequently, there is a strong demand for techniques that can guide software developers to the locations of faults in a program with minimal human intervention. This demand in turn has fueled the proposal and development of a broad spectrum of fault localization techniques, each of which aims to streamline the fault localization process and make it more effective by attacking the problem in a unique way. In this article, we catalog and provide a comprehensive overview of such techniques and discuss key issues and concerns that are pertinent to software fault localization as a whole.

KW - execution trace

KW - program debugging

KW - Software fault localization

KW - software testing

KW - survey

KW - suspicious code

UR - http://www.scopus.com/inward/record.url?scp=84983371446&partnerID=8YFLogxK

U2 - 10.1109/TSE.2016.2521368

DO - 10.1109/TSE.2016.2521368

M3 - Review article

VL - 42

SP - 707

EP - 740

JO - IEEE Transactions on Software Engineering

JF - IEEE Transactions on Software Engineering

SN - 0098-5589

IS - 8

M1 - 7390282

ER -