
Automatic Test Case Generation Using Many-Objective Search and Principal Component Analysis
Author(s) -
Dongcheng Li,
W. Eric Wong,
Sean Pan,
Liang-Seng Koh,
Shenglong Li,
Matthew Chau
Publication year - 2022
Publication title -
ieee access
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.587
H-Index - 127
ISSN - 2169-3536
DOI - 10.1109/access.2022.3198694
Subject(s) - aerospace , bioengineering , communication, networking and broadcast technologies , components, circuits, devices and systems , computing and processing , engineered materials, dielectrics and plasmas , engineering profession , fields, waves and electromagnetics , general topics for engineers , geoscience , nuclear engineering , photonics and electrooptics , power, energy and industry applications , robotics and control systems , signal processing and analysis , transportation
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.