Software Engineering Doctoral Candidate
Who Am I?
Hello, my name is Samuel Benton! I earned my B.S. in Software Engineering and B.S. in Computer Engineering in 2016 and Masters in Software Engineering in 2019 from the University of Texas at Dallas. I am a currently Software Engineering doctoral candidate attending the University of Texas at Dallas under the supervision of Dr. Lingming Zhang and Dr. Adrian Marcus.
Software Engineering Research Topics
My current research area focuses on software testing, particularly improving various areas of software repair. Recent research topics and interests include:
Software Engineering Research Publications
Practical Program Repair via Bytecode Mutation
This paper introduces PraPR, a new automated program repair technique based on the existing PIT mutation testing tool. The technique performs program modifications at the bytecode level, ultimately allowing construction of more program variants faster while simultaneously decreasing variant test time. At publication, PraPR found 43 genuine repair patches for 395 bugs from the Defects4J v1.20 dataset.
Conference: International Symposium of Software Testing and Analysis (2019)
Paper Link: https://dl.acm.org/doi/10.1145/3293882.3330559
Github Link: https://github.com/prapr/prapr
Defexts: A Curated Dataset of Reproducible Real-World Bugs for Modern JVM Languages
This paper introduces Defexts, a family of bug datasets extracted from real-world projects hosted on Github. Defexts’ goal is to help promote research in less commonly used JVM languages, such as Kotlin and Scala, through the distribution of new bug datasets focused in these JVM languages. At publication Defexts contained two datasets, Defexts-Kotlin and Defexts-Groovy, and now includes Defexts-Scala. We are currently working to improve the dataset to allow for easier access by end-users.
Conference: International Conference of Software Engineering (2019)
Paper Link: https://ieeexplore.ieee.org/document/8802677
Github Link: https://github.com/ProdigyXable/defexts
On the Effectiveness of Unified Debugging: An Extensive Study on 16 Program Repair Systems
This paper extends the idea of unified debugging, the idea of using program repair execution results to further improve fault localization and consequent repair attempts, to 15 other Java-based automatic repair tools. The paper contributes five new findings to the area of unified debugging, describes two new techniques, and releases the experimental raw data for interested parties to view.
Conference: International Conference of Automated Software Engineering (2020)
Paper Link: https://doi.org/10.1145/3324884.3416566
A Large-scale Study on API Misuses in the Wild
API misuses are prevalent and extremely harmful. Despite various techniques have been proposed for API-misuse detection, it is not even clear how different types of API misuses distribute and whether existing techniques have covered all major types of API misuses. Therefore, in this paper, we conduct the first large-scale empirical study on API misuses based on 528,546 historical bug-fixing commits from GitHub (from 2011 to 2018).
Conference: International Conference of Software Testing (2021)
Paper Link: https://doi.org/10.1109/ICST49551.2021.00034
How Does Regression Test Selection Affect Program Repair?
An Extensive Study on 2 Million Patches
In the past decade, Automated Program Repair (APR) has been extensively studied in academia and even drawn wide attention from industry. However, APR techniques can be extremely time consuming since (1) a large number of patches can be generated for a given bug, and (2) each patch needs to be executed on the original tests to ensure its correctness. In the literature, various techniques (e.g., based on learning, mining, and constraint solving) have been proposed/studied to reduce the number of patches. However, there is limited study on the impact of test selection for each patch and few APR systems actually apply test selection. Therefore, this paper conducts the first extensive study to investigate the impact of Regression Test Selection (RTS) on APR.
Paper Link: https://arxiv.org/abs/2105.07311
Evaluating and Improving Unified Debugging
This paper even further extends the idea of unified debugging, the idea of using program repair execution results to further improve fault localization and consequent repair attempts. The paper evaluates the technique on 76.3% more bugs, evaluates the technique’s effectiveness at the statement level, assesses its viability in learning-based techniques, and describes another new technique.
Journal: IEEE Transactions on Software Engineering
Paper Link: https://doi.org/10.1109/TSE.2021.3125203