Fuzzy Set and Cache-based Approach for Bug Triaging
Ahmed Tamrawi, Tung Thanh Nguyen, Jafar Al-Kofahi, Tien N. Nguyen

Locality of Fixing Activity

Analyzing several bug reports fixed by the same person in our datasets, we found that (s)he tends to have recent fixing activities. For example, bug reports #312322, #312291, #312466, and #311848 were fixed by the same fixer Darin Wright in two days 05/10 and 05/11/2010. We hypothesize that, the fixing activity has locality: the recent fixing developers are likely to fix bug reports in the near future.

To validate this hypothesis, we have conducted an experiment in which we analyzed the collected datasets to compute how often a fixer of a bug report is the one who has some recent fixing activity.

First, we chronically sorted the bug reports in a project by their fixing time. For a bug report b that was fixed at time t by a developer d, we sorted all developers having fixing activities before t based on their most recent fixing time. Then, if d belongs to the top x% fixers of that list, we count this as a hit. Finally, we compute p(x) as the percentage of hits over the total number of analyzed bug reports. Table 2 shows the experiment result for all projects.



As seen, it is consistent in all systems that p(x) is rather large even at small x. For example in Eclipse, at x = 10%, p(x) = 81% , i.e. in around 81% of the cases, the fixer of a bug report is in the top 10% of the developers who have most recent fixing activities. At x = 50%, p(x) exceeds 97% in 6 systems. Note that, at x = 100%, p(x) could not reach 100% since there are always new fixers who have no historical fixing activity, thus, (s)he does not belong to the list of developers with recent fixing activities.

The experiment result confirms our hypothesis on the locality of fixing activity. This result suggests that: instead of selecting all available developers as fixer candidates for a bug report, we could select a small portion of them based on their recent fixing activities. This selection would significantly improve time efficiency without losing much accuracy.