With the rapid development of Internet technologies,software today is becoming more and more powerful,while the growing scale and complexity have greatly threatened its quality.Software defect prediction,being an effective way of ensuring software quality,is a process of exploiting the information from the software to predict whether the software is defective.It can not only reduce the defects caused during the development of software but also help software testers focus on defect-prone modules.Mainly relying on software metrics,traditional software defect prediction approaches use machine learning techniques to mine the relationship between software metrics and defects.However,program source code contains rich syntactic and semantic information that can be used for defect prediction.Such information can hardly be represented by software metrics.Besides,some deep learning-based software defect prediction researches neglect the data distribution difference between projects and didn't consider whether the extracted software features are transferable.Moreover,most defect prediction research neglect the fact that software development is an iterative process.As the software version changes,it is likely to encounter a predictive performance drop if no adjustment is made to the model.To solve these problems,this paper makes further research on software defect prediction and the contents include:(1)to solve the lack of using program semantics in traditional software defect prediction,this paper proposed a software defect prediction approach based on long short-term memory network to mine semantic information for defect prediction;(2)to tackle the data distribution difference between projects,this paper employs transfer learning techniques and proposed an optimized abstract syntax tree representation;(3)the model is optimized to cope with the change of software data based on online learning techniques and a defect prediction system is designed and implemented. |