Skip to main content

Lund University Publications

LUND UNIVERSITY LIBRARIES

Residual Investigation : Predictive and Precise Bug Detection

Li, Kaituo ; Reichenbach, Christoph LU orcid ; Csallner, Christoph and Smaragdakis, Yannis (2015) Software Engineering and Management 2015: Multikonferenz der GI-Fachbereiche Softwaretechnik (SWT) und Wirtschaftsinformatik (WI), FA WI-MAW - Software Engineering and Management 2015: Multiconference of the GI Special Interest Groups Software Engineering (SWT) and Information Systems (WI), FA WI-MAW In Lecture Notes in Informatics (LNI), Proceedings - Series of the Gesellschaft fur Informatik (GI) P-239. p.133-134
Abstract

We introduce the concept of “residual investigation” for program analysis. A residual investigation is a dynamic check installed as a result of running a static analysis that reports a possible program error. The purpose is to observe conditions that indicate whether the statically predicted program fault is likely to be realizable and relevant. The key feature of a residual investigation is that it has to be much more precise (i.e., with fewer false warnings) than the static analysis alone, yet significantly more general (i.e., reporting more errors) than the dynamic tests in the program’s test suite that are pertinent to the statically reported error. That is, good residual investigations encode dynamic conditions that, when... (More)

We introduce the concept of “residual investigation” for program analysis. A residual investigation is a dynamic check installed as a result of running a static analysis that reports a possible program error. The purpose is to observe conditions that indicate whether the statically predicted program fault is likely to be realizable and relevant. The key feature of a residual investigation is that it has to be much more precise (i.e., with fewer false warnings) than the static analysis alone, yet significantly more general (i.e., reporting more errors) than the dynamic tests in the program’s test suite that are pertinent to the statically reported error. That is, good residual investigations encode dynamic conditions that, when considered in conjunction with the static error report, increase confidence in the existence or severity of an error without needing to directly observe a fault resulting from the error. We enhance the static analyser FindBugs with several residual investigations, appropriately tuned to the static error patterns in FindBugs, and apply it to 9 large open-source systems and their native test suites. The result is an analysis with a low occurrence of false warnings (“false positives”) while reporting several actual errors that would not have been detected by mere execution of a program’s test suite.

(Less)
Please use this url to cite or link to this publication:
author
; ; and
publishing date
type
Chapter in Book/Report/Conference proceeding
publication status
published
subject
host publication
Software Engineering and Management 2015 : Multikonferenz der GI-Fachbereiche Softwaretechnik (SWT) und Wirtschaftsinformatik (WI), FA WI-MAW - Multikonferenz der GI-Fachbereiche Softwaretechnik (SWT) und Wirtschaftsinformatik (WI), FA WI-MAW
series title
Lecture Notes in Informatics (LNI), Proceedings - Series of the Gesellschaft fur Informatik (GI)
editor
Assmann, Uwe ; Demuth, Birgit ; Spitta, Thorsten ; Puschel, Georg and Kaiser, Ronny
volume
P-239
pages
2 pages
publisher
Gesellschaft fur Informatik
conference name
Software Engineering and Management 2015: Multikonferenz der GI-Fachbereiche Softwaretechnik (SWT) und Wirtschaftsinformatik (WI), FA WI-MAW - Software Engineering and Management 2015: Multiconference of the GI Special Interest Groups Software Engineering (SWT) and Information Systems (WI), FA WI-MAW
conference location
Dresden, Germany
conference dates
2015-03-17 - 2015-03-20
external identifiers
  • scopus:85134727250
ISSN
1617-5468
ISBN
9783885796336
language
English
LU publication?
no
additional info
Publisher Copyright: © 2015 Gesellschaft fur Informatik (GI). All rights reserved.
id
43d7d2b8-44d7-46c3-bfa7-dae8105ef842
date added to LUP
2022-11-13 17:07:32
date last changed
2025-04-04 14:52:08
@inproceedings{43d7d2b8-44d7-46c3-bfa7-dae8105ef842,
  abstract     = {{<p>We introduce the concept of “residual investigation” for program analysis. A residual investigation is a dynamic check installed as a result of running a static analysis that reports a possible program error. The purpose is to observe conditions that indicate whether the statically predicted program fault is likely to be realizable and relevant. The key feature of a residual investigation is that it has to be much more precise (i.e., with fewer false warnings) than the static analysis alone, yet significantly more general (i.e., reporting more errors) than the dynamic tests in the program’s test suite that are pertinent to the statically reported error. That is, good residual investigations encode dynamic conditions that, when considered in conjunction with the static error report, increase confidence in the existence or severity of an error without needing to directly observe a fault resulting from the error. We enhance the static analyser FindBugs with several residual investigations, appropriately tuned to the static error patterns in FindBugs, and apply it to 9 large open-source systems and their native test suites. The result is an analysis with a low occurrence of false warnings (“false positives”) while reporting several actual errors that would not have been detected by mere execution of a program’s test suite.</p>}},
  author       = {{Li, Kaituo and Reichenbach, Christoph and Csallner, Christoph and Smaragdakis, Yannis}},
  booktitle    = {{Software Engineering and Management 2015 : Multikonferenz der GI-Fachbereiche Softwaretechnik (SWT) und Wirtschaftsinformatik (WI), FA WI-MAW}},
  editor       = {{Assmann, Uwe and Demuth, Birgit and Spitta, Thorsten and Puschel, Georg and Kaiser, Ronny}},
  isbn         = {{9783885796336}},
  issn         = {{1617-5468}},
  language     = {{eng}},
  pages        = {{133--134}},
  publisher    = {{Gesellschaft fur Informatik}},
  series       = {{Lecture Notes in Informatics (LNI), Proceedings - Series of the Gesellschaft fur Informatik (GI)}},
  title        = {{Residual Investigation : Predictive and Precise Bug Detection}},
  volume       = {{P-239}},
  year         = {{2015}},
}