Many bugs, not enough triage
We’ve Got plans to use machine Learning How to assist in additional software development procedures, such as:
We also encourage other organizations to adopt BugBug. Adopting it will be easy Should you use Bugzilla we’ll need to add support for your bug tracking system. Document an issue on https://github.com/mozilla/bugbug and we’ll find it out. We’re willing to assist!
We developed a machine learning instrument which assigns a item and element for each bug that was untriaged, BugBug to help get bugs facing the right Firefox engineers fast. We hope to reduce the turnaround time to mend issues by presenting bugs to triage owners. The tool is based that we’ve implemented recently, to differentiate between bug reports and feature requests.
Coaching the version on 2+ years of data (approximately 100,000 bugs) takes ~40 minutes on a 6-core machine with 32 GB of RAM. The evaluation time is at the order of milliseconds. Given that the tool doesn’t pause and will be always ready to behave, the tool’s assignment rate is much faster than manual mission (which, normally, takes around a week).
Plans for the future
High-level overview of this BugBug version
Also, although we have thousands of elements, we only really care about a subset of these. Out of 396 components, in the 2 decades, only 225 parts had over 49 bugs. Thuswe restrict the tool to look at components with a range.
We ’ ve triaged around 350 bugs , since we deployed BugBug in creation in the end of February 2019. The time for a programmer to act on bugs that are triaged is two days. (9 days is the average time to act, but it’s just 4 times when we remove outliers.)
Mozilla receives hundreds of bug reports and feature requests . In order to fix them immediately Obtaining bugs to the right eyes is crucial. This is where bug triage comes : before a programmer knows a bug exists, they won’t be in a position to fix it.
During performance, we just perform the assignment when the version is assured enough of its decision: in the present time, we’re utilizing a 60% confidence threshold. With this threshold, we’re in a position to assign the ideal part with a very low false positive ratio (> 80% precision, measured with a validation set of bugs which were triaged involving December 2018 and March 2019).
We have a training set of data for this model: 2 decades worth of bugs which delegated to components and products and have been examined by Mozillians.
We could ’t use the bug data as-is: any alteration to the bug following triage has been completed would be inaccessible to this tool during actual operation. Thus, the bug to the time roll back ” it was originally filed. (This seems simple in practice, but there are a whole lot of corner cases to take into consideration!) .
- Identifying duplicate bugs. In the case users will normally report the same bug several times, in slightly different ways. These duplicates are found from the triage process, and solved, but finding bugs as quickly as possible provides more information for developers attempting to diagnose an accident.
- Providing additional automated help for developers, such as detecting bugs where “measures to reproduce” are missing and asking reporters to supply them, or discovering the kind of insect (e.g. functionality, memory usage, crash, etc ).
- Discovering bugs which may be important for a given Firefox discharge as soon as you can.
High-level architecture of BugBug training and operation
Historically, volunteers along with some developers have mostly done the product/component mission. This process fails to climb, and it is effort that will be better spent elsewhere.
Our tool assigns components for Firefox-related products. We would like to expand BugBug to assign elements to get Mozilla products.
Training a model
We use attributes gathered in the name, the first comment, and the keywords/flags associated with each bug to train an XGBoost version.
Given the large number of bugs filed, it’s unworkable to make each developer look at each bug (at the time of writing, we’d reached bug number 1536796!) . This is the reason why, on Bugzilla, we set bugs by merchandise (e.g. Firefox, Firefox for Android, Thunderbird, etc.) and part (a subset of a product, e.g. Firefox::PDF Viewer).