Font Size: a A A

Graph Representation And Machine Learning Based Defect Detection

Posted on:2020-02-17Degree:MasterType:Thesis
Country:ChinaCandidate:L Y JiaFull Text:PDF
GTID:2518306548493764Subject:Software engineering
Abstract/Summary:PDF Full Text Request
With the rapid development of Internet technology and the widespread use of software,software systems are playing an increasingly important role in our daily lives.The scale of software is getting bigger and the complexity is getting higher.Therefore,how to detect the defects in the software as much as possible before it is put into use is an important topic in the field of software engineering research.At present,there are a large number of open source static analysis tools.They are often implemented with different theoretical principles and have a variety of defect types that are good at detecting.In addition,software defect detection based on machine learning has also achieved certain results.In order to achieve higher accuracy and recall rate,and to improve automation in the process of software defect detection,we propose two methods of defect detection: 1)Five kinds of static analysis tools are selected,and a graph traversal detection method based on code property graph is proposed to deal with the defects with high rate of missing reports.2)in view of the problem that the graph traversal needs to be written manually with higher requirements for specialized knowledge,a defect detection method combining program slicing and machine learning is proposed,which can extract the defect features in the code more accurately,weaken the requirements for defect knowledge and improve the automation of defect detection.The experimental results show that: 1)the accuracy and recall rate of the defect detection method based on the code property graph are better than those of the static analysis tools when detecting the defect types which are difficult for existing static analysis tools.At the same time,this method does not require that the code to be tested can be compiled,and it is better than the static analysis tool in the detection of Linux kernel code.2)The defect detection method combining program slicing with machine learning can more accurately express the defect features,and can detect the real vulnerability when the Linux kernel code is tested.At the same time,the detection of potentially defective code is more automatic,which greatly reduces the amount of code reviewed manually.
Keywords/Search Tags:Static Analysis, Machine Learning, Defect Detection
PDF Full Text Request
Related items