Bug management is the process to identify and fix bugs. In the bug management process, after a bug is identified, it needs to triaged. Bug triaging is the process of prioritizing bugs and assigning an appropriate developer for a given bug. The main task in bug triaging is to predict the most appropriate developer to fix a software bug from a given bug report. This problem can be defined as a classification problem in which textual bug attributes (bug title, description etc.) are inputs and the available developer (class label) is the output. Since manual bug triaging is a time consuming process, there have een several bug triaging algorithms to automate this process. One of the latest successful algorithms to address this problem is the Deep Triage. It employs Deep Bidirectional Recurrent Neural Network with Attention (DBRNN-A) approach for this classification task.
In this study, we implement an improved version of the automated bug triaging method, DeepTriage. To improve the performance of the model, three contributions are made to the original implementation: (1) Using GRU instead of LSTM to fasten the training process by using a larger batch size with the same memory usage, (2) Using a corpus combining the data from different datasets to create a more generalized model, (3) Adding extra dense layers before the multiclass classification to improve the results. After running the experiments, we achieved the state of the art results in Mozilla Firefox dataset, an accuracy of 46.6%. In the Chromium dataset, we get a higher accuracy (44.0%) than the original accuracy from the paper (42.7%). The resulting model and its source code is made publicly available for future research in this area.
recurrent neural networks long short term memory gated recurrent unit bug triaging
Hata yönetimi hataları belirleme ve çözme sürecidir. Hata yönetimi sürecinde, bir hatanın belirlendikten sonra triyajlanması gerekir. Hata triyajlama süreci hatanın önceliklendirilmesi ve hatanın uygun bir geliştiriciye atanması şeklinde gerçekleşir. Bu sürecin asıl kısmı verilen bir hata raporunu çözmek için en uygun geliştiriciyi tahmin edebilmektir. Bu hata raporlarının metinsel kısımlarının (hata başlığı, hata tanımı) girdi olduğu ve önerilecek olan geliştiricilerin de çıktı olduğu bir sınıflandırma problem olarak tanımlanabilir. Otomatik olarak yapılmayan hata triyajlama zaman alan bir süreç olduğundan, hata triyajlamayı otomatik hale getirmek üzerine birçok algoritma bulunmaktadır. Geçtiğimiz yıllarda bu problem üzerinde çalışan en son başarılı modellerden biri de Deep Triage’dır. Bu model sınıflandırma için derin, iki yönlü ve dikkatli tekrarlayan sinir ağı (DBRNN-A) kullanmaktadır.
Bu çalışmada biz literatürdeki başarılı bir hata triyajlama yöntemi olan Deep Triage’ın geliştirilmiş bir versiyonunu gerçekleştirdik. Makalede önceden önerilen modelin performansını artırmak için original çalışmaya üç katkıda bulunduk: (1) Aynı bellek miktarıyla daha büyük veri grupları kullanarak eğitme zamanını düşürmek için LSTM yerine GRU kullanmak, (2) Daha genel bir model oluşturmak için farklı veri setlerinin birleşmesinden oluşan bir sözlük kullanma ve (3) Sonuçları iyileştirmek için çok sınıflı sınıflandırmadan önce ilave sinir ağı katmanları koyma. Gerçekleştirdiğimiz deneylerin sonucunda Mozilla Firefox veri setinde %46.6 doğruluk ile original çalışmayla aynı sonuçları elde ettik. Chromium ver setinde ise orijinal çalışmadan (%42.7) daha yüksek bir doğruluk (%44.0) elde ettik. Bu konu hakkındaki ilerideki çalışmalar için geliştirilmiş model ve kaynak kodu paylaşılmıştır.
tekrarlayan sinir ağı uzun kısa süreli bellek kapılı tekrarlayan birim hata triyajlama
Birincil Dil | İngilizce |
---|---|
Konular | Mühendislik |
Bölüm | Makaleler |
Yazarlar | |
Yayımlanma Tarihi | 31 Ocak 2021 |
Yayımlandığı Sayı | Yıl 2021 Sayı: 21 |