@techreport {al-bataineh2022:extending:arxiv,
	title = {Towards Extending the Range of Bugs That Automated Program Repair Can Handle},
	number = {arXiv:2211.03911},
	year = {2022},
	month = {11/2022},
	pages = {1-12},
	publisher = {arXiv},
	abstract = {Modern automated program repair (APR) is well-tuned to finding and repairing bugs that introduce observable erroneous behavior to a program. However, a significant class of bugs does not lead to such observable behavior (e.g., liveness/termination bugs, non-functional bugs, and information flow bugs). Such bugs can generally not be handled with current APR approaches, so, as a community, we need to develop complementary techniques.To stimulate the systematic study of alternative APR approaches and hybrid APR combinations, we devise a novel bug classification system that enables methodical analysis of their bug detection power and bug repair capabilities. To demonstrate the benefits, we analyze the repair of termination bugs in sequential and concurrent programs. The study shows that integrating dynamic APR with formal analysis techniques, such as termination provers and software model checkers, reduces complexity and improves the overall reliability of these repairs.},
	keywords = {automated program repair, bug classification, hybrid techniques, non-observable and liveness bugs},
	doi = {10.48550/arXiv.2211.03911},
	url = {https://arxiv.org/abs/2211.03911},
	author = {Omar I. {Al-Bataineh} and Moonen, Leon}
}
@inproceedings {al-bataineh2022:extending,
	title = {Towards Extending the Range of Bugs That Automated Program Repair Can Handle},
	journal = {IEEE International Conference on Software Quality, Reliability and Security (QRS)},
	year = {2022},
	note = {Published in informal proceedings during\&nbsp;the conference, not yet online in IEEExplore.},
	month = {12/2022},
	pages = {1-12},
	publisher = {IEEE},
	abstract = {Modern automated program repair (APR) is well-tuned to finding and repairing bugs that introduce observable erroneous behavior to a program. However, a significant class of bugs does not lead to such observable behavior (e.g., liveness/termination bugs, non-functional bugs, and information flow bugs). Such bugs can generally not be handled with current APR approaches, so, as a community, we need to develop complementary techniques.To stimulate the systematic study of alternative APR approaches and hybrid APR combinations, we devise a novel bug classification system that enables methodical analysis of their bug detection power and bug repair capabilities. To demonstrate the benefits, we analyze the repair of termination bugs in sequential and concurrent programs. The study shows that integrating dynamic APR with formal analysis techniques, such as termination provers and software model checkers, reduces complexity and improves the overall reliability of these repairs.},
	keywords = {automated program repair, bug classification, hybrid techniques, non-observable and liveness bugs},
	url = {https://qrs22.techconf.org/},
	author = {Omar I. {Al-Bataineh} and Moonen, Leon}
}
@inproceedings {bataineh:2021:integrate,
	title = {Towards More Reliable Automated Program Repair by Integrating Static Analysis Techniques},
	journal = {21st IEEE International Conference on Software Quality, Reliability, and Security},
	year = {2021},
	month = {12/2021},
	publisher = { IEEE},
	abstract = {A long-standing open challenge for automated program repair is the overfitting problem, which is caused by having insufficient or incomplete specifications to validate whether a generated patch is correct or not. Most available repair systems rely on weak specifications (i.e., specifications that are synthesized from test cases) which limits the quality of generated repairs. To strengthen specifications and improve the quality of repairs, we propose to closer integrate static bug detection techniques with automated program repair. The integration combines automated program repair with static analysis techniques in such a way that bug detection patterns can be synthesized into specifications that the repair system can use. We explore the feasibility of such integration using two types of bugs: arithmetic bugs, such as integer overflow, and logical bugs, such as termination bugs. As part of our analysis, we make several observations that help to improve patch generation for these classes of bugs. Moreover, these observations assist with narrowing down the candidate patch search space, and inferring an effective search order.},
	keywords = {automated program repair, bug detection, conditional mutation, integer overflow, non-termination, static analysis},
	author = {Omar I. {Al-Bataineh} and Grishina, Anastasiia and Moonen, Leon}
}
@techreport {bataineh:2021:integrate:arxiv,
	title = {Towards More Reliable Automated Program Repair by Integrating Static Analysis Techniques},
	year = {2021},
	month = {11/2021},
	pages = {1-10},
	publisher = {arXiv},
	abstract = {A long-standing open challenge for automated program repair is the overfitting problem, which is caused by having insufficient or incomplete specifications to validate whether a generated patch is correct or not. Most available repair systems rely on weak specifications (i.e., specifications that are synthesized from test cases) which limits the quality of generated repairs. To strengthen specifications and improve the quality of repairs, we propose to closer integrate static bug detection techniques with automated program repair. The integration combines automated program repair with static analysis techniques in such a way that bug detection patterns can be synthesized into specifications that the repair system can use. We explore the feasibility of such integration using two types of bugs: arithmetic bugs, such as integer overflow, and logical bugs, such as termination bugs. As part of our analysis, we make several observations that help to improve patch generation for these classes of bugs. Moreover, these observations assist with narrowing down the candidate patch search space, and inferring an effective search order.},
	keywords = {automated program repair, bug detection, conditional mutation, integer overflow, non-termination, static analysis},
	doi = {arXiv:2111.05713},
	url = {https://arxiv.org/abs/2111.05713},
	author = {Omar I. {Al-Bataineh} and Grishina, Anastasiia and Moonen, Leon}
}
