klasifikasi severity dari bug untuk proyek perangkat...
TRANSCRIPT
![Page 1: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/1.jpg)
Klasifikasi Severity dari Bug UntukProyek Perangkat Lunak
Tegar Riyono Putra (5107100009)
Dosen Pembimbing :1. Daniel Oranova Siahaan2. Umi Laili Yuhana
![Page 2: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/2.jpg)
Sistem pelacakan bug Merupakan perangkat lunak yang dirancang
untuk membantu mancatat dan melacak bug perangkat lunak yang dilaporkan, baik olehpengembang, penjamin kualitas, maupunanggota tim yang lain
Bug yang ditemukan oleh pengguna dapat dilaporkan secara langsung melalui sistem ini
Dalam perkembangannya, sistem pelacakanbug sudah banyak digunakan dalam duniapengembangan perangkat lunak, bahkansistem ini diintegrasikan dengan sistemmanajemen proyek
![Page 3: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/3.jpg)
Entri bug pada sistem Bugzilla
![Page 4: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/4.jpg)
Daftar bug pada Bugzilla
![Page 5: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/5.jpg)
Latar belakang
Perbedaan latar belakang pelapormenyebabkan pemberian nilaiseverity(tingkat keparahan) cenderungbersifat subjektif
Waktu yang singkat membuat pelaporkesulitan dalam melakukan pengecekansecara menyeluruh
![Page 6: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/6.jpg)
Rumusan Masalah
Bagaimana mengubah data bug report menjadi berkas berjenis ARFF(AtributeRelation File Format)
Bagaimana memodelkan klasifikasi severitydari bug berdasarkan atribut deskripsi/summary dari bug
Bagaimana memproses bug report agar dapat menghasilkan rekomendasi sesuai dengan model klasifikasi severity
![Page 7: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/7.jpg)
Batasan Permasalahan
Aplikasi ini menggunakan data yang berasal dari repository Bugzilla untuk proyek pengembangan perangkat lunak Mozilla mulai tanggal 1 januari 2010
Severity yang akan dimodelkan meliputi 6 tingkat yaitu critical, major, normal, minor, trivial, dan enhancement
![Page 8: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/8.jpg)
Use case Diagram
Admin
Unduh Laporan Bug
Menyaring Laporan Bug
Pembobotan Kata
Perangkingan Kata
Latih Model Klasifikasi
<<include>>
<<include>>
<<include>>
![Page 9: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/9.jpg)
Arsitektur Sistem
![Page 10: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/10.jpg)
Pengunduhan laporan bug
Menggunakan web service yang disediakan Bugzilla
Laporan bug yang diunduh dimulai dari tahun 2010
Laporan bug yang didapat disimpan dalam berkas bertipe Arff
![Page 11: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/11.jpg)
Alur pemodelan klasifikasi
act Modelling Workflow
Sistem
mulai
Data Kasar Laporan Bug Seleksi Laporan Bug
Pembobotan Kata
Perangkingan KataPelatihan Model Klasifikasi
Model Klasifikasi
selesai
![Page 12: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/12.jpg)
Seleksi laporan bugTujuan : menghilangkan data laporan bug yang
dianggap tidak valid dan tidak layak dijadikan data latih◦ Laporan bug dengan nilai severity yang tidak
diperlukan◦ Laporan bug dengan distribusi tidak merata◦ Deskripsi bug yang mengandung karakter selain
huruf• Mengubah deskripsi bug menjadi bentuk vektor kata
(tokenisasi, stop word removal dan stemming)
![Page 13: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/13.jpg)
Tokenisasi
Adalah proses memecah suatu String menjadi substring berdasarkan pola tertentu(memecah deskripsi menjadi kumpulan kata)
Menggunakan 2 pilihan tokenisasi◦ Alphabetic Tokenization
tokenisasi berdasarkan urutan alpabet◦ Words Tokenization
tokenisasi standar berdasarkan string pemisah
![Page 14: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/14.jpg)
Stop word removal
Adalah proses menghapus kata-kata yang tidak mempunyai arti secara independen
Menggunakan daftar kata yang disediakan Weka
![Page 15: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/15.jpg)
Stemming
Adalah proses mengurangi kata yang berimbuhan atau kata turunan menjadi bentuk dasar
Menggunakan 3 macam pilihan stemming◦ Lovins stemmer◦ IteratedLovins stemmer◦ Snowball Stemmer
![Page 16: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/16.jpg)
Laporan bug dengan distribusi tidak merata
![Page 17: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/17.jpg)
Deskripsi/ summary bug yang mengandung angka/simbol pm-app-amo24 constantly segfaulting -moz-border-radius + overflow:hidden
does not hide children (or shadows of children) at the rounded corners
Port Bug 227305 (Support drag-drop single message to desktop / file-system window)
jemalloc can be deadlock with fork(2)
![Page 18: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/18.jpg)
Berkas arff berisi laporan bug
![Page 19: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/19.jpg)
Berkas arff berisi vektor kata
![Page 20: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/20.jpg)
Pembobotan kata Menggunakan metode tf*idf (term freqency
times inverse document frequency) Tujuan : pemangkasan kata berdasarkan
bobot kata pada keseluruhan laporan bug Rumus : Tf*idfij=kij/lj * log(n/ni) Karena Tf*idf menghitung bobot kata dalam
suatu summary(bukan keseluruhan) maka diperlukan penyesuaian agar dihasilkan bobot kata total
Rumus : tf(avg)=
![Page 21: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/21.jpg)
Perangkingan kata
Menggunakan metode infogain Tujuan : pemangkasan kata berdasarkan
nilai infogain dari kata Rumus :
H(Y|X) = Σj (Prob(X=vj) H(Y | X = vj)) IG(Y|X) = H(Y) - H(Y | X)
![Page 22: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/22.jpg)
Pelatihan model klasifikasi
Menggunakan metode RIPPER(Repeated Incremental Prunning to Produce Error Reduction)
Algoritma pemodelan klasifikasi yang berupa induksi aturan
Terdiri atas tahap pembangunan aturan dan tahap optimasi
![Page 23: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/23.jpg)
Contoh model RIPPER
![Page 24: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/24.jpg)
Uji coba pemodelan klasifikasi
Menggunakan 929 laporan bug, setelah data set melalui proses perangkingan, dihasilkan340 buah deskripsi dengan 295 macamkata
Correctly Classified Instances 185 54.4118 %
Incorrectly Classified Instances 155 45.5882 %
![Page 25: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/25.jpg)
Kesimpulan Hasil pengunduhan laporan bug dari repositori
Bugzilla dapat diubah menjadi bentuk Arff dengan beberapa penyesuaian
Proses pelatihan laporan bug yang menggunakan metode RIPPER dapat menghasilkan model dengan tingkat akurasi yang cukup baik (tingkat akurasi 54%) meskipun hanya dilakukan terhadap atribut deskripsi/summary
Aplikasi yang dibuat dalam Tugas Akhir ini telah dapat mengimplementasikan sebuah sistem yang mampu memberikan rekomendasi severity kepada pengguna sehingga memudahkan pengguna dalam melaporkan bug pada sistem manajemen bug
![Page 26: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/26.jpg)
Berkas Arff
Merupakan salah satu bentuk berkas standar yang digunakan aplikasi Weka
Mudah digunakan untuk operasi penggalian data
Terdiri dari 2 macam, bentuk normal dan sparse
![Page 27: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/27.jpg)
Contoh berkas Arff normal
![Page 28: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/28.jpg)
Contoh berkas Arff sparse
![Page 29: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/29.jpg)
Class diagram recommendation
class RecommendationManager
javax.swing.JFrameUI::RecommendationManagerWindow
+ output_area: javax.swing.JLabel+ summary_area: javax.swing.JTextArea
+ main(String[]) : void+ RecommendationManagerWindow(JFrame)
RecommendationManager
- classifier: Classifier- package_directory: File- window: RecommendationManagerWindow
+ classifyInstance(String) : void+ getPackage() : File+ LoadModel() : void+ setPackage(File) : void+ setWindow(RecommendationManagerWindow) : void
Classifier
# manager: ProgressManager# option: int ([])# package_name: File
+ do_classification() : void+ setOption(int[]) : void+ setPackage(File) : void+ setProgressManager(ProgressManager) : void
-window
-classifier
![Page 30: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/30.jpg)
Class diagram model
class ModelManager
ClassificationManager
+ ClassificationManager(ProgressManager)+ doClassification(File) : void+ setOptions(int[]) : void
FilterManager
+ AlphabethicTokenizer: int = 0 {readOnly}+ IteratedLovinsStemmer: int = 0 {readOnly}+ LovinsStemmer: int = 1 {readOnly}+ SnowballStemmer: int = 2 {readOnly}+ Tidak: int = 1 {readOnly}+ WordsTokenizer: int = 1 {readOnly}+ Ya: int = 0 {readOnly}
+ ApplyFilter(File) : void+ FilterManager(ProgressManager)+ setOptions(int[]) : void
RunnableModelManager
+ DO_CLASSIFICATION: int = 4 {readOnly}+ DO_PREPROCCESS: int = 1 {readOnly}+ DO_RANKING: int = 3 {readOnly}+ DO_WEIGHTING: int = 2 {readOnly}+ GET_BUGREPORT: int = 5 {readOnly}
+ checkModel(File) : boolean+ get_package_name() : File+ ModelManager(JFrame)+ package_is_set() : boolean+ run() : void+ set_package_name(File) : void+ setBugRetrievalOption(String[]) : void+ startProccess(int, int[]) : void
Retriev alManager
+ getBugReport(String, String, int, int, File) : void- isNewAttribute(String[], int, String) : boolean+ RetrievalManager(ProgressManager)+ SaveToArff(HashMap<String, Object>[], Object[], File) : void
ValuationManager
+ doRanking(File) : void+ doWeighting(File) : void+ setOptions(int[]) : void+ ValuationManager(ProgressManager)
-valuation_manager-retrieval_manager
-fi lter_manager
-classification_manager
![Page 31: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/31.jpg)
Confusion matrix
Diklasifikasikan sebagai A B C D E F
A = critical 10 51 0 0 0 0
B = major 0 101 0 0 0 0
C = normal 0 39 20 0 0 0
D = minor 0 34 0 11 0 0
E = trivial 0 0 0 0 16 0
F = enhancement 0 31 0 0 0 27
![Page 32: Klasifikasi Severity dari Bug Untuk Proyek Perangkat Lunakdigilib.its.ac.id/public/ITS-Undergraduate-17287-5107100009-Presentation.pdfmenghilangkan data laporan bug yang dianggap tidak](https://reader034.vdocuments.net/reader034/viewer/2022052300/5cea306f88c9935c028bc630/html5/thumbnails/32.jpg)
Perancangan penyimpanan model