2023年6月21日发(作者:)

Journal of Computer Applications ISSN 1oo1.9081 2017..04..10 计算机应用,2017,37(4):1143—1148,1173 文章编号:1001-9081(2017)04.1143.06 CODEN JYIIDU http://www.joea.ca DOI:10.11772/j.issn.1001・9081.2017.04.1143 针对JavaScript浏览器兼容性的变异测试方法 程勇’,秦丹,杨光 (北京化工大学信息科学与技术学院,北京100029) ( 通信作者电子邮箱chengyong@mail.butt.edu.an) 摘要:针对Java.Scirpt浏览器兼容性问题缺乏有效的测试方法的问题,基于变异测试技术,对web应用程序中 的Java.Script语言在主流浏览器中的兼容性进行了分析,设计了18个针对浏览器兼容性错误的变异算子并开发了自 动化的测试工具CompatibilityMutator。该程序使用抽象语法树(AST)分析JavaSeript语法,使用SeleniumWebDriver自 动调用多个浏览器核心并行执行变异测试。通过对7个广泛使用的JavaScript框架的实验,验证了此方法对每一个框 架都能够生成一定数量的变异体,其中对jQuery和YUI框架的变异测试的变异得分分别为43.06%和7.69%,表明了 所设计的变异算子能够触发浏览器兼容性方面的错误,并且能够评估测试用例集的完备性。 关键词:变异测试;Java.Script;兼容性;变异算子;测试工具 中图分类号:TP311.56 文献标志码:A Mutation test method for browser compatibility of JavaScript CHENG Yong’,QIN Dan,YANG Guang (College ofInformation Science and Technology,Beijing University ofChemical Technology,Beijing 100029,China) Abstract:Since the research on testing technology for JavaScript browser compatibility problems is insufficient,based on mutation testing method and he atnalysis on the compatibility of JavaScript in Web applications in major browsers,eighteen mutation operators was designed,and an automated testing tool named Compatibility Mutator Was implemented.Compatibiliy tMutator nalayze JavaScript syntax with Abstract Syntx Traee(AST),calls vairous browsers wih Seltenium WebDriver to Fun mut ̄ion testing automatically and concu ̄enfly.The experiments on 7 widely-used Java,Script frameworks showed that the proposed mutation operators could generate a certain amount of mutants,the mutation SCOI ̄S got from mutation testing on jQuery and YU1 were 43.06%and 7.69%respectively.Experimentla results prove hatt the proposed operators Can trigger the compatibility issues effectively,and evaluate the completeness of test suite effectively in finding the browser compatibility issues. Key words:mutation testing;Java.Script;compatibility;mutation operator;testing tol 0 引言 当前市场上,无论是桌面设备还是移动设备上都存在多 款浏览器,比较主流的如IE、Edge、Chrome、Firefox、Safari、 Opera等。这些浏览器对W3C标准的实现存在细微的差异, 这造成了广受诟病的浏览器兼容性问题。这些浏览器在渲染 现行为,这三方面都可能存在兼容性问题。在本文中,主要考 虑Java.Script脚本在不同浏览器行为方面的差异。Java.Script 是一种动态类型、基于原型的语言,它由JavaScript引擎实时 解释并执行。JavaScript引擎是浏览器的组成部分,每个浏览 器都有自己实现的JavaScript引擎,因此相同的JavaScript代 码就可能在不同浏览器得到不同的解释。为了消除这种“行 和处理相同的页面时,展现的行为存在差异。这些差异有可 能很小,甚至不会被注意到;也可能很大,甚至造成在某个浏 览器下正常的页面在其他浏览器下无法正常解析。兼容性问 为差异”,就要求Web开发者开发大量的测试用例来发现这 种兼容性错误。以往的软件测试方法针对比较传统的语言如 C++…、c#[引、Java[ 、SQL[ 等,开发了比较多的测试方法 题在所有浏览器上都存在,尤以IE为甚。这些冗杂的兼容性 问题给前端开发人员带来了相当大的困扰,降低了开发效率, 增加了测试的成本。对于这些问题,通常只有基于经验进行 和自动化工具,而Web编程领域的测试技术一直较为滞后。 考虑到当前现状,本文主要将变异测试应用到Web兼容性测 试中,通过变异的方法在程序中植入兼容性错误并开发相关 工具来评价测试用例集在发现兼容性错误方面的能力。 变异测试是一种基于错误的用来评估和提高测试用例集 规避,现有的测试方法基本也主要依靠手工操作。如常用的 reb兼容性测试工具IE Tester和Muhibrowser,都是简单地执 行网页而后依靠人工从外观判断网页的运行效果,测试效率 低且效果差。 质量的技术。“变异”指在符合语法的前提下人为向被测程 序中植入故障的过程,植入故障的规则称之为变异算子。符 合某一变异算子变异修改规则的目标代码语句,称为该变异 通常,Web前端主要由HTML来控制内容、层叠样式表 (Cascading Style Sheets,css)控制样式并使用JavaScript来展 算子的变异点或称为故障植入点。变异后的程序称为变异 收稿日期:2016-08-17;修回日期:2016.09—23。 基金项目:国家自然科学基金资助项目(61672085)。 作者简介:程勇(1976一),男,湖南华容人,讲师,博士,CCF会员,主要研究方向:大规模机器学习、数据挖掘;秦丹(1991一),女,山东l临 沂人,硕士,主要研究方向:软件测试;杨光(1984一),男,广西北海人,硕士,主要研究方向:人工智能、自然语言理解。 

