=Paper= {{Paper |id=Vol-1519/paper4 |storemode=property |title=A Decision Support Platform for Guiding a Bug Triage for Resolver Recommendation Using Textual and Non-Textual Features |pdfUrl=https://ceur-ws.org/Vol-1519/paper4.pdf |volume=Vol-1519 |dblpUrl=https://dblp.org/rec/conf/apsec/SurekaSBMK15 }} ==A Decision Support Platform for Guiding a Bug Triage for Resolver Recommendation Using Textual and Non-Textual Features== https://ceur-ws.org/Vol-1519/paper4.pdf
    A Decision Support Platform for Guiding a Bug
     Triager for Resolver Recommendation Using
          Textual and Non-Textual Features
           Ashish Sureka, Himanshu kumar Singh, Manjunath Bagewadi, Abhishek Mitra, Rohit Karanth

                                        Siemens Corporate Research and Technology, India


   Abstract—It is largely believed among researchers that the         that reviews the incoming bugs and decides who to assign it to,
software engineering methods and techniques based on mining of        or whether more information is required, or a bug is irrelevant,
software repositories (MSR) have the potential of providing sound     or behavior needs to be observed more. As can be imagined
and empirical basis for Software Engineering tasks. But it has
been observed that the main hurdles to adoption of the techniques     that the decisions made by the CCB are knowledge intensive
are organizational in nature or people centric, for example lack      and it requires prior knowledge about the software system,
of access to data, organizational inertia, general lack of faith in   expertise of the developer, team structure and composition and
results achieved without human intervention, and a tendency of        developer workload. In some instances, in order to optimize
experts to feel that their inability to arrive at optimal decisions   the time of the entire CCB, a pre-CCB is conducted by
is rooted in someone else’s shortcomings, in this case person
who files the bug. We share our experiences in developing a           individual members of the board on assigned subset of bugs
use case for applying such methods to the common software             and the individual recommendations are reviewed in complete
engineering task of Bug Triaging within an industrial setup. We       CCB. The average time to triage a bug in such a process can
accompany the well researched technique of applying textual           be captured as following:
information content in bug reports with additional measures
in order to improve the acceptance and effectiveness of the                                Tpre−CCB ∗ M + TCCB
system. Specifically we present: A) use of non-textual features                       t=
for factoring in the decision making process that a human would                                     N
follow; B) making available effectiveness metrics that present a
basis for comparing the results of the automated systems against         Here, t denotes the average time it takes to triage a bug,
the existing practice of relying on human decision making; and        given M committee members taking Tpre−CCB time individu-
C) presenting reasoning or the justification behind the results so    ally for assessing their subset of bugs and TCCB time together
that the human experts can validate and accept the results. We        to discuss and finalize recommendation for N bugs. From the
present these non-textual features and some of the metrics and
discuss on how these can address the adoption concerns for this
                                                                      above, its clear that any method that can assist in reducing
specific use case.                                                    any of M, TCCB and Tpre−CCB has potential to increase
   Index Terms—Bug Fixer Recommendation, Bug Triaging, Issue          overall efficiency. Research shows that manual assignment of
Tracking System, Machine Learning, Mining Software Reposito-          bug reports to resolvers without any support from an expert
ries, Software Analytics, Software Maintenance                        system results in several incorrect assignments [1][2][3][4][5].
                                                                      Incorrect assignment is undesirable and inefficient as it delays
             I. P ROBLEM D EFINITION AND A IM                         the bug resolution due to reassignments. While there has been
   Bug Resolver Recommendation, Bug Assignment or Triag-              recent advancements in solutions for automatic bug assign-
