A Program-Output Estimator for Software Testing Using Program Analysis and Deep Learning Algorithms


Creative Commons License

Arasteh B., Sefati S. S., Gunes P., Hosseinzadeh V., Kiani F.

Journal of Electronic Testing: Theory and Applications (JETTA), 2025 (SCI-Expanded, Scopus) identifier

Özet

Software testing is increasingly used as a software quality control method. During testing, the program under test’s output is compared with the expected correct output using test data. Estimating the program’s correct output from test inputs is a research problem in software testing. A test predictor (oracle) is a mechanism for determining the correctness of software outputs during testing. Many statistical and data mining techniques have been utilized to design a software test oracle. This study uses a Deep Learning (DL) technique to design a software test oracle. The proposed approach uses Convolutional Neural Networks (CNNs) to build the model for predicting results. Creating a training dataset derived from the behavior of real-world programs is another contribution of this study. Converting the created dataset to image files and normalizing them is the other stage of this study. The experimental results for programs with numeric and classification outputs indicate that the introduced test oracle achieves approximately 98% accuracy and 97% sensitivity. Moreover, the proposed method demonstrates higher accuracy, precision, and sensitivity than previous methods.