您的位置:首页

详情

研发大数据支撑的软件分析测试新技术 提升复杂软件系统质量——上海交通大学副教授陈雨亭博士

2019-05-06

陈雨亭,博士,上海交通大学计算机科学与工程系副教授、博士生导师。在日本法政大学获得博士学位。主要研究方向是程序分析与安全测试、数据驱动软件开发、形式化方法等,近年来主持或参与国家自然科学基金、国家973计划、国家重点研发计划、国家863计划等科研项目多项。在重要的国际会议与期刊上(包括PLDI、FSE、ASE、TSE等)发表论文多篇。获得2018年度CCF NASAC-东软青年软件创新奖。

1 基于软件工程大数据的软件质量提升

当前软件领域的一个重要趋势是借助于软件工程大数据提升软件质量。软件工程大数据主要指软件开发、测试、维护过程中所产生的数据,当前主要存在开源软件及相关数据、编程现场大数据两种形态的软件工程大数据。

开源是目前流行的软件形态,它通过潜在的机制激发用户的反馈和志愿者的贡献,促进软件的更新和演化。开源软件相关的代码、测试数据、开发运维数据可以指引研究人员更好地分析、测试软件。陈雨亭博士将“开源生态下的软件可信保障”作为关键研究问题,以软件分析与测试为主要技术手段,研究开源软件的质量保障方法与技术,实现对该研究问题的突破。在此基础上,开发相应的软件分析与测试工具,选取典型的软件,通过开展相应的实例研究,实现对研究成果的持续完善与增强。

编程现场大数据主要指软件编程现场中产生的、与目标软件密切相关的软件开发、测试、运维数据。陈雨亭博士与团队在编程现场大数据基础上,研究面向快速迭代、持续集成的编程现场软件质量提升手段,以基于代码风格与编程规范的实时检测与智能改进为目标,以编程现场大数据为驱动,以代码风格与编程规范分析为核心,围绕软件源码、开发者展开研究,通过析取和分析源代码、软件系统运维、编程现场行为以及代码扫描数据,研究了代码风格与编程规范的学习表示、代码坏味道与反模式的识别分析以及开发者编程习惯量化评估等。

2 针对复杂系统软件的分析测试技术

近几年,陈雨亭博士通过参与国家重点基础研究发展计划(973计划)项目课题“基于开源生态的网构化软件全生命周期的可信评估与保证方法”、国家重点研发计划课题“基于代码风格与编程规范的代码现场检测与智能改进技术”对软件测试与程序分析等领域开展深入研究并取得重要成果。

在针对复杂系统软件的测试技术方面,提出Java虚拟机自动测试技术。提出综合代码混淆、字节码随机变种、差别测试等技术的JVM测试方案,支持自动生成字节码及发现JVM中缺陷。测试结果触发了虚拟机标准中不一致,亦触发了HotSpot虚拟机及IBM软件开发包(SDK)中数十个软件缺陷。特别是发现安全漏洞,严重性评分高达9.8/10分,为IBM SDK近年来严重程度评分较高的安全漏洞;安全漏洞影响了100+个软件产品版本的安全性。

提出基于采样算法的复杂测试数据生成技术。该技术成功应用于测试证书自动生成及SSL/TLS实现等系统软件的测试中,测试结果引发对安全协议标准RFC5280修订的提案,并引发了ARM嵌入式TLS实现的升级。

       在提升程序分析精度与效率的解决方案方面,研究了程序分析技术,提出提升分析精度与效率的关键解决方案,包括高并行、流敏感的指针分析技术,结合机器学习和路径分析的潜在锁检测技术,基于规约与程序同构的程序审阅技术等。