|
|
@@ -19,9 +19,9 @@ The bug-introducing commits can be extracted either from a bug tracking system s
|
|
|
To get issues one needs a bug tracking system. As an example the project Jenkins uses [JIRA](https://issues.jenkins-ci.org).
|
|
|
From here it is possible to fetch issues that we then can link to bug fixing commits.
|
|
|
|
|
|
-So we have provided an example script that can be used to fetch issues from Jenkins issues. In the directory fetch_jira_bugs, one can find the **fetch.py** script. The script has a jql string which is used as a filter to get certain issues. JIRA provides a neat way to test these jql strings directly in the [web page](https://issues.jenkins-ci.org/browse/JENKINS-41020?jql=). Change to the advanced view and then enter the search creiterias. Notice that the jql string is generated in the browsers url bar once enter is hit.
|
|
|
+We have provided an example script that can be used to fetch issues from Jenkins issues. In the directory fetch_jira_bugs, one can find the **fetch.py** script. The script has a jql string which is used as a filter to get certain issues. JIRA provides a neat way to test these jql strings directly in the [web page](https://issues.jenkins-ci.org/browse/JENKINS-41020?jql=). Change to the advanced view and then enter the search creiterias. Notice that the jql string is generated in the browsers url bar once enter is hit.
|
|
|
|
|
|
-So to fetch issues from Jenkins JIRA, just run:
|
|
|
+To fetch issues from Jenkins JIRA, just run:
|
|
|
```python
|
|
|
python fetch.py
|
|
|
```
|
|
|
@@ -34,9 +34,9 @@ that contains the Issue and its corresponding commit SHA-1, the commit date, the
|
|
|
```python
|
|
|
python find_bug_fixes.py --gitlog <path_to_gitlog_file> --issue-list <path_to_issues_directory>
|
|
|
```
|
|
|
-The output is a `issue_list.json` which is later used in the SZZ algorithm.
|
|
|
+The output is `issue_list.json` which is later used in the SZZ algorithm.
|
|
|
|
|
|
-### Find the bug introducing commits ###
|
|
|
+### Find the bug-introducing commits ###
|
|
|
|
|
|
This implementation works regardless which language and file type. It uses
|
|
|
[JGIT](https://www.eclipse.org/jgit/) to parse a git repository.
|
|
|
@@ -55,7 +55,7 @@ gradle build && gradle runJar
|
|
|
```
|
|
|
|
|
|
The algorithm tries to use as many cores as possible during runtime. The more
|
|
|
-the merrier so to say.
|
|
|
+the merrier so to speak.
|
|
|
|
|
|
To get the bug introducing commits from a repository using the file produced
|
|
|
by the previous issue to bug fix commit step, run:
|
|
|
@@ -68,7 +68,7 @@ run the `assembler.py` script on the results directory.
|
|
|
|
|
|
## Output
|
|
|
|
|
|
-The output can then be seen in three different files commits.json,
|
|
|
+The output can be seen in three different files commits.json,
|
|
|
annotations.json and fix\_and\_bug\_introducing\_pairs.json.
|
|
|
|
|
|
The commits.json file includes all commits that have been blamed to be bug
|
|
|
@@ -83,12 +83,12 @@ just the one closest in history for a bug.
|
|
|
|
|
|
Lastly, the fix\_and\_bug\_introducing\_pairs.json includes all possible pairs
|
|
|
which could lead to a bug introduction and fix. This file is not sorted in any
|
|
|
-way and it includes doublettes when it comes to both introducers and fixes. A
|
|
|
+way and it includes duplicates when it comes to both introducers and fixes. A
|
|
|
fix can be made several times and a introducer could be responsible for many
|
|
|
fixes.
|
|
|
|
|
|
## Feature Extraction ##
|
|
|
-Now that the potential bug introducing commits has been identified, the
|
|
|
+Now that the potential bug-introducing commits has been identified, the
|
|
|
repository can be mined for features.
|
|
|
|
|
|
### Code Churns ###
|