Brian Burg

dblp:28/8166 · DBLP profile ↗
← Back
7ranked-venue papers
4as 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 · 4 · 1 first-authorHuman-computer interaction and ubiquitous computing · 3 · 3 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
5 papers
Debugging and program repair · 55% Programming languages and type systems · 15% Software maintenance and evolution · 14%
Human-computer interaction and pervasive computing
1 paper
User interface design and tools · 100%

Topics — the 14 heaviest of 15, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Debugging and program repair
automated debugging
0.212015
On the use of delta debugging to reduce recordings and facilitate debugging of web applications · ESEC/SIGSOFT FSE 2015
Debugging and program repair › automated debugging
delta debugging
0.212015
On the use of delta debugging to reduce recordings and facilitate debugging of web applications · ESEC/SIGSOFT FSE 2015
Debugging and program repair
fault localization
0.212015
On the use of delta debugging to reduce recordings and facilitate debugging of web applications · ESEC/SIGSOFT FSE 2015
Software maintenance and evolution
program comprehension
0.212015
Explaining Visual Changes in Web Interfaces · UIST 2015
Debugging and program repair › record and replay
deterministic replay
0.212013
Interactive record/replay for web application debugging · UIST 2013
Programming languages and type systems › programming environment
live programming
0.212013
1st international workshop on live programming (LIVE 2013) · ICSE 2013
Debugging and program repair › record and replay
replay debugging
0.212013
Interactive record/replay for web application debugging · UIST 2013
Programming languages and type systems
dynamic languages
0.112010
An analysis of the dynamic behavior of JavaScript programs · PLDI 2010
Program analysis
dynamic analysis
0.112015
Explaining Visual Changes in Web Interfaces · UIST 2015
Software testing › GUI testing
record-and-replay testing
0.112015
On the use of delta debugging to reduce recordings and facilitate debugging of web applications · ESEC/SIGSOFT FSE 2015
Software testing
regression testing
0.112015
On the use of delta debugging to reduce recordings and facilitate debugging of web applications · ESEC/SIGSOFT FSE 2015
User interface design and tools
programming environments
0.012013
1st international workshop on live programming (LIVE 2013) · ICSE 2013
Software maintenance and evolution › issue tracking
bug reporting
0.012013
Interactive record/replay for web application debugging · UIST 2013
Debugging and program repair
bug reproduction
0.012013
Interactive record/replay for web application debugging · UIST 2013

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

delta debugging · 0.2record/replay infrastructure · 0.2empirical study · 0.1corpus analysis · 0.1
YearPublicationVenuePosition
2015 On the use of delta debugging to reduce recordings and facilitate debugging of web applications
abstract
Recording the sequence of events that lead to a failure of a web application can be an effective aid for debugging. Nevertheless, a recording of an event sequence may include many events that are not related to a failure, and this may render debugging more difficult. To address this problem, we have adapted Delta Debugging to function on recordings of web applications, in a manner that lets it identify and discard portions of those recordings that do not influence the occurrence of a failure. We present the results of three empirical studies that show that (1) recording reduction can achieve significant reductions in recording size and replay time on actual web applications obtained from developer forums, (2) reduced recordings do in fact help programmers locate faults significantly more efficiently as, and no less effectively than non-reduced recordings, and (3) recording reduction produces even greater reductions on larger, more complex applications.
Mouna Hammoudi, Brian Burg, Gigon Bae, Gregg Rothermel
ESEC/SIGSOFT FSE2
2015 Explaining Visual Changes in Web Interfaces
abstract
Web developers often want to repurpose interactive behaviors from third-party web pages, but struggle to locate the specific source code that implements the behavior. This task is challenging because developers must find and connect all of the non-local interactions between event-based JavaScript code, declarative CSS styles, and web page content that combine to express the behavior.
Brian Burg, Amy J. Ko, Michael D. Ernst
UIST1
2013 1st international workshop on live programming (LIVE 2013)
abstract
Live programming is an idea espoused by programming environments from the earliest days of computing (such as Lisp machines and SmallTalk) but have since lain dormant. Recently, the prevalence of asynchronous feedback in programming languages such as Javascript and advances in visualizations and user interfaces have lead to a resurgence of live programming in online education communities (such as Khan Academy) and in experimental IDEs (such as LightTable). The LIVE 2013 workshop includes 11 papers describing visions, implementations, mashups, and new directions of live programming environments. The participants include both practitioners of live coding and researchers in programming languages and software engineering. Finally, several demos curated on the live workshop page are presented.
Brian Burg, Adrian Kuhn, Chris Parnin
ICSE1
2013 Interactive record/replay for web application debugging
abstract
During debugging, a developer must repeatedly and manually reproduce faulty behavior in order to inspect different facets of the program's execution. Existing tools for reproducing such behaviors prevent the use of debugging aids such as breakpoints and logging, and are not designed for interactive, random-access exploration of recorded behavior. This paper presents Timelapse, a tool for quickly recording, reproducing, and debugging interactive behaviors in web applications. Developers can use Timelapse to browse, visualize, and seek within recorded program executions while simultaneously using familiar debugging tools such as breakpoints and logging. Testers and end-users can use Timelapse to demonstrate failures in situ and share recorded behaviors with developers, improving bug report quality by obviating the need for detailed reproduction steps. Timelapse is built on Dolos, a novel record/replay infrastructure that ensures deterministic execution by capturing and reusing program inputs both from the user and from external sources such as the network. Dolos introduces negligible overhead and does not interfere with breakpoints and logging. In a small user evaluation, participants used Timelapse to accelerate existing reproduction activities, but were not significantly faster or more successful in completing the larger tasks at hand. Together, the Dolos infrastructure and Timelapse developer tool support systematic bug reporting and debugging practices.
Brian Burg, Amy J. Ko, Michael D. Ernst
UIST1
2013 Answering program understanding questions on demand with task-specific runtime information
abstract
When debugging or otherwise understanding software, developers frequently ask questions such as “how did this function get called?” and “where did this value come from?”. Runtime data is a valuable yet underused resource for answering these questions. There are at least four major barriers to answering questions with runtime data: 1) Deciding what runtime data should be collected 2) Deciding how to collect relevant runtime data 3) Aggregating and summarizing collected data 4) Interpreting the results to make conclusions.
Brian Burg
VL/HCC1
2011 The Eval That Men Do - A Large-Scale Study of the Use of Eval in JavaScript Applications
Gregor Richards, Christian Hammer 0001, Brian Burg, Jan Vitek
ECOOP3
2010 An analysis of the dynamic behavior of JavaScript programs
abstract
The JavaScript programming language is widely used for web programming and, increasingly, for general purpose computing. As such, improving the correctness, security and performance of JavaScript applications has been the driving force for research in type systems, static analysis and compiler techniques for this language. Many of these techniques aim to reign in some of the most dynamic features of the language, yet little seems to be known about how programmers actually utilize the language or these features. In this paper we perform an empirical study of the dynamic behavior of a corpus of widely-used JavaScript programs, and analyze how and why the dynamic features are used. We report on the degree of dynamism that is exhibited by these JavaScript programs and compare that with assumptions commonly made in the literature and accepted industry benchmark suites.
Gregor Richards, Sylvain Lebresne, Brian Burg, Jan Vitek
PLDI3