学部编译器测试成果荣获软件工程顶会ASE 2019最佳论文
软件工程领域顶级会议34th IEEE/ACM International Conference on Automated Software Engineering(ASE 2019)于2019年11月11日至15日在美国加州圣地亚哥举办。我学部陈俊洁副教授与北京大学和纽卡斯尔大学合作的论文《History-Guided Configuration Diversification for Compiler Test-Program Generation》荣获ASE 2019的最佳论文奖(ACM SIGSOFT Distinguished Paper Award)。
ASE由IEEE和ACM联合主办,是软件工程领域国际知名的顶级会议之一。ASE针对大型软件系统的自动化分析、设计、实现、测试和维护等方面,给来自学术界和工业界的软件工程研究者和实践者提供了共同讨论的平台,分享相关领域最新研究成果、技术和工具等信息,是中国计算机学会推荐国际学术会议(软件工程、系统软件与程序设计语言)A类会议(CCF A)。本届会议共收到445篇投稿,最终接收86篇,接收率为19.3%,共有6篇论文获得最佳论文奖。
杰出论文证书
颁奖合影(左三为陈俊洁副教授)
该成果通过分析历史信息,获得具有揭错能力且多样化的测试配置,从而指导生成更加有效的编译器测试程序,来进行编译器测试。具体如下:
编译器是重要的基础软件系统之一,几乎所有软件系统都需要经过编译器的编译才能够正常运行。然而,与其他软件系统类似,编译器同样包含缺陷,编译器的缺陷会导致基于它所编译的软件系统产生不符合预期的行为、甚至灾难性的后果。因此,保证编译器的质量至关重要。
编译器测试是确保编译器质量的最广泛使用的手段,多年来受到了广泛的关注。在编译器测试领域,自动生成测试程序是很重要的一个方面。作为编译器测试的第一步,该步骤对随后的测试过程有着重大的影响。自动化测试程序生成的关键目标是生成有效的测试程序来揭示尽可能多的编译器缺陷。
该论文提出了一套全新的编译器测试程序生成方法HiCOND。HiCOND首先从历史数据中推断出测试配置每个选项的揭错范围,即在该范围内更有可能生成触发缺陷的测试程序,其次通过粒子群优化算法在该揭错范围内搜索一组多样的测试配置,保证生成测试程序的多样性(即触发不同类型的编译器缺陷)。最后,基于该组测试配置,HiCOND生成多样且具有较强揭错能力的测试程序来进行编译器测试。
HiCOND 测试程序生成框架
实验结果表明,在GCC和LLVM等主流编译器上,无论是从检测到的缺陷数量还是检测每个缺陷所花费的时间上,HiCOND的效果都显著优于现有的测试方法。此外,HiCOND已经成功在工业界进行了效果评估,在公司的内部编译器中检测到11个缺陷。
图文来源:赵英全
图文编辑:何仕玉珑
责任编辑:王旭