Abstract:
End users develop more software than any other group of programmers, using
software authoring devices such as e-mail filtering editors, by-demonstration macro
builders, and spreadsheet environments. Despite this, there has been only a little
research on finding 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 thesis investigates these fault localization techniques
in the realm of end-user programming. We investigate a technique previously
described in the research literature, and two new techniques that are introduced in
this thesis. This thesis also presents the results of two empirical studies to examine
whether fault localization techniques are effective in end-user testing and debugging
tasks. The first study compares how well the three techniques isolate the faults
in two end-user programs. The second study examines the impact of two orthogonal
factors on the effectiveness 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.