Please use this identifier to cite or link to this item: http://202.28.34.124/dspace/handle123456789/1345
Title: Assembling of Dependent Bug Reports from Bug Report Repository
การจัดกลุ่มรายงานจุดบกพร่องส่วนต่อจากคลังรายงานจุดบกพร่องของซอฟต์แวร์
Authors: Bancha Luaphol
บัญชา เหลือผล
Jantima Polpinij
จันทิมา พลพินิจ
Mahasarakham University. The Faculty of Informatics
Keywords: รายงานจุดบกพร่อง
จุดบกพร่องส่วนต่อ
ฟังก์ชันการค้นคืน
การประมวลผลภาษาธรรมชาติ
การวิเคราะห์ความคล้ายคลึง
ระบบติดตามรายงานจุดบกพร่อง
Bug report
Bug dependency
Retrieval function
Natural language processing
Similarity analysis
Bug tracking system
Issue Date:  24
Publisher: Mahasarakham University
Abstract: When developing software, defects (also known as bugs) are inevitable. Bugs return incorrect or unexpected software results; they must be detected and fixed as quickly as possible. In general, it is easier to locate and track bugs in smaller software. By contrast, bugs are rarely encountered during testing on larger open-source software since issues have many places to ‘hide’ in the coding. Therefore, various bug tracking systems (BTS) such as Jira, Trace, and Bugzilla have been developed and proposed to gather important bug-related information, called as “bug reports”, from users worldwide. These bug reports contain significant information that can be used for software quality maintenance and improvement. However, many tasks in BTS are still performed manually by bug triagers who are software experts. With the ever-increasing numbers of bug reports, manual analysis has become a time-consuming task. Therefore, many researches related to bug reports have been studied and proposed studied continuously. Those researches are bug report misclassification, bug reports duplication analysis, bug report severity prediction, bug localization, and bug fixing time prediction. Unfortunately, one problem mentioned in many previous studies has never been fully investigated. This issue is called “bug dependency”. That is, if the bug persists after being fixed by a developer, the problem may be caused by another bug that impacts completion of the bug fixing process. A potential solution to resolve the bug dependency problem is to assemble the dependent bug reports. This may provide an opportunity to further completely fix the software bugs. By grouping relevant bug reports together, the development team can better visualize the overall picture of the bugs in a piece of software. In this study, seven features of bug report as unigram, bigram, compound word, unigram+bigram, unigram+compound word, bigram+compound word, and all features together can be comparatively studied. After experimenting through bug report misclassification, bug report severity analysis and bug report grouping, the unigram+compound word was selected as the proper feature of bug report for this study. In addition, four term-weighting schemes as tf, tf-idf, BM25, and multi-aspect tf (MATF) were also applied. A method based on six techniques was proposed to assemble the dependent bug reports. Those techniques included constraint-based k-means clustering, constraint-based spherical k-means clustering, cosine similarity, BM25, MATF, and the retrieval function (REP). For BM25 and MATF, they are not only applied as the term weighting scheme but also as the similarity function. Bug reports from Firefox and Core as products from Mozilla open-source were used for this study. Bugs identified and reported between October 2000 and September 2017 were gathered through Mozilla’s BTS. After testing by recall (true positive rate), precision, F1, accuracy, ROC, and AUC, the BM25 similarity function returned the most satisfactory results. However, if a larger dataset was used for tuning the REP parameters, results of REF tended to be better than those returned by BM25. Unfortunately, processing the REP may require high computational time. Furthermore, it can be found that the results of each technique used for assembling the dependent bug reports may be better when compared to previous studies. However, these studies were concentrated on different issues.
ในการพัฒนาซอต์ฟแวร์นั้น จุดบกพร่อง (หรือที่เรียกแบบสั้นว่า บั๊ก) เป็นสิ่งที่หลีกเลี่ยงไม่ได้ จุดบกพร่องจะให้ผลลัพธ์ของซอฟต์แวร์ที่ไม่ถูกต้องหรือไม่คาดคิด ซึ่งจุดบกพร่องจะต้องได้รับการตรวจจับและแก้ไขโดยเร็วที่สุด โดยทั่วไปแล้ว มันไม่ยากนักในการตรวจหาจุดบกพร่องในซอฟต์แวร์ขนาดเล็ก แต่ในทางตรงข้าม การตรวจหาจุดบกพร่องในซอฟต์แวร์โอเพนซอร์ซขนาดใหญ่ในขั้นตอนของการทดสอบซอฟต์แวร์นั้นเป็นไปได้ยาก เนื่องจากจุดบกพร่องหลายจุดอาจจะซ่อนอยู่ในโปรแกรมที่ไม่สามารถตรวจจับได้ทั้งหมดจากการทดสอบ ดังนั้นระบบติดตามจุดบกร่อง (BTS) หลายๆ ระบบ เช่น จิรา เทรซ และบั๊กซิลลา ที่ถูกพัฒนาและนำเสนอเพื่อใช้ในการรวบรวมข้อมูลที่สำคัญเกี่ยวกับบั๊กที่เรียกว่า “รายงานจุดบกพร่อง” จากผู้ใช้งานซอฟต์แวร์โอเพนซอร์ซทั่วโลก ซึ่งรายงานจุดบกพร่องเหล่านั้นจะบรรจุข้อมูลที่สำคัญที่สามารถใช้สำหรับการบำรุงรักษาและปรับปรุงคุณภาพของซอฟต์แวร์ อย่างไรก็ตาม หลายๆ งานใน BTS นั้น ยังคงดำเนินการโดยผู้ตรวจสอบรายงานจุดบกพร่อง ผู้ซึ่งเป็นผู้เชี่ยวชาญด้านซอฟต์แวร์ แต่ด้วยจำนวนรายงานจุดบกพร่องที่เพิ่มขึ้นเรื่อย ๆ งานต่างๆ ที่วิเคราะห์ด้วยผู้ตรวจสอบรายงานจุดบกพร่องนั้น กลายเป็นงานที่ต้องใช้เวลาเป็นอย่างมาก ดังนั้น หลายๆ งานวิจัยที่เกี่ยวข้องกับรายงานจุดบกพร่องจึงได้รับการศึกษาและนำเสนออย่างต่อเนื่อง งานวิจัยเหล่านั้นคือ การจำแนกรายงานจุดบกพร่องว่าเป็นรายงานจุดบกพร่องและที่ไม่ใช่รายงานจุดบกพร่อง การวิเคราะห์รายงานจุดบกพร่องที่ซ้ำซ้อน การทำนายระดับความรุนแรงของรายงานจุดบกพร่อง การค้นหาตำแหน่งของจุดบกพร่องในโปรแกรม และการพยากรณ์เวลาในการแก้ปัญหาจุดบกพร่อง เป็นต้น แต่น่าเสียดายที่ปัญหาหนึ่งเกี่ยวกับรายงานจุดบกพร่องที่เคยมีการกล่าวถึงในการศึกษาก่อนหน้า แต่กลับยังไม่เคยมีการศึกษาอย่างจริงจัง ปัญหาดังกล่าวนั้นเรียกว่า “รายงานจุดบกพร่องที่เป็นส่วนต่อ” นั่นคือ หากจุดบกพร่องหนึ่งยังคงอยู่แม้ว่าจะได้รับการแก้ไขจากนักพัฒนาซอฟต์แวร์แล้ว อาจเป็นเพราะว่ามีจุดบกพร่องอื่นที่เกี่ยวข้องกันยังไม่ได้รับการแก้ไขให้สมบูรณ์ จึงส่งผลกระทบกับจุดบกพร่องนั้นๆ แนวทางหนึ่งที่เป็นไปได้ในการแก้ไขปัญหาจุดบกพร่องที่เป็นส่วนต่อ คือการรวบรวมรายงานจุดบกพร่องที่เป็นส่วนต่อเข้าด้วยกัน ซึ่งการทำเช่นนี้น่าจะเป็นการให้โอกาสในการแก้ไขจุดบกพร่องของซอฟต์แวร์ได้อย่างสมบูรณ์ เพราะด้วยการรวบรวมรายงานจุดบกพร่องที่เป็นส่วนต่อเข้าด้วยกัน ทีมพัฒนาซอฟต์แวร์สามารถมองเห็นภาพรวมของจุดบกพร่องทั้งหมดในซอฟต์แวร์ได้ ในงานวิจัยนี้ คุณลักษณะของรายงานจุดบกพร่อง 7 อย่าง ได้แก่ คำเดี่ยว กลุ่มคำแบบสองคำ คำจากกลุ่มคำผสม คำเดี่ยวร่วมกับกลุ่มคำแบบสองคำ คำเดี่ยวร่วมกับคำจากกลุ่มคำผสม กลุ่มคำแบบสองคำร่วมกับคำจากกลุ่มคำผสม และคำเดี่ยวร่วมกับกลุ่มคำแบบสองคำและคำจากกลุ่มคำผสม ได้ถูกศึกษาเชิงเปรียบเทียบ ภายหลังจากทำการทดสอบผ่านการจำแนกรายงานข้อผิดพลาด การวิเคราะห์ความรุนแรงของรายงานข้อบกพร่องและการจัดกลุ่มรายงานข้อบกพร่อง ซึ่งคำเดี่ยวร่วมกับคำจากกลุ่มคำผสม ได้รับการพิจารณาว่าเป็นคุณลักษณะของรายงานจุดบกพร่องที่เหมาะสมสำหรับการศึกษา นอกจากนั้น เทคนิคในการให้น้ำหนักคำ 4 เทคนิคได้แก่ tf, tf-idf, BM25, และ Multi-Aspect tf (MATF) ได้ถูกประยุกต์ใช้ โดยกระบวนการพื้นฐานของ 6 เทคนิคได้ถูกนำเสนอเพื่อการจัดกลุ่มรายงานจุดบกพร่องที่เป็นส่วนต่อกัน เทคนิคเหล่านั้นได้แก่ การจัดกลุ่มแบบเคมีนที่มีข้อจำกัด การจัดกลุ่มแบบเคมีนทรงกลมที่มีข้อจำกัด การวิเคราะห์ความคล้ายคลึงแบบโคไซน์, BM25, MATF, และการใช้ฟังก์ชันการค้นคืน (REP) สำหรับ BM25 และ MATF ไม่เพียงถูกใช้เป็นเทคนิคในการให้น้ำหนักแล้ว ยังใช้เป็นฟังก์ชันในการวิเคราะห์ความคล้ายคลึงด้วย ในการศึกษานี้จะใช้รายงานจุดบกพร่องจากไฟร์ฟอกซ์และคอร์ซึ่งเป็นผลิตภัณฑ์จากมอซิลลา โดยเป็นรายงานจุดบกพร่องที่รวบรวมจาก BTS ของมอซิลลาที่มีการรายงานจุดบกพร่องขึ้นมาในระหว่างเดือนตุลาคม ปี 2000 ถึงเดือนกันยายน ปี 2017  หลังจากทดสอบด้วยค่าความระลึก (อัตราผลบวกจริง) ค่าความแม่นยำ ค่าเอฟ ค่าความถูกต้อง กราฟเส้นโค้ง และค่าพื้นที่ใต้เส้นโค้ง พบว่าฟังก์ชันในการวิเคราะห์ความคล้ายคลึงแบบ BM25 ให้ผลลัพธ์ที่น่าพอใจมากที่สุด อย่างไรก็ตาม ถ้าใช้ชุดข้อมูลขาดใหญ่ในการปรับค่าพารามิเตอร์ที่ใช้ในฟังก์ชันการค้นคืน ผลลัพธ์ของ REP มีแนวโน้มที่ให้ผลลัพธ์ที่ดีกว่าผลลัพธ์จาก BM25 แต่เวลาที่ใช้ในการประมวลผลของ REP จะสูงมาก นอกจากนี้ยังพบว่าผลลัพธ์ของแต่ละเทคนิคที่ใช้ในการจัดกลุ่มรายงานจุดบกพร่องที่เป็นส่วนต่อกันนั้นให้ผลลัพธ์ที่ดีกว่า เมื่อมีการเปรียบเทียบกับงานวิจัยอื่นๆ อย่างไรก็ตาม งานวิจัยที่นำมาเปรียบเทียบนั้นให้ความสนใจในปัญหาที่แตกต่าง
Description: Doctor of Philosophy (Ph.D.)
ปรัชญาดุษฎีบัณฑิต (ปร.ด.)
URI: http://202.28.34.124/dspace/handle123456789/1345
Appears in Collections:The Faculty of Informatics

Files in This Item:
File Description SizeFormat 
60011260503.pdf6.59 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.