Article Preview
Top1. Introduction
A bug is a fault in software that results in an incorrect output. So, various quality control activities like reviews and testing are utilized to enhance the quality of the software before releasing it. However, with the increase in software size and limited resources, it is difficult to develop software that is 100% free of bugs before the release time. To keep track and manage fixing the bugs after release, large scale software projects utilize bug tracking systems such as Bugzilla; through which users can report any encountered bugs (Hamdy & El-Laithy, 2019). However, adopting a bug tracking system creates another challenge, that when bug reports are submitted, they are examined by some personnel (a triagger) to estimate each bug’s severity, priority and assign it to a developer to fix. “Severity” is one of the important fields of a bug report as it specifies the negative impact of the bug on the system. However, with the large number of submitted reports, manual triaging becomes a time consuming task and its accuracy declines. For instance, Eclipse received about 3,389 bug reports for the platform product alone in 2013 (Hamdy & El-Laithy, 2020). Furthermore, it was found that almost 80% of the bug reports get their fields (including Severity) amended and those reports took more time to get fixed in comparison to those without field amendments (Xia et al., 2014). Thus, it is essential to automate the bug triage process for higher accuracy and faster bug fixing.
Several severity assignment models have been proposed in the literature; all of them are based on mining the software bug repositories using text mining techniques (Hotho, Nurnberger & Paas, 2005). Generally, one of the key factors that influence the accuracy of approaches is how the bug reports are processed and represented such that a strong association between the newly submitted reports and the historical ones could be found. Early severity assignment approaches are based on modelling the bug reports using vector space models (VSMs) (Hotho, Nurnberger & Paas, 2005). VSMs are useful when there are common tokens between the bug reports (Hamdy & Elsayed, 2018a), however they do not consider the semantic similarity between synonymous words. Recently, two models that are capable of capturing the semantic similarity between documents have emerged: (i) Word embeddings (Mikolov et al., 2013), (ii) Probabilistic topic models (Teh et al., 2006). Word embeddings models represent each word by a vector of real numbers that capture their contextual semantic meanings, such that similar words have similar vector representations. While, topic models are unsupervised machine learning models; that enable the automatic learning of the topics shared in a corpus of textual documents without the need of labeled training data (Teh et al., 2006), (Hamdy & Elsayed, 2018b,c). In the context of bug reports, the summary and description fields included in the bug reports that describe similar bugs should include similar topics. Therefore, topic models can assist in retrieving the historical bug reports that have similar topics to the newly submitted reports even if they do not have lexical similarity. Also, word embeddings can facilitate retrieving historical bug reports which are similar to a new report but are written using different terms.
Another key factor that influences the accuracy of the severity assignment approaches is the fact that bug repositories are class imbalanced (some bug severity classes are reported more frequently than others). The classifiers that are trained on imbalanced datasets usually result in a low classification accuracy for the minority classes (Agrawal & Menzis, 2018). Some research studies recommended utilizing sampling techniques in order to yield an equal representation of the classes in the datasets, prior to training the classification models, to achieve better classification accuracy (Malhotra & Khanna, 2017), (Tantithamthavorn, Hassan & Matsumoto, 2018) and (Hamdy & El-Laithy, 2019).