PorchLight: A Tag-based Approach to Bug Triaging
Bug triaging is an important activity in any software development project. It involves triagers working through the set of unassigned bugs, determining for each of the bugs whether it represents a new issue that should receive attention, and, if so, assigning it to a developer and a milestone. Current bug tracking tools provide only minimal support for bug triaging, and especially break down when users must triage a large number of bug reports, since those reports can only be viewed one-by-one.
This dissertation seeks to further our understanding of bug triaging, particularly the conjecture that allowing triagers to work and organize bugs in sets better matches what they want to do when they triage. Our vehicle for exploring this conjecture is PorchLight, a prototype triaging environment that uses tags, assigned to individual bug reports by queries expressed in a specialized bug tagging language, to organize bug reports into meaningful sets so triagers can more easily explore, organize, and ultimately work with bugs in sets. We describe the current challenges in supporting bug triaging, the design decisions upon which PorchLight rests, and the technical aspects of the implementation.
We conducted two studies using PorchLight. The first was a preliminary user study to test the concept, assess the usability of the tool, and to determine if triagers would be able to employ the basic features. The second was a participant observation study with four participants over a set of six sessions in which we engaged them in discussions about their approach to triaging, and performed triaging using bugs from projects with which they were familiar.
Our study led to several key findings. We found that triaging can be a highly context-dependent activity that varies between individuals and projects. Through our discussions with the participants, we also uncovered latent workflows that were realized through the exploration of bugs in sets. Finally, the ability to directly work with bugs in sets rather than individually seems to have enabled triagers to both think about, and work with, bugs more naturally, particularly when there are a large number of bugs that need to be triaged.