Software maintenance is an essential phase of software development. Developers employ issue tracking systems to collect bugs for software improvement. Users submit bugs through such issue tracking systems and decide the severity of reported bugs. The severity is an important attribute of a bug that decides how quickly it should be solved. It helps developers to solve important bugs on time. However, manual severity assessment is a tedious job and could be incorrect. To this end, in this paper, we propose a deep neural network-based automatic approach for the severity prediction of bug reports. First, we apply natural language processing techniques for text preprocessing of bug reports. Second, we compute and assign an emotion score for each bug report. Third, we create a vector for each preprocessed bug report. Forth, we pass the constructed vector and the emotion score of each bug report to a deep neural network based classifier for severity prediction. We also evaluate the proposed approach on the history-data of bug reports. The results of cross-product suggest that the proposed approach outperforms the state-of-the-art approaches. On average, it improves the f-measure by 7.90% .
31 December 2019 in IEEE Transactions on Reliability
Software systems often receive a large number of bug reports. Triagers read through such reports and assign different priorities to different reports so that important and urgent bugs could be fixed on time. However, manual prioritization is tedious and time-consuming. To this end, in this article, we propose a convolutional neural network (CNN) based automatic approach to predict the multiclass priority for bug reports. First, we apply natural language processing (NLP) techniques to preprocess textual information of bug reports and covert the textual information into vectors based on the syntactic and semantic relationship of words within each bug report. Second, we perform the software engineering domain specific emotion analysis on bug reports and compute the emotion value for each of them using a software engineering domain repository. Finally, we train a CNN-based classifier that generates a suggested priority based on its input, i.e., vectored textual information and emotion values. To the best of our knowledge, it is the first CNN-based approach to bug report prioritization. We evaluate the proposed approach on open-source projects. Results of our cross-project evaluation suggest that the proposed approach significantly outperforms the state-of-the-art approaches and improves the average F1-score by more than 24%.
Crowdsourcing is gaining more and more popularity among the academic and industrial community. Organizations are adopting this technological advent and increasingly crowdsourcing their tasks to the unknown individuals. However, in the context of competitive crowdsource software development (CCSD) crowdsourcing is still unexplored. Too little is presently known about what intricate developers to participate in crowdsourcing software development competitions. Most importantly, what kinds of developers are more likely to participate. Such open questions remain to be explored. To this end, in this paper, we present the results of an empirical study conducted to investigate what motivates software developers to participate in CCSD, and what inhibits software developers to participate in such competitions. An online questionnaire is sent out to more than 300 crowdsource software participants, of which 113 return valid responses. It’s also sent to more than 150 industry practitioners, of which 75 return valid responses. The results suggest monetary rewards are not significantly important to motivate software developers to participate in CCSD. Instead, learning, social contacts, and peer recognition are more important. Besides the survey, we also analyze the history data collected from one of the most popular software crowdsourcing platforms. The analysis results reveal that the Pareto principle holds for CCSD as well, and 0.9% of the participants win 86% competitions. The results support the premise that CCSD market is still at early stage. Most of the professional software engineers do not participate seriously in crowdsource software development. Therefore, many crowdsourced tasks, especially complex tasks, may fail to receive any satisfying submission. These findings are worthwhile for the crowdsourcing platforms and companies who want to outsource their software development tasks to the CCSD platforms.