Abstract

Regression testing is very important but also a very costly and time-consuming activity that ensures the developers that changes in the application will not bring new errors. Retest all, selection of test cases and prioritization of test cases (TCP) approaches are used to enhance the efficiency and effectiveness in regression testing. While test case selection techniques decrease testing time and cost, it can exclude some critical test cases that can detect the faults. On the other hand, test case prioritization considers all test cases and execute them until resources are exhausted or all test cases are executed, while always focusing on the most important ones. Over the years, machine learning has found wide usage in solving different problems in software engineering. Software development and maintenance problems can be defined as learning problems and machine learning techniques have shown to be very effective in solving these problems. In the range of application of machine learning, machine learning techniques have also found usage in solving the test case prioritization problem. In this paper, we investigate the application of machine learning techniques in test case prioritization. We survey some of the most recent studies made in this field and provide information like techniques of machine learning used in TCP process, metrics used to measure the effectiveness of the proposed methods, data used to define the priority of test cases and some advantages or limitations of application of machine learning in TCP.

Highlights

  • Software testing has a significant role in the software development process

  • A variety of other machine learning techniques have shown to be efficient in TCP

  • Case-Based Ranking (CBR) and SVMmap are effective in integrating different attributes while K-nearest neighbor, logistic regression and k-means can be used in clustering test cases

Read more

Summary

Introduction

It is performed to detect the errors or defects of a software system and guarantees that it works according to its specifications. When changes, such as enhancements, are made in the existing system it is important to uncover any new software bug or error. Time, cost and resource constraints make it hard to execute all test cases [3]-[5]. There exist many techniques to test the changed software within time and resource constraints.

Objectives
Methods
Results
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call