Supporting material for the paper

Search-Based Bug Report Prioritization for Kate Editor Bugs Repository


By Duany Dreyton, Allysson Allex Araújo, Altino Dantas, Átila Freitas, Jerffeson Souza

Optimization in Software Engineering Group (GOES.UECE) | State University of Ceara - Brazil

1 - Abstract

The prioritization of bugs in online repositories can be considered a complex and important task. Thus, providing an automatic strategy to deal with this challenge can be useful and significantly collaborate with the repository use. In this paper, a search-based approach to prioritize bugs in the Kate Editor Bugs Repository is proposed, taking into account some valuable information given by the repository users about the bugs. Experiments demonstrate the proposed approach can be calibrated to fit particular scenarios and can produce intelligent bug orders.

Keywords: bugs prioritization, genetic algorithm, SBSE, kate editor.


2 - Instances

The extracted data from Kate Editor Bugs Repository were stored in 3 files available below:

Instance name Number of bugs (N) Bugs present in repository on Download
Dataset-1 303 April 27th, 2013 Download
Dataset-2 407 April 27th, 2014 Download
Dataset-3 543 April 9th, 2015 Download

3 - Data Extraction Process

To perform the data extraction process two procedures was needed:

  1. Collect priority, severity and precedence of bugs in Kate Editor Bugs Repository using JSON Remote Procedure Call(RPC) API;
  2. Use Screen-scraping technique to calculate amount of bug votes.
Before run the program to collect the information, it is necessary determine the content of some variables, as follows:
  • url_rpc = it contains the network address to the Remote Procedure Call server int the repository;
  • url_votes_page = it contains the network address to the CGI that controls the exhibition of votes page of a bug;
  • days_ago = it is the amount of days that will be subtracted of the actual date to get the upper bound date to the bug creation time;
  • dic_priorities = a dictionary that contains the normalization scale of bugs priorities;
  • dic_severities = a dictionary that contains the normalization scale of bugs severities;
  • params = it contains the parameters of the request for the Remote Procedure Call server, like the KDE product involved, the desired current status of the bugs, and the limit of the number of results returned;
  • payload = the method option contains the name of method available in the Remote Procedure Call Server that will be utilized;
  • param_votescgi = the url address to the web page that shows details of votes of a bug.
The source code of the extraction process program was developed using Python 3.4. To execute requests to the Remote Procedure Call API, which is offered by the Kate Bugs Repository, it was used the Requests Library. The handling of results was realized with the JSON module and the support to date manipulations was given by the Datetime module, both these available natively in Python language. To perform the screen-scraping process, where information is extracted directly from web pages, it was used the BeautifulSoup4 Library.

Download Extraction Source Code


4 - Empirical Studies

