IEEE Access (Jan 2022)
Automatic Test Case Generation Using Many-Objective Search and Principal Component Analysis
Abstract
Test case generation in essence is a many-objective optimization problem, with objectives such as program statements and branches. Currently, the DynaMOSA algorithm built on the EvoSuite framework simultaneously searches multiple objectives and eventually produces a test suite with high coverage for multiple testing criteria. However, its performance is undesirable in searching test cases when there are an excessive number of objectives. As the software structure becomes increasingly complex and the lines of program code increase, the high cost of testing limits the application of search-based automatic test case generation technology for software testing. To generate test cases with high coverage within a limited time, this paper proposes PCA-DynaMOSA to overcome the shortcomings of DynaMOSA, and the improvement in the proposed algorithm is due to dimensionality reduction. To carry out the experiments, 49 projects or 110 classes were selected from the SF110 benchmarking dataset according to the complexity and the number of objectives of the classes under test. The experimental results indicate that PCA-DynaMOSA outperforms DynaMOSA in generating test cases on most projects in terms of line, branch, mutation, and multi-criteria coverage. Moreover, it achieves higher or equivalent coverage and offers improved test case generation performance.
Keywords