一句话:研究用学习技术自动构建测试预言,以识别不会导致程序崩溃的语义缺陷,并探索融入人类知识的方法。
语义缺陷指程序对某些输入产生错误输出、偏离预期行为,但与崩溃或挂起不同,它通常不会在执行过程中显现失败,因此必须借助对预期程序行为的了解才能发现,而完全依赖人工识别对大多数软件并不现实。测试预言(test oracle)是区分程序正确与错误行为的任何过程。本博士论文聚焦于开发学习技术,为含有语义缺陷的程序生成自动化测试预言,并关注如何将人类知识有效地融入这些学习技术之中。作者期望,自动测试预言能让语义缺陷检测更为高效,同时为自动程序修复工具提供引导,使其针对语义缺陷生成更准确的修复。摘要未给出具体实验评估细节。
Can a machine find and fix a Semantic Bug? A Semantic Bug is a deviation from the expected program behaviour that causes to produce incorrect outputs for certain inputs. To identify this category of bugs, the knowledge on the expected program behaviour is essential. The reason is that a program with a semantic bug does not fail (i.e., crash or hang) in the middle of the execution in most scenarios. Thus, only a human (a user or a developer) knowing the correct program behaviour can detect this kind of bug by observing the output. However, identifying bugs solely through human effort is not practical for all software. A Test Oracle is any procedure used to differentiate the correct and incorrect behaviours of a program. This dissertation mainly focuses on developing learning techniques to produce Automated Test Oracles for programs with semantic bugs. Also, discovering methods to incorporate human knowledge effectively for the learning techniques is another concern. The automated test oracles could make semantic bug detection more efficient. Also, such test oracles could guide Automated Program Repair tools to generate more accurate fixes for semantic bugs.
DOI 原文 ·
@inproceedings{paperbot6603,
title = {Training Automated Test Oracles to Identify Semantic Bugs},
author = {Charaka Geethal},
booktitle = {ASE},
year = {2021},
doi = {10.1109/ase51524.2021.9678886}
}