Machine Learning Techniques for Software Quality Assurance: A Survey

by   Safa Omri, et al.

Over the last years, machine learning techniques have been applied to more and more application domains, including software engineering and, especially, software quality assurance. Important application domains have been, e.g., software defect prediction or test case selection and prioritization. The ability to predict which components in a large software system are most likely to contain the largest numbers of faults in the next release helps to better manage projects, including early estimation of possible release delays, and affordably guide corrective actions to improve the quality of the software. However, developing robust fault prediction models is a challenging task and many techniques have been proposed in the literature. Closely related to estimating defect-prone parts of a software system is the question of how to select and prioritize test cases, and indeed test case prioritization has been extensively researched as a means for reducing the time taken to discover regressions in software. In this survey, we discuss various approaches in both fault prediction and test case prioritization, also explaining how in recent studies deep learning algorithms for fault prediction help to bridge the gap between programs' semantics and fault prediction features. We also review recently proposed machine learning methods for test case prioritization (TCP), and their ability to reduce the cost of regression testing without negatively affecting fault detection capabilities.



There are no comments yet.


page 1


DeepOrder: Deep Learning for Test Case Prioritization in Continuous Integration Testing

Continuous integration testing is an important step in the modern softwa...

A Simulation Study of Bandit Algorithms to Address External Validity of Software Fault Prediction

Various software fault prediction models and techniques for building alg...

Poster: Identification of Methods with Low Fault Risk

Test resources are usually limited and therefore it is often not possibl...

On the costs and profit of software defect prediction

Defect prediction can be a powerful tool to guide the use of quality ass...

Generating Examples From CLI Usage: Can Transformers Help?

Continuous evolution in modern software often causes documentation, tuto...

Too Trivial To Test? An Inverse View on Defect Prediction to Identify Methods with Low Fault Risk

Background. Test resources are usually limited and therefore it is often...

RepoMiner: a Language-agnostic Python Framework to Mine Software Repositories for Defect Prediction

Data originating from open-source software projects provide valuable inf...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.