软件所在微信小程序缺陷理解与检测研究中取得进展

文章来源:软件工程技术研究开发中心  |  发布时间:2021-12-31  |  【打印】 【关闭

  

  近日,中国科学院软件研究所软件工程技术研究开发中心在微信小程序缺陷理解与检测研究方面取得进展。该研究从代码层次全面分析微信小程序缺陷的特性,帮助开发人员理解微信小程序缺陷产生的根本原因、后果及修复策略等,提出了面向微信小程序的缺陷检测方法及工具,将大副提高开发人员设计研发微信小程序的可靠性,对推动微信小程序缺陷检测与测试研究起到重要作用。

  微信小程序是一种不需要下载安装即可在微信平台上使用,具有原生App体验的应用程序。微信小程序框架如下图所示。微信小程序框架包括渲染层和逻辑层,其中渲染层负责UI的显示,逻辑层负责业务逻辑的处理。渲染层以微信自定义的WXSS和WXML构成,逻辑层基于JavaScript。渲染层和逻辑层运行在不同的线程上,通过一种异步的事件驱动的方式来进行通讯。基于微信小程序框架,开发者可以方便使用微信平台提供各类服务,构建面向用户的应用,如购物、游戏等。据统计,小程序每天被超过4亿用户广泛使用。因此,小程序的可靠性尤为关键。

  基于微信小程序框架开发的微信小程序,面临多种特有的程序缺陷,比如不同平台对于渲染层和逻辑层的解释引擎差异导致的兼容性缺陷、异步事件处理相关缺陷等。为了进一步理解微信小程序中的缺陷,团队从开源Github仓库、微信官方QA平台、上线的真实应用三种数据渠道收集到了大量微信小程序缺陷,开展实证研究,并发现多种缺陷模式。同时,团队基于相关缺陷模式,开发了基于静态分析的微信小程序缺陷检测工具WeDetector,并应用到真实微信小程序中,准确检测到若干缺陷,并得到开发人员的确认。

  相关成果以“Characterizing and Detecting Bugs in WeChat Mini-Programs”为题被软件工程领域顶级会议ICSE 2022收录。该论文第一作者为博士生汪涛,通讯作者为副研究员窦文生。该研究获中科院前沿科学重点研究计划项目、腾讯微信犀牛鸟专项研究计划支持。