明明在电脑屏幕上显示得整整齐齐,但是打印出来却成了乱码?在线交易正在进行中,浏览器却突然停止响应?线上支付或转账时,因用户名截取错位导致认证失败,甚至银行转账数额错误?……在享受着网络为工作、学习和生活带来的轻松和便捷时,我们都或多或少地遇到过这类困扰。您是否知道,之所以会出现这些问题,是因为浏览器引擎出现了BUG(缺陷)。
浏览器引擎可以说是浏览器的“最强大脑”,它是正确理解和执行用户操作的关键。如果“大脑”隐藏着一些未被发现的缺陷或者问题,必然会引起部分操作出现异常。现在为了适应新的应用需求,浏览器都在不断演进,假若在演进过程中引擎不符合已有的国际标准和规范,就容易造成缺陷,甚至引发严重的BUG。在浏览器引擎发布之前,发现大量的缺陷并加以修复,就显得极其迫切和重要。
日前我校信息学院物联网研究团队汤战勇教授课题组联合英国利兹大学、南方科技大学、蚂蚁集团以及阿里巴巴达摩院的AI专家在软件测试领域取得重要进展,团队研发出具有自主知识产权的软件测试系统COMFORT,在谷歌、微软、苹果、火狐等主流浏览器引擎总共发现129个全新软件缺陷(BUG)。
目前业界公认模糊测试是发现浏览器引擎BUG最有效的方法之一,但是如何生成较好的测试用例,并利用测试用例发现浏览器引擎BUG,却一直困扰着软件测试人员。我校联合各专家利用人工智能自动生成测试用例方法,结合标准文档,生成导向性更强的测试用例,并结合差分测试构建了智能测试系统COMFORT。据汤战勇教授介绍,团队利用该系统对10种主流JS浏览器引擎进行了测试,共发现并向各厂商提交了158个缺陷报告,其中被官方确认了129个BUG,团队还辅助厂商修复了115个BUG。另外,该系统还为官方的标准化一致性测试套件贡献了21个测试用例,得到了开源社区开发人员的一致好评。
在刚刚举行的计算机程序设计语言领域的旗舰会议ACM PLDI 2021上,物联网研究团队发表了他们的研究成果论文Automated Conformance Testing for JavaScript Engines via Deep Compiler Fuzzing(论文第一作者为西北大学信息学院青年教师叶贵鑫博士)。PLDI会议审稿人一致认定该方法“新颖”“创新”。实验结果表明,与已有的自动测试方法比较,COMFORT生成测试用例的语法正确率提高30%以上;在相同的时间内,COMFORT能至少发现2倍以上的BUG。
ACM PLDI (ACM SIGPLAN conference on Programming Language Design and Implementation)会议创办于1979年,是计算机程序设计语言领域的旗舰会议,中国计算机学会(CCF)推荐A类学术会议。根据CSRANKING站点的统计数据显示,最近20年间(2000-2020),平均每年大陆学者发表论文人数不到1人,而西部高校作为第一作者单位在该会议上发表论文则属首次。(文/熊晓芬)