ing consists of determining the fixer or resolver of an issue         ment, the problem is still not fully solved [1][2][3][4][5]. Fur-
reported to the Issue Tracking System (ITS). Bug Assignment           thermore, majority of the studies on automatic bug assignment
is an important activity both in OSS (Open Source Software)           are conducted on OSS data and there is a lack of empirical
or CSS/PSS (Closed or Proprietary Source Software) domain             studies on PSS/CSS data. In addition to lack of studies on
as the assignment accuracy has an impact on the mean time to          Industrial or Commercial project data, application of non-
repair and project team effort incurred. Bug resolver assign-         textual features such as developer workload, experience and
ment is non-trivial in a large and complex software setting,          collaboration network for the task of automatic bug assignment
especially with globally distributed teams, wherein several           is relatively unexplored. The work presented in this paper is
bugs may get reported on a daily or weekly basis increasing the       motivated by the need to develop a decision support system for
burden on the triagers. One of the primary ways, identification       bug resolver recommendation based on the needs of Triagers.
of resolvers for open bug reports is normally done is through         The specific aims of the work presented in this paper are:
a decision by Change Control Board (CCB), members of                    1) To build a decision support system for guiding and as-
which represent various aspects of the software project such as            sisting triagers for the task of automatic bug assignment,
project management, development, testing and quality control.              this involves application of textual (terms in bug reports)
The CCB usually works as a collective decision making body                 to build a classification model



      3rd International Workshop on Quantitative Approaches to Software Quality (QuASoQ 2015)                                 23
   2) Using of non-textual features (components, developer        a multi-step processing pipeline from data extraction (from
       workload, experience, collaboration network, process       the issue tracking system) as back-end layer to display as
       map) for contextualizing the model.                        the front-end layer. As shown in Figure 2, we implement
   3) Provide insights about the bug fixing efficiency, defect    adaptors to extract data from Issue Tracking System (ITS)
       proneness and trends on time-to-repair through visual      used by the project teams and save into a MySQL database.
       analytics and a dashboard.                                 We create our own schema to save the data in our database
   4) Build the system in user centric manner by providing        and implement functionality to refresh the data based on a
       the justification and reasoning behind the recommended     pre-defined interval or triggered by the user. Bug reports
       assignments.                                               consist of free-form text fields such as title and description.
Rest of the paper is structured as follows: in Section II we      We apply a series of text pre-processing steps on the bug
discuss and argue that user centric approach to build such        report title and description before they are used for model
recommendation systems incorporates the elements necessary        building. We remove non content bearing terms (called as
to address the above goals. Next we discuss some of the           stop terms such as articles and propositions) and apply word
contextualization measures for the model, specifically use of     stemming using the Porter Stemmer (term normalization). We
a practitioner survey results and process map. In Section IV,     create a domain specific Exclude List to remove terms which
describes some of the metrics and measures that accompany         are non-discriminatory (for example, common domain terms
the system are how can they be used. Section V presents early     like bug, defect, reproduce, actual, expected and behavior).
results from applying the system on two sets of data obtained     We create an Include List to avoid splitting of phrases into
from actual industrial projects, one active for 2 years whereas   separate terms such as OpenGL Graphics Library, SQL Server
other for 9 years.                                                and Multi Core. We first apply the Include List and extract
                                                                  important phrases and then apply the domain specific exclude
       II. U SER CENTERED D ESIGN AND S OLUTION                   list. Include and Exclude Lists are customizable from the User
                     A RCHITECTURE                                Interface by the domain expert. The terms extracted from
   We create a User-Centered Design considering the objec-        the title and description of the bug reports represents dis-
tives and workflow of CCB. Our main motivation is to ensure a     criminatory features for the task of automatic bug assignment
high degree of usability and hence we give extensive attention    (based on the hypothesis that there is a correlation between
to the needs of our users. Figure 1 shows a high-level overview   the terms and the resolver). The next step in the processing
of the 4 features incorporated in our bug assignment decision     pipeline is to train a predictive model based on the Machine
support system. We display the Top K recommendation (k is         Learning framework. We used Weka which is a widely used
a parameter which can be configured by the administrator)         Java based Machine Learning toolkit called for model building
which is the primary goal of the recommender system. In           and application. We embed Weka within our system and invoke
addition to Top K recommendation, we present the justification    its functionality using the Java API. We train a Random
and reasoning behind the proposed recommendation.                 Forest and Naive Bayes classification model and use a voting
   We believe that displaying justification is important as the   mechanism to compute the classification score of the ensemble
