Nicholas DiGiuseppe

dblp:97/5106 · DBLP profile ↗
← Back
7ranked-venue papers
7as first author
0since 2021 · last 2015
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7 · 7 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
4 papers
Debugging and program repair · 89% Empirical software engineering · 11%

Topics — the 6 heaviest of 7, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Debugging and program repair
fault localization
0.432013
Automatically describing software faults · ESEC/SIGSOFT FSE 2013
Semantic fault diagnosis: automatic natural-language fault descriptions · SIGSOFT FSE 2012
On the influence of multiple faults on coverage-based fault localization · ISSTA 2011
Debugging and program repair › human factors in debugging
fault comprehension
0.322013
Automatically describing software faults · ESEC/SIGSOFT FSE 2013
Semantic fault diagnosis: automatic natural-language fault descriptions · SIGSOFT FSE 2012
Debugging and program repair › failure analysis
failure clustering
0.112012
Concept-based failure clustering · SIGSOFT FSE 2012
Empirical software engineering › software engineering research methodology
empirical study
0.112011
On the influence of multiple faults on coverage-based fault localization · ISSTA 2011
Debugging and program repair › fault localization
spectrum-based fault localization
0.112011
On the influence of multiple faults on coverage-based fault localization · ISSTA 2011
Debugging and program repair › fault localization
statistical debugging
0.012011
On the influence of multiple faults on coverage-based fault localization · ISSTA 2011

Methods — techniques the papers use, named apart from their topics

dynamic analysis · 0.3source-code mining · 0.2natural language generation · 0.2lexicographic analysis · 0.1latent semantic analysis · 0.1control flow analysis · 0.1
YearPublicationVenuePosition
2015 Fault density, fault types, and spectra-based fault localization
Nicholas DiGiuseppe, James A. Jones
Empir. Softw. Eng.1
2013 Automatically describing software faults
abstract
A developers ability to successfully debug a fault is directly related to their ability to comprehend the fault. Notwithstanding improvements in software-maintenance automation, this fault comprehension task remains largely manual and time consuming. I propose an automated approach to describe software faults, thus ameliorating comprehension and reducing manual effort. My approach leverages dynamic analysis, fault localization, and source-code mining to produce a succinct, natural-language fault summary.
Nicholas DiGiuseppe
ESEC/SIGSOFT FSE1
2012 Software Behavior and Failure Clustering: An Empirical Study of Fault Causality
abstract
To cluster executions that exhibit faulty behavior by the faults that cause them, researchers have proposed using internal execution events, such as statement profiles, to (1) measure execution similarities, (2) categorize executions based on those similarity results, and (3) suggest the resulting categories as sets of executions exhibiting uniform fault behavior. However, due to a paucity of evidence correlating profiles and output behavior, researchers employ multiple simplifying assumptions in order to justify such approaches. In this paper we present an empirical study of profile correlation with output behavior, and we reexamine the suitability of such simplifying assumptions. We examine over 4 billion test-case outputs and execution profiles from multiple programs with over 9000 versions. Our data provides evidence that with current techniques many executions should be omitted from the clustering analysis to provide clusters that each represent a single fault. In addition, our data reveals the previously undocumented effects of multiple faults on failures, which has implications for techniques' ability (and inability) to properly cluster. Our results suggest directions for the improvement of future failure-clustering techniques that better account for software-fault behavior.
Nicholas DiGiuseppe, James A. Jones
ICST1
2012 Semantic fault diagnosis: automatic natural-language fault descriptions
abstract
Before a fault can be fixed, it first must be understood. However, understanding why a system fails is often a difficult and time consuming process. While current automated-debugging techniques provide assistance in knowing where a fault is, developers are left unaided in understanding what a fault is, and why the system is failing. We present Semantic Fault Diagnosis (SFD), a technique that leverages lexicographic and dynamic information to automatically capture natural-language fault descriptors. SFD utilizes class names, method names, variable expressions, developer comments, and keywords from the source code to describe a fault. SFD can be used immediately after observing a failing execution and requires no input from developers or bug reports. In addition we present motivating examples and results from a SFD prototype to serve as a proof of concept.
Nicholas DiGiuseppe, James A. Jones
SIGSOFT FSE1
2012 Concept-based failure clustering
abstract
When attempting to determine the number and set of execution failures that are caused by particular faults, developers must perform an arduous task of investigating and diagnosing each individual failure. Researchers proposed failure-clustering techniques to automatically categorize failures, with the intention of isolating each culpable fault. The current techniques utilize dynamic control flow to characterize each failure to then cluster them. These existing techniques, however, are blind to the intent or purpose of each execution, other than what can be inferred by the control-flow profile. We hypothesize that semantically rich execution information can aid clustering effectiveness by categorizing failures according to which functionality they exhibit in the software. This paper presents a novel clustering method that utilizes latent-semantic-analysis techniques to categorize each failure by the semantic concepts that are expressed in the executed source code. We present an experiment comparing this new technique to traditional control-flow-based clustering. The results of the experiment showed that the semantic-concept clustering was more precise in the number of clusters produced than the traditional approach, without sacrificing cluster accuracy.
Nicholas DiGiuseppe, James A. Jones
SIGSOFT FSE1
2011 Fault interaction and its repercussions
abstract
Multiple faults in a program can interact to form new behaviors in a program that would not be realized if the program were to contain the individual faults. This paper presents an in-depth study of the effects of the interaction of faults within a program. Many researchers attempt to ameliorate the effects of faulty programs. Unfortunately, such researchers are left to rely upon intuition about fault behavior due to the paucity of formalized studies of faults and their behavior. In an attempt to advance the understanding of faults and their behavior, we conducted a study of fault interaction across six subjects with more than 65,000 multiple-fault versions. The results of our study show four significant types of interaction, with one type - faults obscuring the effects of other faults - as the most prevalent type. The prevalence of obscuring faults' effects has an adverse effect on many automated software-engineering techniques, such as regression-testing, fault-localization, and fault-clustering techniques. Given that software commonly contains more than a single fault, these results have implications for developers and researchers alike by informing them of expected complications, which in many instances are opposite to intuition.
Nicholas DiGiuseppe, James A. Jones
ICSM1
2011 On the influence of multiple faults on coverage-based fault localization
abstract
This paper presents an empirical study on the effects of the quantity of faults on statistical, coverage-based fault localization techniques. The former belief was that the effectiveness of fault-localization techniques was inversely proportional to the quantity of faults. In an attempt to verify these beliefs, we conducted a study on three programs varying in size on more than 13,000 multiple-fault versions. We found that the influence of multiple faults (1) was not as great as expected, (2) created a negligible effect on the effectiveness of the fault localization, and (3) was often even complimentary to the fault-localization effectiveness. In general, even in the presence of many faults, at least one fault was found by the fault-localization technique with high effectiveness. We also found that some faults were localizable regardless of the presence of other faults, whereas other faults' ability to be found by these techniques varied greatly in the presence of other faults. Because almost all real-world software contains multiple faults, these results impact the use of statistical fault-localization techniques and provide a greater understanding of their potential in practice.
Nicholas DiGiuseppe, James A. Jones
ISSTA1