International Journal of Electrical and Computer Engineering (IJECE) Vol. 13, No. 2, April 2023, pp. 1803~1816 ISSN: 2088-8708, DOI: 10.11591/ijece.v13i2.pp1803-1816 1803 Journal homepage: http://ijece.iaescore.com A review paper: optimal test cases for regression testing using artificial intelligent techniques Shahbaa I. Khaleel, Raghda Anan Department of Software, College of Computer Science and Mathematics, The University of Mosul, Mosul, Iraq Article Info ABSTRACT Article history: Received Mar 26, 2022 Revised Sep 16, 2022 Accepted Oct 14, 2022 The goal of the testing process is to find errors and defects in the software being developed so that they can be fixed and corrected before they are delivered to the customer. Regression testing is an essential quality testing technique during the maintenance phase of the program as it is performed to ensure the integrity of the program after modifications have been made. With the development of the software, the test suite becomes too large to be fully implemented within the given test cost in terms of budget and time. Therefore, the cost of regression testing using different techniques should be reduced, here we dealt many methods such as retest all technique, regression test selection technique (RTS) and test case prioritization technique (TCP). The efficiency of these techniques is evaluated through the use of many metrics such as average percentage of fault detected (APFD), average percentage block coverage (APBC) and average percentage decision coverage (APDC). In this paper we dealt with these different techniques used in test case selection and test case prioritization and the metrics used to evaluate their efficiency by using different techniques of artificial intelligent and describe the best of all. Keywords: Fuzzy logic Machine learning Neural network Regression testing Swarm Intelligence This is an open access article under the CC BY-SA license. Corresponding Author: Shahbaa I. Khaleel Department of Software, College of Computer Science and Mathematics, Mosul University Mosul, Iraq Email: shahbaaibrkh@uomosul.edu.iq 1. INTRODUCTION Because of the rapid development in software development and the increasing need for good and efficient software systems, the importance of systems testing has increased. Through the testing process, the system is evaluated and ensured that it performs for the purpose required of it, as the testing process verifies the integrity of the program from errors and its reliability in performing its job and its correct operation [1]. There are many testing techniques and the most common are black box testing technique, white box testing technique and grey box testing technique, where black box testing focuses on the functionality of the system under development without going deep into the structural details of the system. As for the white box test, also called (structural test), it is concerned with the internal details of the system, the processes that take place within it, its internal structure and its implementation. As for grey box testing, it combines the white box testing technique and the black box testing technique. In this type of testing, the tester is familiar with the internal structure of the program and then performs functional testing of it, taking into account the internal structure of that program or application [2]. The testing process includes configuring and executing the system with test cases. Test cases are determined based on testing techniques such as black box testing, white box testing and error-based testing, through which one can know the internal structure and function of the system and some of its common errors. Testing techniques can be used in unit testing, integration testing, system testing and acceptance testing [2],