An automatic software test-generation method to discover the faults using fusion of machine learning and horse herd algorithm - Arasteh, Bahman; Arasteh, Keyvan; Ghaffari, Ali (The Journal of supercomputing, 2025)
One of the time-consuming and expensive phases in software development is software testing, which is used to improve the quality of software systems. Therefore, Software test automation is a helpful technique that can alleviate testing time. Several techniques based on evolutionary and heuristic algorithms have been put forth to produce maximum coverage test sets. The primary shortcomings of earlier methods are inconsistent outcomes, insufficient branch coverage, and low fault-detection rates. Increasing branch coverage rate, defect detection rate, success rate, and stability are the primary goals of this research. A time- and cost-effective method has been suggested in this research to produce test data automatically by utilizing machine learning and horse herd optimization algorithms. In the first stage of the proposed method, the suggested machine learning classification model identifies the non-error-propagating instructions of the input program using machine learning algorithms. In the second stage, a test generator was suggested to cover only the program's fault-propagating instructions. The main characteristics of produced test data are avoiding the coverage of non-error-propagating instructions, maximizing the coverage of error-propagating instructions, maximizing success rate, and the fault discovery capability. Several experiments have been performed using nine standard benchmark programs. In the first stage, the suggested instruction classifier provides 90% accuracy and 82% precision. In the second stage, according to the results, the produced test data by the suggested method cover 99.93% of the error-prone instructions. The average success percentage with this method was 98.93%. The suggested method identifies roughly 89.40% of the injected faults by mutation testing tools.