M = 30
Weights Configuration α = 2, β = 1, γ =1 α = 1, β = 2, γ =1 α = 1, β = 1, γ = 2
dataset-1 Relevance 0.859 ±0.064 0.846 ±0.075 0.836 ±0.063
Importance 0.649 ±0.021 0.691 ±0.011 0.680 ±0.014
Severity 0.124 ±0.014 0.121 ±0.013 0.110 ±0.007
Fitness 2.545 ±0.010 2.263 ±0.003 1.449 ±0.007
dataset-2 Relevance 0.870 ±0.045 0.833 ±0.059 0.827 ±0.077
Importance 0.647 ±0.017 0.688 ±0.017 0.675 ±0.014
Severity 0.128 ±0.012 0.124 ±0.013 0.113 ±0.010
Fitness 2.542 ±0.013 2.263 ±0.003 1.448 ±0.006
dataset-3 Relevance 0.851 ±0.050 0.840 ±0.054 0.841 ±0.042
Importance 0.646 ±0.016 0.707 ±0.013 0.673 ±0.015
Severity 0.146 ±0.016 0.141 ±0.018 0.118 ±0.015
Fitness 2.503 ±0.012 2.261 ±0.007 1.420 ±0.007
Best solution for Dataset-3 with α = 1, β = 1 and γ = 1
Order ID's Description Votes Priority Severity
1 267618 [PATCH] Kate sidebar does not appear with old sessions' 41 1.0 0.55
2 343329 Remote files open up empty 131 0.6 0.7
3 226905 Add support for mime-type sections to .kateconfig files 20 1.0 0.1
4 241502 Kate find bar and split view 40 1.0 0.1
5 313455 JJ Autobracket plugin does not replicate all the functionality of the built in function 219 0.6 0.4
6 314395 Automatic indentation of subsequent lines in kate is erratic 82 0.6 0.4
7 274102 Automatically backup new unnamed/unsaved notes/files 75 0.8 0.1
8 145664 RFE (KatePart trunk) Add option to insert tab with tab key even when indenting with spaces 70 0.6 0.4
9 117283 Missing option 'Close' in 'File was Deleted on Disk' dialogue 50 0.8 0.1
10 44908 kate needs a macro system 424 0.6 0.1
11 146239 not greedy regular expression 98 0.6 0.1
12 135884 automatic jump to line by regular expression 45 0.6 0.1
13 141946 easy way to enable/disable static word wrap 120 0.6 0.1
14 126772 block selection mode on-fly plus configurable modifier 61 0.6 0.1
15 82430 Line mode select/copy/paste in Kate 40 0.6 0.1
16 109338 Detect indentation method in opened file 80 0.6 0.1
17 284474 Kate doesn't open 1 instance per activity 60 0.6 0.1
18 101457 Scroll line up-down action needs cursor movement option 50 0.6 0.1
19 201057 Regular Expression Editor and Placeholders Missing from Search/Replace in Kate/Kwrite 41 0.6 0.1
20 330843 Support .editorconfig config files 120 0.6 0.1
21 125125 Static Word Wrap breaking a line that is not to be break 70 0.6 0.1
22 153109 Ability to show differences between two opened files 70 0.6 0.1
23 107710 Remember open files after crash 55 0.6 0.1
24 160529 Inconsistency on color schemas on each language 80 0.6 0.1
25 60899 Kate check remote files overwrite 90 0.6 0.1
26 125738 Add option for reusing instances only if in same virtual desktop 106 0.6 0.1
27 93087 KTextEditor plugin highlight web links and urls + make them clickable 51 0.6 0.1
28 135737 indentation isn't kept after static word wrap 80 0.6 0.1
29 92337 Can't configure the "file changed of disk" reloading behaviour (preference for kate 2.2 behaviour) 60 0.6 0.1
30 312169 Restructure plugin configuration and enable Pâté by default 41 0.6 0.1
M = 60
Weights Configuration α = 2, β = 1, γ =1 α = 1, β = 2, γ =1 α = 1, β = 1, γ = 2
dataset-1 Relevance 0.941 ±0.029 0.931 ±0.024 0.929 ±0.039
Importance 0.643 ±0.007 0.658 ±0.004 0.643 ±0.006
Severity 0.112 ±0.007 0.111 ±0.004 0.107 ±0.004
Fitness 2.541 ±0.003 2.204 ±0.002 1.437 ±0.001
dataset-2 Relevance 0.938 ±0.033 0.914 ±0.039 0.931 ±0.024
Importance 0.641 ±0.005 0.656 ±0.006 0.645 ±0.004
Severity 0.115 ±0.005 0.914 ±0.039 0.108 ±0.004
Fitness 2.536 ±0.004 2.201 ±0.003 1.431 ±0.002
dataset-3 Relevance 0.938 ±0.033 0.908 ±0.038 0.918 ±0.043
Importance 0.641 ±0.005 0.666 ±0.006 0.643 ±0.006
Severity 0.115 ±0.005 0.130 ±0.007 0.114 ±0.005
Fitness 2.536 ±0.004 2.202 ±0.005 1.414 ±0.004
Best solution for Dataset-3 with α = 1, β = 1 and γ = 1
Order ID's Description Votes Priority Severity
1 267618 [PATCH] Kate sidebar does not appear with old sessions 41 1.0 0.55
2 343255 Kate 5 saving with another encoding is missing 4 1.0 0.85
3 343329 Remote files open up empty 131 0.6 0.7
4 235862 [VI Mode] Range operations in vi-input mode don't work 61 0.6 0.4
5 309493 [Usability] Infuriating default "file changed" behavior 40 0.6 0.4
6 145664 RFE: (KatePart trunk) Add option to insert tab with tab key even when indenting with spaces 70 0.6 0.4
7 313455 JJ: Autobracket plugin does not replicate all the functionality of the built in function 219 0.6 0.4
8 241502 Kate find bar and split view 40 1.0 0.1
9 314395 Automatic indentation of subsequent lines in kate is erratic 82 0.6 0.4
10 343629 write cursor does not move when keys are pressed 60 0.6 0.85
11 107003 kate wish: arbitrary highlighting 40 0.6 0.1
12 153109 Ability to show differences between two opened files 70 0.6 0.1
13 226905 Add support for mime-type sections to .kateconfig files 20 1.0 0.1
14 333941 python_utils pate plugins do not work 60 0.6 0.4
15 82430 Line mode select/copy/paste in Kate 40 0.6 0.1
16 44908 kate needs a macro system 424 0.6 0.1
17 117283 Missing option 'Close' in 'File was Deleted on Disk' dialogue 50 0.8 0.1
18 274102 Automatically backup new unnamed/unsaved notes/files 75 0.8 0.1
19 333329 Kate crash on IPython console check 40 0.6 0.55
20 190947 search&replace "dialog" wastes space and does not remember state 30 0.6 0.1
21 267508 No sort by custom option in document view in kate 3.6.0 20 0.6 0.1
22 101457 Scroll line up-down action needs cursor movement option 50 0.6 0.1
23 104523 autodetect a newer modification in file when open a remote file (smb or fish) 40 0.6 0.1
24 146239 not greedy regular expression 98 0.6 0.1
25 245419 Save session state with each file open / close / move 20 0.6 0.1
26 60899 Kate check remote files overwrite 90 0.6 0.1
27 125738 Add option for reusing instances only if in same virtual desktop 106 0.6 0.1
28 92337 Can't configure the "file changed of disk" reloading behaviour (preference for kate 2.2 behaviour) 60 0.6 0.1
29 160529 Inconsistency on color schemas on each language 80 0.6 0.1
30 109338 Detect indentation method in opened file 80 0.6 0.1
31 330843 Support .editorconfig config files 120 0.6 0.1
32 201057 Regular Expression Editor and Placeholders Missing from Search/Replace in Kate/Kwrite 41 0.6 0.1
33 282866 Indention and other editor settings should be stored on a per-session basis 20 0.6 0.1
34 135884 automatic jump to line by regular expression 45 0.6 0.1
35 328837 Add configurable line height to katepart 30 0.6 0.1
36 280645 [BiDi/Unicode] If the BiDi algorithms is too complicated to maintain, why not to support the simple one??? 20 0.6 0.1
37 241877 Paste at cursor (instead of paste under mouse) 20 0.6 0.1
38 312169 Restructure plugin configuration and enable Pâté by default 41 0.6 0.1
39 333409 [Request] Multicursor support 40 0.6 0.1
40 284474 Kate doesn't open 1 instance per activity 60 0.6 0.1
41 93087 KTextEditor plugin: highlight web links and urls + make them clickable 51 0.6 0.1
42 59974 folding should having information about number of lines folded and possibly the number of folds under current fold 30 0.6 0.1
43 100203 Autocomplete - Make it easier to skip it 21 0.6 0.1
44 248777 Provide an Option to globally disable auto-indentation 20 0.6 0.1
45 328891 Static Word Wrap, in multiline comment, indents new line, and prepends * to it. 20 0.6 0.1
46 135737 indentation isn't kept after static word wrap 80 0.6 0.1
47 107710 Remember open files after crash 55 0.6 0.1
48 196675 Expose (and add) more indentation options 20 0.6 0.1
49 126772 block selection mode on-fly plus configurable modifier 61 0.6 0.1
50 244424 Search should not be executed in UI-Thread 40 0.6 0.1
51 174486 More flexible behavior of static word wrap 40 0.6 0.1
52 227290 can't separate "tab key inserts spaces" setting from "indentation is spaces only" setting 20 0.6 0.1
53 141946 easy way to enable/disable static word wrap 120 0.6 0.1
54 316663 [RFE] Multiline editing support 20 0.6 0.1
55 333446 Show tabs and space characters only on selection 20 0.6 0.1
56 192098 Option to treat URLs as text snippets when dragging and dropping 20 0.6 0.1
57 125125 Static Word Wrap breaking a line that is not to be break 70 0.6 0.1
58 288944 open folders with kate from dolphin 22 0.6 0.1
59 226797 c-style comments should escape interior comments 20 0.6 0.1
60 124977 new command line option: read-only mode (or view mode) 22 0.6 0.1

May 2015 (last update: April 2015)