decision maker needs to understand the rule or logic behind the   rather than individual scores to make the final predictions. We
inferences made by the expert system. We display the textual      also extract the component of the bug report as a categorical
similarity or term overlap and component similarity between       feature as we observe a correlation between the component
the incoming bug report and the recommended bug report as         and the resolver.
justification to the end-user. We show developer collaboration
network as one of the output of the recommendation system.           In terms of the implementation, we create an Attribute-
The node size in the collaboration network represents the         Relation File Format (ARFF) that describes the list of train-
number of bugs resolved, edge distance or thickness represents    ing instances (terms and components and predictors and the
the strength of collaboration (number of bugs co-resolved)        resolver as the target class). As shown in the Figure 3, we
and the node color represents role. As shown in Figure 1,         extract the developer collaboration network, information on
we display the developer workload and experience to the           prior work experience with the project and workload from the
Triager as complementary information assisting the user to        ITS. The ITS contains the number of bugs resolved by every
make triaging decisions. Figure 1 illustrates all four factors    developer from the beginning of the project. The ITS also
influencing triaging decisions (Top K Recommendation, Justi-      contains information about the open bugs and the assignees
fication and Reasoning, Collaboration Network and Developer       for the respective open bug. We use close and open bug
Workload and Experience) which connects with the results          status information and the assignees field to compute the prior
of our survey and interaction with members of the CCB in          experience of a developer and the current work load with
our organization. Figure 2 shows the high-level architecture      respect to bug resolution. Similarly, the collaboration network
illustrating key components of the decision support system.       between developers is determined by extracting information
We adopt a platform-based approach so that our system can         from the bugs lifecycle. The frond-end layer implementation
be customized across various projects using project based         consists of D3.JS, JavaScript, Java Servlet and Java Server
customization and fine-tuning. The architecture consists of       Pages (JSP).



     3rd International Workshop on Quantitative Approaches to Software Quality (QuASoQ 2015)                            24
Fig. 1. A High-Level Overview of the Features: Top K Recommendation with Confidence or Score Value, Justification or Reasoning behind the
Recommendation, Collaboration Network between the Developers, Workload & Prior Experience Values




     Fig. 2. High-Level Architecture Diagram displaying Key Components (Front-End, Back-End and Middle Tier) - A Platform-Based Architecture



     III. M ODEL C ONTEXTUALIZATION AND P ROCESS                          product manager, solution architect, quality assurance leader,
                     PARAMETERS                                           developers, and testers. The survey respondents had been in
                                                                          various roles and active members of bug triaging process.
   Since our goal is to solve problems encountered by the                 Hence the survey responses are from representatives in-charge
practitioners and model the system as closely as possible to the          of various aspects such as development, quality control and
actual process and workflows of CCB, we conduct a survey of               management. The objective of our survey was to gain insights
experienced practitioners to better understand their needs. We            on factors influencing the change boards triaging decisions.
conduct a survey of 5 senior committee members belonging
to Change Control Board (CCB) of our organizations soft-                                   IV. P RACTITIONER ’ S S URVEY
ware product lines. The average experience (in CCB) of the                  Figure 3 shows the 5 questions in our questionnaire and
respondents was 7.5 years. In our organization, a CCB consists            the responses received. Each response is based on a 5 point
of members belonging to various roles: project manager,                   scale (1 being low and 5 being high). Figure 3 reveals that



      3rd International Workshop on Quantitative Approaches to Software Quality (QuASoQ 2015)                                           25
                                                                                   V. D ECISION S UPPORT S YSTEM U SER I NTERFACE
                                                                             A. Recommendation and Settings
                                                                                Figure 5 shows the snapshot of the decision support system
                                                                             displaying the Top K recommendation, score for each recom-
                                                                             mendation, prior work experience and the current work load
                                                                             of the proposed resolver. Figure 5 also shows the collabora-
                                                                             tion network of the developers. Nodes in the collaboration
                                                                             network can be filtered using the check-boxes provided in
                                                                             the screen. The confidence values shown in Figure 5 are
                                                                             probability estimates for each of the proposed resolver. The
Fig. 3. Survey Results of Practitioners in Industry on Factors Influencing
                                                                             sum of the confidence values or probability estimates across
Bug Resolver Recommendation Decision [EX: Resolver Experience with the       all possible resolvers (and not just the Top K) sum up-
Project, WL: Resolver Workload, CP: Bug Report Component, TD: Bug            to 1. We display the probability estimates and not just the
Report Title and Description, PS: Bug Report Priority and Severity]
                                                                             rank to provide additional information on the strength of the
                                                                             correlation between the resolver and the incoming bug report.
                                                                             Figure 6 shows a snapshot of the settings page consisting of
                                                                             five tabs: resolvers, components, and training duration, include
                                                                             and exclude list and train model. We describe and provide a
