The main goal of the QuaDeep project was to help software developers, testers and quality assurance personnel improve the quality of the software systems they are working on by providing them with advanced software tools based on the latest results from artificial intelligence (AI) research.
Nowadays researchers have large quantities of source code to work with and advanced AI methods and models at their disposal. One particular use for these models is trying to predict which modules of a software product are faulty. An AI that is able to detect faulty modules with great precision would lower software costs and enable teams to create good quality products much faster than it is possible today. As such, as part of QuaDeep we investigated which features of the source code are most relevant for this task by including semantic features as well as cohesion and coupling-based measurements. We used tools to automate extracting this information from the existing source code of large open-source programs and applied state-of-the art deep learning algorithms to process the data.
Our work led to several important results. First, we created new deep learning methods tailored to learn which software features are related to actual defects and integrated them into software modules capable of predicting defective modules. We experimented with several open-source programs and presented our results in 19 scientific papers published in important journals and conferences throughout Europe.