Zachary P. Fry

dblp:80/4948 · DBLP profile ↗
← Back
6ranked-venue papers
3as first author
0since 2021 · last 2013
—ORCID · none

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

Software engineering, systems software and programming languages · 6 · 3 first-authorDatabases, data management, data science and information retrieval · 1

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
2 papers
Debugging and program repair · 51% Software testing · 23% Software maintenance and evolution · 20%

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

TopicWeightPapersLastEvidence papers
Debugging and program repair
automated program repair
0.212013
Leveraging program equivalence for adaptive program repair: Models and first results · ASE 2013
Debugging and program repair › automated program repair
generate-and-validate repair
0.212013
Leveraging program equivalence for adaptive program repair: Models and first results · ASE 2013
Software testing
mutation testing
0.212013
Leveraging program equivalence for adaptive program repair: Models and first results · ASE 2013
Program verification
semantic equivalence
0.012013
Leveraging program equivalence for adaptive program repair: Models and first results · ASE 2013
Debugging and program repair › automated program repair
automated patch generation
0.012012
A human study of patch maintainability · ISSTA 2012

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

test execution · 0.2program equivalence · 0.2data flow analysis · 0.2human study · 0.1
YearPublicationVenuePosition
2013 Leveraging Light-Weight Analyses to Aid Software Maintenance
abstract
We will evaluate our techniques and tools on large, real-world systems, comprising tens of millions of lines of code and thousands of defects. The proposed work will attempt to reduce the cost of three specific maintenance tasks: triaging automatically-generated defect reports, automatically synthesizing defect repairs, and automatically identifying out-of-date or incomplete system documentation. We hope to address bottlenecks in each of these three areas and show concrete time and effort savings for each process. The rest of this section describes each maintenance process and our proposed improvements in each case.
Zachary P. Fry, Westley Weimer
ICST1
2013 Leveraging program equivalence for adaptive program repair: Models and first results
abstract
Software bugs remain a compelling problem. Automated program repair is a promising approach for reducing cost, and many methods have recently demonstrated positive results. However, success on any particular bug is variable, as is the cost to find a repair. This paper focuses on generate-and-validate repair methods that enumerate candidate repairs and use test cases to define correct behavior. We formalize repair cost in terms of test executions, which dominate most test-based repair algorithms. Insights from this model lead to a novel deterministic repair algorithm that computes a patch quotient space with respect to an approximate semantic equivalence relation. This allows syntactic and dataflow analysis techniques to dramatically reduce the repair search space. Generate-and-validate program repair is shown to be a dual of mutation testing, suggesting several possible cross-fertilizations. Evaluating on 105 real-world bugs in programs totaling 5MLOC and involving 10,000 tests, our new algorithm requires an order-of-magnitude fewer test evaluations than the previous state-of-the-art and is over three times more efficient monetarily.
Westley Weimer, Zachary P. Fry, Stephanie Forrest
ASE2
2012 A human study of patch maintainability
abstract
Identifying and fixing defects is a crucial and expensive part of the software lifecycle. Measuring the quality of bug-fixing patches is a difficult task that affects both functional correctness and the future maintainability of the code base. Recent research interest in automatic patch generation makes a systematic understanding of patch maintainability and understandability even more critical.
Zachary P. Fry, Bryan Landau, Westley Weimer
ISSTA1
2010 A human study of fault localization accuracy
abstract
Localizing and repairing defects are critical software engineering activities. Not all programs and not all bugs are equally easy to debug, however. We present formal models, backed by a human study involving 65 participants (from both academia and industry) and 1830 total judgments, relating various software- and defect-related features to human accuracy at locating errors. Our study involves example code from Java textbooks, helping us to control for both readability and complexity. We find that certain types of defects are much harder for humans to locate accurately. For example, humans are over five times more accurate at locating “extra statements” than “missing statements” based on experimental observation. We also find that, independent of the type of defect involved, certain code contexts are harder to debug than others. For example, humans are over three times more accurate at finding defects in code that provides an array abstraction than in code that provides a tree abstraction. We identify and analyze code features that are predictive of human fault localization accuracy. Finally, we present a formal model of debugging accuracy based on those source code features that have a statistically significant correlation with human performance.
Zachary P. Fry, Westley Weimer
ICSM1
2008 AMAP: automatically mining abbreviation expansions in programs to enhance software maintenance tools
abstract
When writing software, developers often employ abbreviations in identifier names. In fact, some abbreviations may never occur with the expanded word, or occur more often in the code. However, most existing program comprehension and search tools do little to address the problem of abbreviations, and therefore may miss meaningful pieces of code or relationships between software artifacts. In this paper, we present an automated approach to mining abbreviation expansions from source code to enhance software maintenance tools that utilize natural language information. Our scoped approach uses contextual information at the method, program, and general software level to automatically select the most appropriate expansion for a given abbreviation. We evaluated our approach on a set of 250 potential abbreviations and found that our scoped approach provides a 57% improvement in accuracy over the current state of the art.
Emily Hill 0001, Zachary P. Fry, Haley Boyd, Giriprasad Sridhara, Yana Novikova, Lori L. Pollock, K. Vijay-Shanker
MSR2
2007 Introducing natural language program analysis
abstract
This research group presentation focuses on our work in extracting and utilizing natural language clues from source code to improve software maintenance tools. We demonstrate the valuable information that can be gained from a software system's identifiers, literals, and comments. We then present an overview of our extraction process, program representation, and a set of tools we have developedusing this natural language program analysis.
Lori L. Pollock, K. Vijay-Shanker, David C. Shepherd, Emily Hill 0001, Zachary P. Fry, Kishen Maloor
PASTE5