there are clearly multiple factors and tradeoffs involved in                 screenshots for one of the tabs due to limited space in the
making a triaging and bug assignment decision. We observe                    paper. We apply a platform-based approach and provide a
that bug report title and description and the available resolvers            configurable settings page so that the decision support system
experience with the project are the two most important factors               can be customized according to specific projects. As shown
influencing the triaging decision (both having a score of 3.8 out            in Figure 6, a user can add, rename and modify components
of 5). The priority and severity of the bug as well as component             component names. A software system evolves over a period
assigned to the bug are also considered quite important with a               of time and undergoes architectural changes. New components
score of 3.4. The current workload of the resolvers as a criteria            get added, components gets merged and renamed. We provide
influencing bug triaging decision received a score of 2.4 out                a facility to the user to make sure that the model built on the
of 5 which is the lowest amongst all the 5 factors. The survey               training data is in-synch with the software system architecture.
results support our objective of developing a bug resolver                   Similar to component configuration, we provide a tab to
recommendation decision support system based on multiple                     customize resolver list. For example, if a developer has left
factors (such as priority and severity of the bug report and                 the organization then its information can be deleted through
current workload of the available resolvers) and not just based              the Resolver tab and ensure that his or her name is not shown
on matching the content of the bug report with the resolved                  in the Top K recommendation. The training instances and the
bug reports of fixers.                                                       amount of historical data on which to train the predictive
                                                                             model can also be configured. The predictive model should
                                                                             be representative of the current practice and hence we provide
   We present our case study on a real-world project using the
                                                                             a facility for the user to re-train the model based on recent
IBM Rational ClearQuest as Issue Tracking System. Clear-
                                                                             dataset.
Quest keeps track of entire bug lifecycle (from reporting to
resolution), state changes and comments posted by project                    B. Visual Analytics on Bug Resolution Process
team members. We consider three roles: Triager, Developer                       In addition to the Top K recommendation, justification,
and Tester. A comment can be posted and the state of a bug                   developer collaboration network [6], developer prior work
can be changed by Triager, Developer and Tester. Figure 4                    experience and current workload, we also present interactive
shows 9 possible states of a bug report in ClearQuest and                    visualizations on the bug resolution process. Francalanci et
the 81 possible transitions. A comment (in the ClearQuest                    al. [7] present an analysis of the performance characteristics
Notes Log) consisting of state transition from Submitted to                  (such as continuity and efficiency) of the bug fixing process.
In-Work contains the Triager and the developer role (from                    They identify performance indicators (bug opening and closing
and to field). Similarly, In-Work to Solved state transition                 trend) reflecting the characteristics and quality of bug fixing
contains the developer and testers IDs. We parse ClearQuest                  process. We apply the concepts presented by Francalanci et al.
Notes Log and annotate each project member ID with one of                    [7] in our decision support system. They define bug opening
the three roles: developer, tester and triager. We then remove               trend as the cumulated number of opened and verified bugs
tester and triager and consider only the developers as bug                   over time. In their paper, closing trend is defined as the
resolvers for the purpose of predictive model building. This                 cumulated number of bugs that are resolved and closed over
step of inferring developers is crucial since, triagers and testers          time [7][8].
frequently commit on the bug reports and their comments                         Figure 7 displays the opening and closing trend for the Issue
should not skew the results.                                                 Tracking System dataset used in our case-study. At any instant



      3rd International Workshop on Quantitative Approaches to Software Quality (QuASoQ 2015)                                       26
Fig. 4. List of 9 States in a Bug Lifecycle and 81 Possible Transitions. Infeasible Transitions are Represented by −. Each State Transitions is Used to Infer
Roles within the Project Team. [TRG: Triager, DEV: Developer, TST, Tester]




Fig. 5. A Snapshot of the Bug Resolver Recommendation Decision Support Tool displaying the Top 10 Recommendations, Confidence Value or Score,
Workload and Past Experience with the Project