2023年6月21日发(作者:)

Journal of Computer Applications ISSN 1oo1.9081 2017..04..10 计算机应用,2017,37(4):1143—1148,1173 文章编号:1001-9081(2017)04.1143.06 CODEN JYIIDU http://www.joea.ca DOI:10.11772/j.issn.1001・9081.2017.04.1143 针对JavaScript浏览器兼容性的变异测试方法 程勇’,秦丹,杨光 (北京化工大学信息科学与技术学院,北京100029) ( 通信作者电子邮箱chengyong@mail.butt.edu.an) 摘要:针对Java.Scirpt浏览器兼容性问题缺乏有效的测试方法的问题,基于变异测试技术,对web应用程序中 的Java.Script语言在主流浏览器中的兼容性进行了分析,设计了18个针对浏览器兼容性错误的变异算子并开发了自 动化的测试工具CompatibilityMutator。该程序使用抽象语法树(AST)分析JavaSeript语法,使用SeleniumWebDriver自 动调用多个浏览器核心并行执行变异测试。通过对7个广泛使用的JavaScript框架的实验,验证了此方法对每一个框 架都能够生成一定数量的变异体,其中对jQuery和YUI框架的变异测试的变异得分分别为43.06%和7.69%,表明了 所设计的变异算子能够触发浏览器兼容性方面的错误,并且能够评估测试用例集的完备性。 关键词:变异测试;Java.Script;兼容性;变异算子;测试工具 中图分类号:TP311.56 文献标志码:A Mutation test method for browser compatibility of JavaScript CHENG Yong’,QIN Dan,YANG Guang (College ofInformation Science and Technology,Beijing University ofChemical Technology,Beijing 100029,China) Abstract:Since the research on testing technology for JavaScript browser compatibility problems is insufficient,based on mutation testing method and he atnalysis on the compatibility of JavaScript in Web applications in major browsers,eighteen mutation operators was designed,and an automated testing tool named Compatibility Mutator Was implemented.Compatibiliy tMutator nalayze JavaScript syntax with Abstract Syntx Traee(AST),calls vairous browsers wih Seltenium WebDriver to Fun mut ̄ion testing automatically and concu ̄enfly.The experiments on 7 widely-used Java,Script frameworks showed that the proposed mutation operators could generate a certain amount of mutants,the mutation SCOI ̄S got from mutation testing on jQuery and YU1 were 43.06%and 7.69%respectively.Experimentla results prove hatt the proposed operators Can trigger the compatibility issues effectively,and evaluate the completeness of test suite effectively in finding the browser compatibility issues. Key words:mutation testing;Java.Script;compatibility;mutation operator;testing tol 0 引言 当前市场上,无论是桌面设备还是移动设备上都存在多 款浏览器,比较主流的如IE、Edge、Chrome、Firefox、Safari、 Opera等。这些浏览器对W3C标准的实现存在细微的差异, 这造成了广受诟病的浏览器兼容性问题。这些浏览器在渲染 现行为,这三方面都可能存在兼容性问题。在本文中,主要考 虑Java.Script脚本在不同浏览器行为方面的差异。Java.Script 是一种动态类型、基于原型的语言,它由JavaScript引擎实时 解释并执行。JavaScript引擎是浏览器的组成部分,每个浏览 器都有自己实现的JavaScript引擎,因此相同的JavaScript代 码就可能在不同浏览器得到不同的解释。为了消除这种“行 和处理相同的页面时,展现的行为存在差异。这些差异有可 能很小,甚至不会被注意到;也可能很大,甚至造成在某个浏 览器下正常的页面在其他浏览器下无法正常解析。兼容性问 为差异”,就要求Web开发者开发大量的测试用例来发现这 种兼容性错误。以往的软件测试方法针对比较传统的语言如 C++…、c#[引、Java[ 、SQL[ 等,开发了比较多的测试方法 题在所有浏览器上都存在,尤以IE为甚。这些冗杂的兼容性 问题给前端开发人员带来了相当大的困扰,降低了开发效率, 增加了测试的成本。对于这些问题,通常只有基于经验进行 和自动化工具,而Web编程领域的测试技术一直较为滞后。 考虑到当前现状,本文主要将变异测试应用到Web兼容性测 试中,通过变异的方法在程序中植入兼容性错误并开发相关 工具来评价测试用例集在发现兼容性错误方面的能力。 变异测试是一种基于错误的用来评估和提高测试用例集 规避,现有的测试方法基本也主要依靠手工操作。如常用的 reb兼容性测试工具IE Tester和Muhibrowser,都是简单地执 行网页而后依靠人工从外观判断网页的运行效果,测试效率 低且效果差。 质量的技术。“变异”指在符合语法的前提下人为向被测程 序中植入故障的过程,植入故障的规则称之为变异算子。符 合某一变异算子变异修改规则的目标代码语句,称为该变异 通常,Web前端主要由HTML来控制内容、层叠样式表 (Cascading Style Sheets,css)控制样式并使用JavaScript来展 算子的变异点或称为故障植入点。变异后的程序称为变异 收稿日期:2016-08-17;修回日期:2016.09—23。 基金项目:国家自然科学基金资助项目(61672085)。 作者简介:程勇(1976一),男,湖南华容人,讲师,博士,CCF会员,主要研究方向:大规模机器学习、数据挖掘;秦丹(1991一),女,山东l临 沂人,硕士,主要研究方向:软件测试;杨光(1984一),男,广西北海人,硕士,主要研究方向:人工智能、自然语言理解。