Interactive Fault Localization Techniques in a Spreadsheet Environment * Joseph R. Ruthruff Margaret Burnett Gregg Rothermel § Abstract End-user programmers develop more software than any other group of programmers, using soft- ware authoring devices such as multimedia simulation builders, e-mail filtering editors, by-demonstration macro builders, and spreadsheet environments. Despite this, there has been only a little research on find- ing ways to help these programmers with the dependability of the software they create. We have been working to address this problem in several ways, one of which includes supporting end-user debugging activities through interactive fault localization techniques. This article investigates fault localization techniques in the spreadsheet domain, the most common type of end-user programming environment. We investigate a technique previously described in the research literature, and two new techniques. We present the results of an empirical study to examine the impact of two individual factors on the effec- tiveness of fault localization techniques. Our results reveal several insights into the contributions such techniques can make to the end-user debugging process, and highlight key issues of interest to researchers and practitioners who may design and evaluate future fault localization techniques. Keywords: fault localization, debugging, end-user software engineering, spreadsheets, end-user pro- gramming 1 Introduction Not long ago, most software was developed by “professional” programmers, a large portion of whom had reason to be interested in and understand software engineering theory and practice. Today, however, end-user programmers, who often have no reason to be interested in or understand such theory and practice, write far more software than professional programmers. In fact, Scaffidi et al. [59] estimate that there were 80 million end-user programmers in American workplaces in 2005, and that this number will rise to 90 million by 2012, as compared to fewer than 3 million professional programmers [59]. 1 The software created by these end users is highly diverse, including multimedia simulations, dynamic web pages, e-mail filtering rules, and spreadsheets. Unfortunately, there is reason to believe that end users do not have adequate programming support. For example, Boehm and Basili [9] observe that 40–50% of the software created by end users contains non-trivial * This article is a revised and expanded version of a paper presented at the 27 th International Conference on Software Engineering, May 2005 [55]. This work was performed at Oregon State University, Corvallis, Oregon, USA. Department of Computer Science and Engineering, University of Nebraska–Lincoln, Lincoln, NE, USA, ruthruff@cse.unl.edu School of Electrical Engineering and Computer Science, Oregon State University, Corvallis, OR, USA, burnett@eecs.orst.edu § Department of Computer Science and Engineering, University of Nebraska–Lincoln, Lincoln, NE, USA, grother@cse.unl.edu 1 Scaffidi et al. [59] identify specific “end-user subpopulations” such as “Managerial and Professional”, “Technical, Sales, Administration”, “Service”, and so on. They derived their numbers using recent Bureau of Labor Statistics data and projections. 1