Fig. 7. Graph Depicting Bug Fix Quality as the Extent of Gap between the
Bug Opening and Bug Closing Trend or Curve
                                                                                Fig. 8. A Combination of a Heat Map and a Horizontal Bar Chart displaying
                                                                                Three Dimensions in One Chart: Component, Number of Bugs and Duration
                                                                                to Resolve the Bug
of time, the difference between the two curves (interval) can
be computed to identify the number of bugs which are open at
that instant of time. We notice that the debugging process is of                duration to resolve each reported bug. We observe that the
high quality as there is no uncontrolled growth of unresolved                   bug fixing time for the Atlas Valves component is relatively
bugs (the curve for the closing trend grows nearly as fast or                   on the lower side in comparison to the sDx component. UBE,
has the same slope as the curve for the opening trend).                         Volume Review and Workflow are the three components on
  Figure 7 shows a combination of Heat Map and a Horizontal                     which maximum numbers of bugs have been reported. The
Bar Chart providing insights on the defect proneness of a                       information presented in Figure 8 is useful to the CCB as the
component (in-terms of the number of bugs reported) and the                     bug resolver recommendation decision is also based on the



       3rd International Workshop on Quantitative Approaches to Software Quality (QuASoQ 2015)                                                     27
Fig. 6. A Snapshot of the Setting Page Consisting of 5 Tabs: Resolvers, Components, Training Duration, Include & Exclude List, Train Model. The Spanshot
displays List of Components and the Remove Option




                                                                             Fig. 10. A Bubble Chart displayed as a Scatter Chart in which each Data
                                                                             Point denotes Component Diversity (Bubble Size) and Number of Resolvers
Fig. 9. A Spectrum of Boxplots Depicting Descriptive Statistics on Time
                                                                             (Color) across Various Quarters
Taken to Fix a Bug. Each Boxplot Corresponds to Dataset Belonging to One
Quarter

                                                                             years (dataset period) and then color-code the bubble for
buggy component and the defect proneness of the component.                   each quarter depending on its value being above or below
Figure 9 shows a spectrum of Box plots across various years                  the average value. Figure 11 displays the number of state
and quarters displaying descriptive statistics and five-number               transitions between any of the 81 state transitions. Figure 11
summary on time taken to fix a bug (bug resolution time).                    is a Heat Map in which every cell is color coded depending
The spectrum of Box plots provides insights to the CCB on                    on the number transitions representing the cell. The Heap
the changes in the distribution of resolution time over several              Map is useful to the CCB in gaining insights on process
quarters or time periods.                                                    anti-patterns and inefficiencies. For example, Reopened bugs
   Figure 10 shows a bubble chart displaying component                       increase the maintenance costs, degrade overall user-perceived
