# Automatic Bug Triaging via Deep Reinforcement Learning
## 1 Introduction  
Bug triaging can effectively improve the efficiency of bug repair; hence, it has garnered increasing attention in studies regarding software testing and maintenance. As a bug is identified in a code, the bug should be reported to the bug tracking system; subsequently, the bug report should be assigned to a suitable developer who is proficient in fixing the bug. Initially, the bug reports are manually assigned to the developers. However, open-source software projects have a long maintenance lifecycle, and many bug reports are produced daily. For instance, 23,491 bug reports were produced by 553 developers in the OpenOffice project between 1 June 2011 and 7 April 2013. Furthermore, 341 bugs were reported per month, and each developer had to fix 42.48 bugs on average [1]. There are many traditional algorithms [2; 3; 4] to solve many fundamental problems [5; 6; 7], but the conventional algorithms in bug triaging cannot play a good role. Therefore, many researchers use machine learning to solve this problem. To improve the efficiency of bug triaging, automatic bug report assignment [8; 9; 10; 11], as well as various automatic allocation methods, have been proposed [12; 13; 14; 15; 16]. [PERSON] et al. [17] reported that text classification methods can be employed in bug triaging; additionally, experimental studies proved the effectiveness of this method. Subsequently, [PERSON] et al. [18] proposed an automatic bug classification system based on a latent semantic index and a support vector machine (SVM). [PERSON] et al. [19] recommended bug triaging based on semi-supervised learning. The methods above used existing classifiers and only considered a single feature of the text in the bug reports. Therefore, [PERSON] et al. [20] proposed a bug severity prediction and bug classification method for multi-feature and topic models based on bug reports. As data-imbalanceddistributions exist in bug report datasets, only considering the text information limits the allocation efficiency improvement. Therefore, [PERSON] et al. (2019) presented an algorithm, known as \"developer recommendation with k-nearest-neighbor search and expertise ranking\", based on developer interest and developer expertise to recommend a list of developers. However, most of the models mentioned above are offline. Offline means that the existing bug reports are used as the training set to train the model. After the model is stable, the newly submitted bug reports are assigned directly. It is uncertain whether such a model will perform well in any case because the previously trained model may not learn sufficient information, or the new bug may come from a completely new field, which will result in some disadvantages in the offline methods. In summary, there are two challenges, as follows, to be addressed. The multidimensional feature challenge. How can we effectively integrate and consider the multidimensional features of bug reports? A uniform mechanism to integrate multiple features does not exist and specific features to be considered are not known. Hence, considering only a single feature cannot fully represent the bug report itself, and multidimensional features do not reflect the importance of features and the internal relationship between features. Automatic learning challenge. How can bug reports be assigned in real time based on historical bug fixed records? Since historical records include a long time-span and the time distributions of bug fixing records for each developer are varied, it is difficult to learn from historical data and then assign tasks to suitable developers. Therefore, frequently changing developers may result in secondary task assignment. Therefore, we present a novel method known as auto bug triaging via deep reinforcement learning (BT-RL), which comprises two sub-adversarial models, i.e., the deep multi-semantic feature fusion (DMSF) model and the online dynamic matching (ODM) model.