Abstract

Bugs exist in software systems; unfortunately, manually finding bugs and repairing them is complex, time-consuming, and expensive. Automated Program Repair (APR) techniques have promising results to make the debugging process automatic and dramatically decreasing the cost of developing a software system. Almost all developed APR tools use test suites to bug localization and evaluate generated candidate patches' correctness; thus, it is named dynamic APR. Test overfitting is one of the main challenges of dynamic APR tools, which is evident from several recent studies. Test overfitting means the repaired program is not correct based on the program's expected behavior while the repaired program can satisfy its input test suite. In other words, the patch is only good enough to pass the input test suite, but the generated patched program is not correct regarding the program's actual requirements. My dissertation aims to provide fresh insight into the test overfitting problem by using formal methods as a patch correctness assessment, a counterexample generator, and its combination with fuzzers to make dynamic APR tools more reliable. Furthermore, a new dataset with 597 buggy programs has been created for this research that all programs are equipped with full formal behavioral specifications using Java Modeling Language that OpenJML's static verification tool can detect all as buggy programs.

Notes

If this is your thesis or dissertation, and want to learn how to access it or for more information about readership statistics, contact us at STARS@ucf.edu

Graduation Date

2021

Semester

Fall

Advisor

Leavens, Gary

Degree

Doctor of Philosophy (Ph.D.)

College

College of Engineering and Computer Science

Department

Computer Science

Degree Program

Computer Science

Identifier

CFE0009310; DP0026914

URL

https://purls.library.ucf.edu/go/DP0026914

Language

English

Release Date

June 2023

Length of Campus-only Access

1 year

Access Status

Doctoral Dissertation (Open Access)

Share

COinS