diversity and trends on the average number of developers                     quality of the software and lead to un-necessary rework by
needed to a resolve a bug across project time-line. Figure                   busy practitioners [9]. Figure 11 reveals several cases of bug
10 reveals that the component diversity was high in July                     re-opening (such Solved-to-Inwork, Terminated-to-In Decision
and October Quarter of the year 2013 which means that the                    transitions).
reported bugs were spread across various components. We
infer that the component diversity decreases in April and July                          VI. E MPIRICAL A NALYSIS AND R ESULTS
Quarter for the year 2014 which means that majority of the                     We conduct a series of experiments on real-world data from
bugs were reported within a small number of components.                      Siemens product lines to evaluate the effective of our approach.
We also present insight on average number of developers                      We conduct experiments on two projects to investigate the
needed to resolve a bug. We first compute the average number                 generalizability of our approach. One of the projects is a Image
of developers needed to resolve a bug over the entire 2                      processing based product (Project A) deployed in Computed



      3rd International Workshop on Quantitative Approaches to Software Quality (QuASoQ 2015)                                                 28
                                                                         TABLE I
                                            R ECALL @ K , P RECISION @ K AND F-M EASURE @ K FOR P ROJECT A

                                            K=1      K=2      K=3      K=4       K=5     K=6     K=7     K=8     K=9         K=10
                            RECALL          0.160    0.337    0.474    0.547     0.599   0.647   0.688   0.721   0.750       0.774
                          PRECISION         0.324    0.353    0.324    0.287     0.254   0.232   0.214   0.199   0.186       0.174
                          F-MEASURE         0.214    0.345    0.385    0.376     0.357   0.342   0.327   0.313   0.298       0.284


                                                                        TABLE II
                                            R ECALL @ K , P RECISION @ K AND F-M EASURE @ K FOR P ROJECT B

                                            K=1      K=2      K=3      K=4       K=5     K=6     K=7     K=8     K=9         K=10
                            RECALL          0.242    0.644    0.794    0.819     0.848   0.864   0.875   0.890   0.900       0.905
                          PRECISION         0.437    0.599    0.493    0.408     0.342   0.292   0.255   0.228   0.206       0.188
                          F-MEASURE         0.312    0.620    0.609    0.545     0.488   0.436   0.395   0.363   0.335       0.311



                                                                                 developers, test leads) are working on the project. The second
                                                                                 project (Ultra-Sound Clinical Workflow Management System)
                                                                                 is a relatively larger project (Project B) which started in 2005
                                                                                 and there are 17267 bugs reported till October 2014. Out
                                                                                 of 17267 reported bugs, 12438 are resolved. A total of 253
                                                                                 professionals have worked on the project during the past 9 to
                                                                                 10 years. We consider only the resolved bugs for the purpose
                                                                                 of conducting our experiments. N folds cross validation with
                                                                                 N = 10 and K = [1, 10] is used for computing the precision and
                                                                                 recall performance evaluation metrics. The formulae used for
                                                                                 calculating precision@K and recall@K in information retrieval
                                                                                 systems are as follows (where K is the number of developers
                                                                                 in the ranked list):
                                                                                                                         B
                                                                                                                  1 X |Pi ∩ Ri |
                                                                                                  Recall@K =
Fig. 11. A Heat Map showing the Number of Transitions (during the Bug                                             B i=1 |Ri |
Lifecycle of all Bug Reports in the Dataset) between the 8 Possible States
                                                                                                                             B
                                                                                                                    1 X |Pi ∩ Ri |
                                                                                                 P recision@K =
                                                                                                                    B i=1 |Pi |
                                                                                    In the formula for Precision and Recall, B denotes the
                                                                                 number of bug reports, R represents the set of actual resolvers
                                                                                 for a bug and P is the set of Predicted resolvers for the bug.
                                                                                    The calculated values have been shown in Tables I and II.
                                                                                 We observe that the recall values increase as we increase K
                                                                                 (which is quite intuitive). At K = 10, Project A has a recall
                                                                                 of 0:734 with 345 solved bugs, whereas Project B has a recall
                                                                                 of 0:905 with 1000 of the latest solved bugs. We observe
                                                                                 that the precision values are maximum at K = 2 in both the
                                                                                 projects. This is because in both projects the average number
Fig. 12. Metrics to be used to track the effectiveness and usefulness of using   of resolvers per bug is very close to 2.
the recommendation system.                                                          We conduct a manual analysis and visual inspection of a
                                                                                 large number of bug reports and identify several instances
                                                                                 in which a bug report is assigned to a bug fixer based on
