Font Size: a A A

Report Generation And Understanding For Software Bugs

Posted on:2020-09-17Degree:DoctorType:Dissertation
Country:ChinaCandidate:X C LiFull Text:PDF
GTID:1368330575456952Subject:Software engineering
Abstract/Summary:PDF Full Text Request
Bug management is one of the most important tasks in software development and maintenance.To manage bug reports,software companies utilize bug repositories to record and trace software bugs.Based on bug repositories,existing studies automate the process of bug management,e.g.,automatically generate test scripts to detect bugs and automatically triage and locate bug reports.However,many challenges are remained to be addressed on report generation and understanding for software bugs.These challenges include how to analyze test script failures in software testing for submitting bug reports and how to understand bug reports for fixing software bugs.To address these challenges,this dissertation investigates three critical problems,including report generation for software bugs(cause classification for bugs in system and integration testing),bug report understanding(crowdsourcing based supervised bug report summarization and deep-learning based unsupervised bug report summarization),and bug-related resources understanding(word-embedding based resources recommendation for bug reports).(1)Cause classification for bugs in system and integration testing.In software testing,testers analyze the causes of test script failures to submit bug reports.The work in this part aims to improve the efficiency of submitting bug reports.It analyzes test logs related to test scripts and automatically classifies the causes for test script failures.Experiments in industries show that the algorithm improves the accuracy on test script failure analysis.(2)Crowdsourcing based supervised bug report summarization.Bug report summarization is an ideal way to help developers efficiently understand software bugs.Based on the summary,developers can understand the main ideas of bug reports in less time than before.The work in this part hires volunteers to peruse bug reports and select important sentences manually.Based on the reasons of their selection,researchers construct attributes with a set of heuristic construction rules.Experiments show that the constructed attributes are effective to train supervised algorithms for bug report summarization.(3)Deep-learning based unsupervised bug report summarization.The lack of labeled data negatively affects the performance of supervised algorithms for bug report summarization.To solve this problem,the work in this part integrates the characteristics of bug reports into a stepped autoencoder network to summarize bug reports in an unsupervised way.Experiments on data sets from four typical bug repositories show that this algorithm summarizes bug report without labeled data and outperforms baseline algorithms,(4)Word-embedding based resources recommendation for bug reports.Developers write code according to the requirements mentioned in bug reports.To better understand bug requirements,the work in this part recommends requirement related APIs and API documents for bug reports.The recommended resources help developers understand bug reports from the view of code.The recommendation algorithm constructs vector representations for words and APIs with word embedding.The constructed vectors help developers understand bug reports by improving the performance of recommending requirement related software resources.The work in this dissertation analyzes the process of report generation and understanding for software bugs.This work can improve the efficiency of bug report submission and understanding.Meanwhile,the crowdsourcing based attribute construction method proposed in this dissertation can be used for other software engineering tasks.
Keywords/Search Tags:Failure Cause Classification, Bug Report, Attribute Construction, Software Text Summarization, Code Representation
PDF Full Text Request
Related items