Tomography Scan Machine. Project A started in 2012 and has                       prior experience, workload, recent activity and severity and
772 bugs reported till November 2014. Out of the 772 bug                         not just based on the closest match in terms of problem
reports present in the Issue Tracking System, 345 have been                      area expertise. We observe that in several cases the top
solved and validated. We found that 236 issues have been                         recommended resolver (by our prediction model purely based
closed due to either being duplicate bug reports or bug reports                  on similar content-based recommendation) does not get the
invalidated by the triager due to insufficient information to                    bug assigned due to factors such as workload and prior work
reproduce the bug. At the time of conducting the experiments,                    experience of developers with the project incorporated in our
a total 78 members (project manager, product manager, testers,                   decision support tool but not within the Decision Tree and



       3rd International Workshop on Quantitative Approaches to Software Quality (QuASoQ 2015)                                          29
Naive Bayes based classification model. In one of the bug                   [4] W. Wu, W. Zhang, Y. Yang, and Q. Wang, “Drex: Developer recommen-
reports (status transition from in-work to in-work), we see a                   dation with k-nearest-neighbor search and expertise ranking,” in Software
                                                                                Engineering Conference (APSEC), 2011 18th Asia Pacific, pp. 389–396,
developers comments                                                             2011.
   • Due to workload issue, Alan was able to solve it partially             [5] A. Tamrawi, T. T. Nguyen, J. M. Al-Kofahi, and T. N. Nguyen, “Fuzzy
                                                                                set and cache-based approach for bug triaging,” in Proceedings of the
     and it needs to update the resolver.                                       19th ACM SIGSOFT Symposium and the 13th European Conference on
   • Since the bug is related to SRC Component, Todd has                        Foundations of Software Engineering, pp. 365–375, 2011.
     the experience in solving SRC related bugs and assigns                 [6] A. Sureka, A. Goyal, and A. Rastogi, “Using social network analysis
                                                                                for mining collaboration data in a defect tracking system for risk
     the bug to Todd instead of Ramesh.                                         and vulnerability analysis,” in Proceedings of the 4th India Software
   • The bug is high priority and assign it to Abhishek.                        Engineering Conference, ISEC ’11, (New York, NY, USA), pp. 195–204,
   • Assign partial work to Rashmi and partial work to Manju                    ACM, 2011.
                                                                            [7] C. Francalanci and F. Merlo, “Empirical analysis of the bug fixing process
   • Please assign this bug to me (I have been working in it
                                                                                in open source projects,” in Open Source Development, Communities and
     recently).                                                                 Quality, pp. 187–196, 2008.
                                                                            [8] S. Lal and A. Sureka, “Comparison of seven bug report types: A
   Our manual inspection of several bug reports and the                         case-study of google chrome browser project,” in Software Engineering
threaded discussions across two active projects in our or-                      Conference (APSEC), 2012 19th Asia-Pacific, vol. 1, pp. 517–526, Dec
ganization demonstrates that factors in addition to content                     2012.
                                                                            [9] E. Shihab, A. Ihara, Y. Kamei, W. Ibrahim, M. Ohira, B. Adams,
based assignment needs to be presented to the decision maker                    A. Hassan, and K.-i. Matsumoto, “Studying re-opened bugs in open
(as incorporated in our proposed decision-support system)                       source software,” in Empirical Software Engineering, pp. 1005–1042,
for making better triaging decisions. In order to enable the                    2013.
projects to track the effectiveness and benefits of using the
recommendation system, we proposed simple process metrics
as shown in figure 12. The metrics are calculated for Project
A, considering the data from the bugs that have already been
resolved.
                        VII. CONCLUSIONS
    Our survey results demonstrate that there are multiple
factors influencing triaging decision. Terms in bug report
title and description as well as resolver experience with the
project are the two most important indicators for making bug
assignment decision. Our interaction with practitioners in our
organization reveals that justification or reasoning behind a
recommendation, developer collaboration network, developer
work experience and workload are also important and useful
information in addition to the Top K recommendation. De-
scriptive statistics, trends and graphs on bug fixing efficiency,
big opening and closing trends, mean time to repair and
defect proneness of components are also important and com-
plementary information for the Change Control Board while
making triaging decisions. We demonstrate the effectiveness
of our approach by conducting experiments on real-world
CSS/PSS data from our organization and report encouraging
accuracy results. We conclude that an ensemble of classifiers
consisting of Decision Tree and Naive Bayes learners and
incorporating factors such as workload, prior work experience,
recent activity and severity of bugs is an effective mechanism
for the task of automatic bug assignment.
                            R EFERENCES
[1] G. Bortis and A. v. d. Hoek, “Porchlight: A tag-based approach to
    bug triaging,” in Proceedings of the 2013 International Conference on
    Software Engineering, ICSE ’13, pp. 342–351, 2013.
[2] X. Xia, D. Lo, X. Wang, and B. Zhou, “Accurate developer recommen-
    dation for bug resolution,” in Reverse Engineering (WCRE), 2013 20th
    Working Conference on, pp. 72–81, 2013.
[3] X. Xie, W. Zhang, Y. Yang, and Q. Wang, “Dretom: Developer recom-
    mendation based on topic models for bug resolution,” in Proceedings
    of the 8th International Conference on Predictive Models in Software
    Engineering, PROMISE ’12, pp. 19–28, 2012.




      3rd International Workshop on Quantitative Approaches to Software Quality (QuASoQ 2015)                                                   30