2023年6月21日发(作者:)
第33卷第3期2016年3月计算机应用与软件ComputerApplicationsandSoftwareVol.33No.3Mar.2016面向浏览器不兼容性的自动化测试的研究吴小东121裴颂文1,2上海200093)北京100190)(上海理工大学计算机科学与工程系(中国科学院计算技术研究所计算机体系结构国家重点实验室随着Web应用技术的快速发展及浏览器和平台数量的不断增长,跨浏览器的不兼容性问题显得越来越突出。尽管现有但是大多数的测试工具是手工测试,耗时过长,容易出错,而且国内对于跨浏览器不兼容性的自动的浏览器不兼容性测试工具较多,摘要化测试问题缺乏系统性研究。因此基于爬虫工具生成应用程序的导航模型,以及等价性检查技术和自动化测试系统(ATS)提出一种检测跨浏览器不兼容性问题的方法,并结合已有的测试工具进行比较。实验结果表明,该方法能够有效地自动识别和测试跨浏览器不兼容性问题。关键词中图分类号跨浏览器不兼容性TP311.13爬虫工具文献标识码导航模型A等价性检查自动化测试系统DOI:10.3969/j.issn.1000-386x.2016.03.004RESEARCHONAUTOMATEDTESTINGFORINCOMPATIBILITYOFCROSS-BROWSERWuXiaodong1122PeiSongwen1,(DepartmentofComputerScienceandEngineering,UniversityofShanghaiforScienceandTechnology,Shanghai200093,China)(StateKeyLaboratoryofComputerArchitecture,InstituteofComputingTechnology,ChineseAcademyofSciences,Beijing100190,China)AbstractWiththerapiddevelopmentofWebapplicationtechnologyandconstantgrowthinnumbersofnewbrowsersandplatforms,problembecomesmoreandmorenoticeable.Thoughcurrenttestingtoolsforbrowsers’cross-browserincompatibilities(CBI)incompatibilitiesarenotjustfew,howevermostofthemareinmanualoperationwithtimeconsumingandbeingerror-prone,andtherelacksthenationwidesystematicresearchesonautomatedtestingapproachforCBI.Therefore,basedonthenavigationmodelofgeneratingapplicationwithcrawlertool,theequivalencecheckingtechnologyandtheautomatictestsystem(ATS),weputforwardamethodofcross-browserincompatibilitydetection,andcompareitamongtheexistingtestingtools.Experimentalresultsshowthattheproposedmethodcaneffectivelyandautomaticallyidentifyandtestthecross-browserincompatibilityproblems.Keywords(ATS)CSS样式和DOM的动态面的HTML标签,还包括HTML结构、[2]显然不能满足测试的需要。Tamm提出了一个使用特征,DOM和视觉信息的方法,找出单一页面的布局问题。在截图过因此这种技术不适用于动态生程中它要求用户手动改变页面,成页面。等[3]Cross-browserincompatibility(CBI)CrawlertoolNavigationmodelEquivalencecheckingAutomatedtestingsystem0引言Web应用程序随着互联网技术在全球范围内的快速发展,的使用在我们的日常生活中变得越来越广泛。现代的Web应交互能力强及AJAX和Flash技术的发用程序内容比较丰富,展,在客户端为终端用户提供了更强大的功能和应用。而且近一些年来出现的浏览器及计算平台越来越多,各具特色。当Web应用程序在不同的浏览器和平台上运行时,Web应用程序在外观、结构和行为上将会产生一些差异。因此跨浏览器不兼容性越来越受到许多开发者及用户的普遍关注。早期的一些测试工具主要是在不同的客户端平台上为浏览Web应用程序提供仿真环境,比如MicrosoftExpressionweb和AdobeBrowserLab。虽然这些工具提供了一些仿真和可视化的基础设施,但是识别和比较行为差异仍然需要用户去做。Eaton等[1]在国外,一些CBI自动化测试工具应运而生。Choudhary提出了WEBDIFF工具,结合页面DOM结构和基于计算机视觉技术的视觉比较来检测CBI的结构差异,但它并没有提出[4]检测CBI行为差异的方法。Mesbah等提出了CROSST工具,使用自动化爬虫工具和导航模型比较来检测CBI的行为差异。RoyChoudhary等[5]提出了CROSSCHECK工具,它结合了WEB-[6]DIFF和CROSST的两种方法,利用基于错误检测的机器学习技术,更好地检测了CBI的行为和结构差异。在国内,随着我国收稿日期:2014-08-19。计算机体系结构国家重点实验室开放课题项目(CARCH201206);上海理工大学国家级项目培育基金项目(12XGQ07)。吴小东,硕士生,主研领域:软件测试,安全测试。裴颂文,博士。提出了识别Web页面有问题的HTML标签的方法并手动但是现代Web应用程序不仅局限于页分类正确和错误的页面,第3期吴小东等:面向浏览器不兼容性的自动化测试的研究15经济的飞速发展,软件行业对于软件自动化测试的需求与标准越来越高,市场上对出现的软件自动化测试工具日益增多。但是市场上对浏览器兼容性进行自动化测试的工具并不多见,已有的学术研究也没有对CBI检测问题进行过系统性的研究。因此本文基于现有的一些方法对CBI测试提出CBI的方法和框[7]并结合我们以前研究的自动化测试工具ATS,较好地完成架,跨浏览器不兼容性自动化测试的工作。技术提供了一个强大的工具,比如:测试生成、基于变量的测试、检测失效链接、非功能测试、检测未使用的代码等。Mesbah详细介绍了Crawingjax的算法和方法并讨论了Crawljax测试工具的具体实现。等ATS是一个与测试业务无关的平台,可以用于任何测试(如功能测试、性能测试等)及测试任何对象,也可以用于软件支持任意的测试项目组自动化黑盒测试。ATS支持测试脚本、合及时间调度、支持在不同的服务器上分布式地运行测试脚本和提供统一友好的用户界面。ATS服务器采用纯Java实现,具[11]有跨平台性特性。ATS是基于J2EE的Struts理论的MVC模服务器采用了Tomcat服务器技术,客户端采用JSP技式开发,[10]11.1背景Web应用程序和Web浏览器Web应用程序是一种通过互联网能够让Web浏览器和服务器通讯的计算机程序。终端用户可以通过Web浏览器与Web应用程序的客户端进行交互,比如看网页、输入数据和执行操作等。这些交互操作通过客户端向服务器发出请求,然后服务器响应这些请求来更新当前Web网页。Web网页由HTML或XML脚本语言编码而成。它还包括其他的相关资源,比如CSS样式表、FLASH等。最后客户端代码(JavaScript)、图像、Web网页被渲染后显示在浏览器上。Web浏览器是由大量组件构成的相当复杂的应用程序。Grosskurth等[8]提出了几个Web开源浏览器的相关架构。在浏览器所有的组件中,布局引擎是最重要的浏览器组件。它结合了页面的HTML的结构信息和CSS样式表的格式信息,负责渲染Web页面。浏览器在内存中保存页面的DOM表示以便让客户端脚本去动态修改Web页面。布局引擎是跨浏览器不兼容性问题的主要来源之一,因为同样的HTML/DOM和CSS在不同的浏览器中可能产生不同的页面。第二个组件是事件处理引擎或DOM引擎,它主要负责处理用户操作和执行基于浏览器DOM-API的变化。由于各个浏览器的事件处理算法的不同以API不同,及支持的DOM-它也是跨浏览器不兼容性问题的来源同样的用户操作可能引起不同的DOM变化。第三之一。因此,个引起跨浏览器不兼容性问题的来源是JavaScript引擎即执行浏览器JavaScript代码的运行时环境。因为不同的浏览器的JavaScript引擎存在着微妙而明确的差异,会产生不同的行为差异。后台事务处理采用JavaBeans技术。ATS采术构建Web页面,用Web网页编写界面,用户在ATS界面上所有的操作请求发送给Web服务器来处理并采用Struts来构建Web网页及请求处[12]理器,通过Hibernate来进行数据库操作,从而加强ATS系统的健壮性、可维护性、易扩展性。2CBI的测试方法本文的研究方法包括三个步骤:(1)在不同的浏览器运行环境下通过Crawljax爬虫工具自动抓取或捕捉目标Web应用并生成导航模型。这些模型可能包括Web应用程序的一程序,系列的用户交互信息、下载信息、显示内容、窗口布局、链接切换发现它们等。(2)比较两个不同浏览器应用程序的生成模型,之间的差异。(3)生成CBI报告提交给Web应用开发者,让他们确定原因并解决这些问题。2.1导航模型导航模型(记为M)是由爬虫工具捕捉Web应用程序生成的,也称为有限状态机。它的状态和转换分别表示终端用户在Web浏览器上所观察到的页面和用户操作(例如点击控件)。每一个状态由可编程语言来表示,每一个转换由用户操作的名称来标记。对于每一个观察到的状态和相应的页面,导航模型页面的DOM表示、页面的每一个DOM元记录了页面的截图、素的可视化表示等。为了有效地比较多个导航模型,我们提出了从层次化角度来查看和分析这个导航模型。它的顶层是有限我们称它为状态图,它主要捕捉一系列页面操状态机的图表示,作痕迹比如交替用户操作序列及页面转换。它的每一个状态对应着终端用户在浏览器中所观察到的一个页面。每一条边对应由用户操作(例如点击)和转换引起的着两个状态之间的转换,元素标记。第二层是每个状态(页面)的完整可编程语言表示,我们称它为页面模型,它描述了每一个浏览器页面的详细信息。以下分别对状态图、页面模型进行了定义。定义1(状态图)状态图G是一个带有标记的有向图并F)表示:它由五元组G(V,E,O,L,包含一个特定的始点。V:顶点集合E:有向边集合O:特定始点L:字母标记F:标记函数G具有以下的具体特征:(1)每一个标记至多出现在所给定顶点的一个出边上,即尽管有同样的标记出现在几个边上,但没有一个顶在整个图中,1.2DOM,Crawljax和ATSDOM[9]即文档对象模型,是面向HTML和XML的应用程序接口(API)。该模型定义了HTML文件和XML文件在内存提供了对HTML和XML文件的访问、存取方法。中的文档结构,DOM将整个HTML页面文档或XML数据文档规划成由多个相互连接的节点级构成的文档,文档中的每个部分都可以看作是通过一个节点。这样一个节点的集合看作是一个DOM文档树,这个DOM文档树,开发者可以对文档的内容和结构拥有强大的控制力,同时使用DOMAPI可以在文档树里十分方便地遍历、添加、删除、修改和替换节点,由此生成丰富的应用形式。DOM与平台和语言是无关的,因而可以在各种平台和语言上实现。Crawljax爬虫工具是由Java语言编写而成的开放源代码软件,能够自动捕捉和抓取基于AJAX技术的Web应用程序。Crawljax通过一个动态爬行引擎驱动来探测任何基于AjaxWeb应用程序。它能够根据DOM状态和状态之间的转换来创建一张状态图。这张推论出的状态图为各种类型的测试分析和测试16计算机应用与软件procedureMatch(u1,u2)u1.visited←trueu2.visited←trueu1.match←u2u2.match←u1Foreache1∈Out(u1)doOut(u2))e2←LOOKUP(Label(e1),if(e2≠null)thenv1←Dest(e1)v2←Dest(e2)if((v1.visited=false)&(v2.visited=false))thene1.match←truee2.match←trueedgeCt+=2v2)Match(v1,elseif((v1.match=v2)&(v1.visited=true)&(v2.visited=true))thene1.match←truee2.match←trueedgeCt+=2mainglobaledgeCtedgeCt←0o1←StartVertex(G1)o2←StartVertex(G2)Match(o1,o2)if(edgeCt=|E1|+|E2|)thenreturn(true)comment:G1≡G2elsereturn(false)comment:G1≠G22016年点会有两个或多个同样标记的出边。(2)图G可以有多重边,e2∈E:s(e1)=s(e2)和即e1,d(e1)=d(e2)。(3)每一个节点可由根节点r到达,即图G由单一连结组件组成。(4)图可以是环状的。特定结点O通常表示始点或Web应用程序的页面。对于v),d(e)表示一个目的边e=(u,我们用s(e)表示一个源顶点u,顶点v;In(v)和Out(v)分别表示顶点V的一组入边和出边。定义2(页面模型)页面模型是一个带有根节点的有向D,R,T,F)表示:标记树。它由五元组T(Q,Q:顶点集合D:有向边集合R:根节点T:标记集合F:标记函数页面模型是构成Web页面的DOM树结构的抽象表示。此模型包括客户端状态的许多信息比如JavaScript变量值或CSSD和R在DOM树中有明显的含义。一个特的属性等。参数Q、定节点的标记就是DOM节点的HTML标签名。一组名-值对表示DOM节点的属性。我们使用单一标记对数据进行抽象的表示,以便将这个模型形式化并对其进行等价性验证。2.2等价性检查从导航模型的层次角度分析,我们将等价性检查分为行为等价性检查和页面等价性检查。它对不同浏览器的生成模型进行匹配比较找出行为差异。以下详细讨论了行为等价的概念及行为等价性检验算法。E1,o1,L,定义3(行为等价)给出两个状态图G1(V1,F1)和G2(V2,E2,o2,L,F2),若G1与G2行为等价,记为G1≡G2,当且仅当存在一个双射函数M:V1→V2以下都是正确的:(1)u,v∈V1,(u,v)∈E1(M(u),M(v))∈V2(2)e1(u1,v1)∈E1,e2(u2,v2)∈E2,M(u1)=u2&&M(v1)=v2F1(e1)=F2(e1)(3)M(o1)=o2算法1是匹配一对导航模型M1和M2的整个算法。函数StateGraph返回底层状态图,它的值作为输入值传递给函数TraceEquivCheck。如果状态图G1和G2不等价,则返回错误。函G2)从注释状态图中提取行为差异。数OutTraceDiff(G1,TraceEquivCheck(G1,G2)算法实现了两个状态图G1和G2作为一个同构检查的行为等价性检查。OUT(v)返回顶点V的一LABEL(e)返回边e的标签。函数Lookup(l,edgeSet)组出边,返回带有标签l的一个边,如果它不存在,则返回null。Dest(e)假定每个边的匹配字段初返回边e的目的顶点。在G1和G2中,每个顶点的访问字段初始化都是null。整个算法始化是false,是深度优先遍历和线性时间的一个简单变体。算法描述如下:M2)算法1ModelEquivCheck(M1,G1←StateGraph(M1)G2←StateGraph(M2)if(TraceEquivCheck(G1,G2)=false)thenOutTraceDiff(G1,G2)TraceEquivCheck(G1,G2)2.3CBI比较我们在算法2中给出了对跨浏览器不兼容性问题检测的整两个体方法。算法的输入值包括目标应用程序打开页面的url,Br2。算法的输出值是CBI的列表L。被测试的浏览器Br1、2.3.1抓取和捕捉模型这一阶段是在两个不同的浏览器Br1和Br2中。我们通过爬虫工具Crawljax抓取应用程序和记录终端用户所观察到的行M2,分别记为导航模型M1、它们由函数genCrawlModel(url,为,Br1,Br2)实现。Mesbah等[10]详细介绍了Crawingjax爬虫工具的具体功能实现。2.3.2模型比较这一阶段比较导航模型M1和M2并记录它们之间的差异。主要有以下的四种不同的CBI比较:行为CBI比较这一步用行为等价性检验比较导航模型M1和M2中的状态图G1和G2。我们在算法1中提到了行为等从而找出了两个状态图的节点和边之间一对一价性检验算法,M2)实现映射。在算法2第3行中函数traceEquivCheck(M1,T是来了这个功能。这个函数生成两个参数:T和PageMatchList。自G1或G2的边的列表,这个边不能与其他状态图的相应的边第3期吴小东等:面向浏览器不兼容性的自动化测试的研究111213endL←computeCBI(T,V,B,PageMatchList)returnL17PageMatchList是页面匹配对匹配,我们可以表示成行为差异。(S1S2它在下一步中将会用到。i,i)的列表,DOM比较12为了比较两个匹配页面Si和Si,该算法产生12了Si和Si中的相应的DOM节点匹配对的列表DomMatchListi,这是由函数matchDOMs()(算法2中第5行)实现的。我们可33.1CBI的实现和实验结果CBI的架构如图1所示,本文的CBI架构主要包括三个组成部分:模型3])。以使用WEBDIFF中提到的DOM匹配算法(见参考文献[p=0.7×c+0.2×d+0.1×ec=1-LevenshteinDistance(a.xpath,b.xpath)max(lenth(a.xpath),lenth(b.xpath))b.attributes)CountSimilar(a.attributes,d=count(a.attributes∪b.attributes)e=b.domdata)CountSimilar(a.domdata,count(a.domdata∪b.domdata)收集器、模型比较器和报告生成器。在该算法中需要计算两个DOM节点的匹配指数p。匹配指p值越大,则两个DOM元素表示数p是位于0和1之间的数字,相同性的可能性就越大。函数matchDOMs()就用这个匹配指数来计算DOM的匹配节点。我们可以用以下公式计算匹配指c表示XPath的距离,数。给出两个DOM节点分别记为a和b。d测量不同的属性,e测量DOM不同的动态特性。XPath是在DOM树中从root到DOM节点的一个特定的路径,Levensh-teinDistance是两个节点XPath之间的编辑距离。函数max(),length(),和count()分别返回列表中的两个数字的最大值,字符串的长度,元素的数量。属性attributes和domdata是(key,value)对映射,分别表示DOM节点属性和动态DOM特性。函value)映射对之间的元素数数countSimilar返回两个相等(key,量。使用上面的公式计算获得DOM节点匹配对,找出列表PageMatchList中的每一页面对(S1level的差异S2i,i)中的DOM-性Di。12对于每一对匹配的DOM节点(nj,nj),比较它们相应的页面元素。若两个节点不同,就把它们加入到图1CBI架构模型收集器接受一个Web应用程序,使用现有的网络爬虫(Crawljax)工具从多个浏览器提取其导航模型。模型比较器主要是执行各个不同的CBI的比较。报告生成器以HTML的格式让他们能够发现CBI并及时找出生成CBI报告给Web开发者,原因。3.2CBI的自动化测试结构CBI的体系结构主要由分布执行服务器、屏幕捕捉服务器和Web服务测试三部分组成,如图2所示。分布执行服务器是整个体系结构的核心部分,主要负责测试脚本执行和测试任务Web服务测试的分配。分布式执行引擎主要实现自动化测试、交流信息和屏幕捕捉信息的交互。屏幕捕捉服务器主要实现捕捉浏览器的接口和组件,然后将消息递交给分布执行服务器。这些信息储存到屏幕捕捉服务器中,并通过消息传递接口传送给分布式执行引擎,经过分析然后将测试内容递交给测试人员,从而了解到浏览器的不兼容性问题。视觉CBI比较我们使视觉差异的V列表中。对于比较两个页面的视觉差异,2用x图像距离来比较相应页面图像的直方图。在CROSS-CHECK[5]中有详细的介绍。在算法2中由函数diffVisual()实现的。结构CBI比较为了比较结构CBI(布局CBI),我们可以13]使用RoyChoudhary等人在参考文献[中提到的方法。他们定义了一个模型叫排列图记为A。主要执行两个步骤:(1)分A2;(2)别从两个不同的浏览器的页面布局中提取排列图A1,用等价性检验算法比较两个排列图找出它们之间的差异性。在算法2第8行中由函数diffLayout()实现的(详细算法请参阅文13]献[中的算法1和算法2)。算法2CBI整体算法Br2:Twobrowsers输入url:URLoftargetwebapplicationBr1,输出L:ListofCBI1begin2(M1,M2)←genCrawlModel(url,Br1,Br2)3(T,PageMatchList)←TraceEquivCheck(M1,M2)4foreach(S1S2i,i)∈PageMatchListdo5678910endDomMatchListi←matchDOMs(S1S2i,i)foreach(n1n2j,j)∈DomMatchListidoV←diffVisual(n1n2DomMatchListi)j,j,B←diffLayout(n1n2DomMatchListi)j,j,end//生成CBI报告列表//视觉CBI比较//结构CBI比较//比较状态图图2CBI自动化测试系统结构图3.3实验结果在实验中,本文选择了两个不同的浏览器:火狐浏览器(版//比较页面匹配对本24)和IE浏览器(版本8.0),它们都在MicrosoftWindow7环它们分别来境下运行。我们随机选取了五个不同的应用程序,自不同领域的类型网站,这样能够使测试数据更加合理。如表1所示,它包括名称、网址和类型。我们利用现有的WEBDIFF和CROSST测试方法分别对以下不同的应用程序测试。(下转第30页)30计算机应用与软件EquipmentAvailabilityUnderImperfectMaintenance[J].IEEETransactionsonreliability,2005,54(4):564-571.2016年[3]谭林,程志君,郭波.考虑不完全维修的可修串联系统可用度模型[J].国防科技大学学报,2009,31(6):100-105.[4]杨继坤,徐廷学,丛林虎,等.新型导弹武器系统可靠性波动分析与2014,12(1):55-62.优化方法研究[J].战术导弹技术,[5]董世良,刘海港,石健,等.容错计算机网络综合可用性建模与仿真2011,23(1):75-82.分析[J].系统仿真学报,[6]吴月明.可修复系统事后维修可靠性仿真[J].计算机仿真,2007,24(7):108-112.[7]YiYang,LichaoWang,RuiKang.Discretizationmodelofinstantaneousavailabilityforcontinuous-timesystems[J].JournalofComputers,2012,7(4):977-981.[8]张静,岳德权,王丽花.修理工休假的温贮备可修系统的可靠性分.中山大学学报:自然科学版,2011,50(5):28-33.析[J][9]HaihongZhu.Reliabilityandavailabilityanalysisforlargenetworkingsystem[C]//Proc.ofreliabilityandmaintainabilitysymposium,2012:1-6.[10]王思华,赵琼,马军党,等.接触网系统可靠性的马尔科夫建模分析[J].中国安全科学学报,2013,23(9):39-44.4结语跨浏览器不兼容性对于Web应用开发者来说是一个常见研究它们具有重要的现实意义。本文结合现有的一些的问题,技术提出了检测浏览器不兼容性问题的方法,并结合以前研究的自动化测试框架,设计出了浏览器不兼容性测试的结构。最达到了比较好的验证效果。后通过实验数据来验证了这一方法,在未来的工作中,我们将会进一步改进自动化设计系统(ATS)结构,提高工作效率,更好地满足开发者和客户的工作需要。今后也可以在不同的平台上(桌面平台、移动平台等),对跨平台的不兼容性进行研究。参考文献[1]EatonC,MemonAM.Anempiricalapproachtoevaluatingwebappli-cationcomplianceacrossdiverseclientplatformconfigurations[C]//InternationalJournalofWebEngineeringandTechnology,USA,2007:227-253.[2]TammM.Fightinglayoutbugs[EB/OL].http://code.google.com/p/fighting-layout-bugs/.[3]RoyChoudharyS,VerseeH,OrsoA.Webdiff:Automatedidentificationofcross-browserissuesinwebapplications[C]//Procofthe26th(上接第17页)表1名称openkerxuexilaqidianchinanewshupu测试对象网址http://www.openker.com/http://www.xuexila.com/http://www.qidian.com/http://www.chinanews.com/http://soccer.hupu.com/类型公司教育小说新闻体育IEEEInternationalConferenceonSoftwareMaintenance(ICSM’2010).Timisoara,Romania,2010:1-10.[4]MesbahA,PrasadMR.Automatedcross-browsercompatibilitytest[C]//Procofthe33rdInternationalConferenceonSoftwareEngineer-2011).NewYork,USA,2011:561-570.ing(ICSE’[5]RoyChoudharyS,PrasadMR,OrsoA.Crosscheck:Combiningcraw-linganddifferencingtobetterdetectcross-browserincompatibilitiesinC]//ProcoftheIEEEFifthInternationalConferencewebapplications[onSoftwareTesting(ICST’2012).Montreal,Canada,2012:171-180.[6]NataliiaSemenenk,MarlonDumas,TnisSaar.Browserbite:Accuratecross-browsertestingviamachinelearningoverimagefeatures[C]//Procofthe29thIEEEInternationalConferenceonSoftwareMainte-2013).SanFrancisco,USA,2013:528-531.nance(ICSM’[7]裴颂文,余强,吴百锋.一种新的基于J2EE技术的软件自动化测J].清华大学学报,2007(6):51-56.试系统的研究与实现[[8]GrosskurthA,GodfreyMW.Areferencearchitectureforwebbrowsers[C]//Procofthe21stIEEEInternationalConferenceonSoftwareMa-intenance(ICWE’2005).Waterloo,Canada,2005:661-664.[9]KeithJ,SambellsJ.DOMScripting:WebDesignwithJavascriptandtheDocumentObjectModel[J].FriendsofEd,2010.[10]MesbahA,BozdagW,vanDeursenA.Crawlingajaxbyinferringuserinterfacestatechanges[C]//Procofthe8thInternationalConferenceonWebEngineering(ICWE’2008).Vancouver,Canada,2008:122-134.[11]孙卫琴.精通Structs:基于MVC的JavaWeb设计与开发[M].北2004.京:电子工业出版社,1375[12]夏昕,.北京:电子工业出版曹晓钢,唐勇.深入浅出Hibernate[M]2005.社,[13]RoyChoudharyS,MukulRPrasad,AlessandroOrso.X-PERT:AccurateIdentificationofCross-BrowserIssuesinWebApplications[C]//Procofthe29thIEEEInternationalConferenceonSoftwareMaintenance(ICSM’2013).SanFrancisco,USA,2013:702-711.表2给出了三种测试方法的测试数据。这些测试数据由报并由我们人工统计得出列表2。第一列显示了告生成器生成,测试对象的名称,其他几列给出了浏览器不兼容性问题的个数,包括行为差异、视觉差异、结构差异和总数差异。由表2的实验结果比较表明,我们发现对于WEBDIFF和CROSST测试工具都视觉和结构差异;而CBI的测不能完全地测试应用程序的行为、试方法能够很好地自动测试和识别跨浏览器不兼容性的行为、视觉和结构差异,并且该方法还能节省大量的时间。例如表21个视觉差异和所示的hupu应用程序,它包括1个行为差异、16个结构差异,共18个差异,而WEBDIFF测试仅共有11个差CROSST测试仅共有1个差异。异,表2WEBDIFF、CROSST和CBI的测试结果WEBDIFF行视结名称CROSST行视结CBI行视结为觉构总为觉构总为觉构总差差差数差差差数差差差数异异异异异异1异异异33openkerxuexilaqidianchinanewshupu2310111618
2023年6月21日发(作者:)
第33卷第3期2016年3月计算机应用与软件ComputerApplicationsandSoftwareVol.33No.3Mar.2016面向浏览器不兼容性的自动化测试的研究吴小东121裴颂文1,2上海200093)北京100190)(上海理工大学计算机科学与工程系(中国科学院计算技术研究所计算机体系结构国家重点实验室随着Web应用技术的快速发展及浏览器和平台数量的不断增长,跨浏览器的不兼容性问题显得越来越突出。尽管现有但是大多数的测试工具是手工测试,耗时过长,容易出错,而且国内对于跨浏览器不兼容性的自动的浏览器不兼容性测试工具较多,摘要化测试问题缺乏系统性研究。因此基于爬虫工具生成应用程序的导航模型,以及等价性检查技术和自动化测试系统(ATS)提出一种检测跨浏览器不兼容性问题的方法,并结合已有的测试工具进行比较。实验结果表明,该方法能够有效地自动识别和测试跨浏览器不兼容性问题。关键词中图分类号跨浏览器不兼容性TP311.13爬虫工具文献标识码导航模型A等价性检查自动化测试系统DOI:10.3969/j.issn.1000-386x.2016.03.004RESEARCHONAUTOMATEDTESTINGFORINCOMPATIBILITYOFCROSS-BROWSERWuXiaodong1122PeiSongwen1,(DepartmentofComputerScienceandEngineering,UniversityofShanghaiforScienceandTechnology,Shanghai200093,China)(StateKeyLaboratoryofComputerArchitecture,InstituteofComputingTechnology,ChineseAcademyofSciences,Beijing100190,China)AbstractWiththerapiddevelopmentofWebapplicationtechnologyandconstantgrowthinnumbersofnewbrowsersandplatforms,problembecomesmoreandmorenoticeable.Thoughcurrenttestingtoolsforbrowsers’cross-browserincompatibilities(CBI)incompatibilitiesarenotjustfew,howevermostofthemareinmanualoperationwithtimeconsumingandbeingerror-prone,andtherelacksthenationwidesystematicresearchesonautomatedtestingapproachforCBI.Therefore,basedonthenavigationmodelofgeneratingapplicationwithcrawlertool,theequivalencecheckingtechnologyandtheautomatictestsystem(ATS),weputforwardamethodofcross-browserincompatibilitydetection,andcompareitamongtheexistingtestingtools.Experimentalresultsshowthattheproposedmethodcaneffectivelyandautomaticallyidentifyandtestthecross-browserincompatibilityproblems.Keywords(ATS)CSS样式和DOM的动态面的HTML标签,还包括HTML结构、[2]显然不能满足测试的需要。Tamm提出了一个使用特征,DOM和视觉信息的方法,找出单一页面的布局问题。在截图过因此这种技术不适用于动态生程中它要求用户手动改变页面,成页面。等[3]Cross-browserincompatibility(CBI)CrawlertoolNavigationmodelEquivalencecheckingAutomatedtestingsystem0引言Web应用程序随着互联网技术在全球范围内的快速发展,的使用在我们的日常生活中变得越来越广泛。现代的Web应交互能力强及AJAX和Flash技术的发用程序内容比较丰富,展,在客户端为终端用户提供了更强大的功能和应用。而且近一些年来出现的浏览器及计算平台越来越多,各具特色。当Web应用程序在不同的浏览器和平台上运行时,Web应用程序在外观、结构和行为上将会产生一些差异。因此跨浏览器不兼容性越来越受到许多开发者及用户的普遍关注。早期的一些测试工具主要是在不同的客户端平台上为浏览Web应用程序提供仿真环境,比如MicrosoftExpressionweb和AdobeBrowserLab。虽然这些工具提供了一些仿真和可视化的基础设施,但是识别和比较行为差异仍然需要用户去做。Eaton等[1]在国外,一些CBI自动化测试工具应运而生。Choudhary提出了WEBDIFF工具,结合页面DOM结构和基于计算机视觉技术的视觉比较来检测CBI的结构差异,但它并没有提出[4]检测CBI行为差异的方法。Mesbah等提出了CROSST工具,使用自动化爬虫工具和导航模型比较来检测CBI的行为差异。RoyChoudhary等[5]提出了CROSSCHECK工具,它结合了WEB-[6]DIFF和CROSST的两种方法,利用基于错误检测的机器学习技术,更好地检测了CBI的行为和结构差异。在国内,随着我国收稿日期:2014-08-19。计算机体系结构国家重点实验室开放课题项目(CARCH201206);上海理工大学国家级项目培育基金项目(12XGQ07)。吴小东,硕士生,主研领域:软件测试,安全测试。裴颂文,博士。提出了识别Web页面有问题的HTML标签的方法并手动但是现代Web应用程序不仅局限于页分类正确和错误的页面,第3期吴小东等:面向浏览器不兼容性的自动化测试的研究15经济的飞速发展,软件行业对于软件自动化测试的需求与标准越来越高,市场上对出现的软件自动化测试工具日益增多。但是市场上对浏览器兼容性进行自动化测试的工具并不多见,已有的学术研究也没有对CBI检测问题进行过系统性的研究。因此本文基于现有的一些方法对CBI测试提出CBI的方法和框[7]并结合我们以前研究的自动化测试工具ATS,较好地完成架,跨浏览器不兼容性自动化测试的工作。技术提供了一个强大的工具,比如:测试生成、基于变量的测试、检测失效链接、非功能测试、检测未使用的代码等。Mesbah详细介绍了Crawingjax的算法和方法并讨论了Crawljax测试工具的具体实现。等ATS是一个与测试业务无关的平台,可以用于任何测试(如功能测试、性能测试等)及测试任何对象,也可以用于软件支持任意的测试项目组自动化黑盒测试。ATS支持测试脚本、合及时间调度、支持在不同的服务器上分布式地运行测试脚本和提供统一友好的用户界面。ATS服务器采用纯Java实现,具[11]有跨平台性特性。ATS是基于J2EE的Struts理论的MVC模服务器采用了Tomcat服务器技术,客户端采用JSP技式开发,[10]11.1背景Web应用程序和Web浏览器Web应用程序是一种通过互联网能够让Web浏览器和服务器通讯的计算机程序。终端用户可以通过Web浏览器与Web应用程序的客户端进行交互,比如看网页、输入数据和执行操作等。这些交互操作通过客户端向服务器发出请求,然后服务器响应这些请求来更新当前Web网页。Web网页由HTML或XML脚本语言编码而成。它还包括其他的相关资源,比如CSS样式表、FLASH等。最后客户端代码(JavaScript)、图像、Web网页被渲染后显示在浏览器上。Web浏览器是由大量组件构成的相当复杂的应用程序。Grosskurth等[8]提出了几个Web开源浏览器的相关架构。在浏览器所有的组件中,布局引擎是最重要的浏览器组件。它结合了页面的HTML的结构信息和CSS样式表的格式信息,负责渲染Web页面。浏览器在内存中保存页面的DOM表示以便让客户端脚本去动态修改Web页面。布局引擎是跨浏览器不兼容性问题的主要来源之一,因为同样的HTML/DOM和CSS在不同的浏览器中可能产生不同的页面。第二个组件是事件处理引擎或DOM引擎,它主要负责处理用户操作和执行基于浏览器DOM-API的变化。由于各个浏览器的事件处理算法的不同以API不同,及支持的DOM-它也是跨浏览器不兼容性问题的来源同样的用户操作可能引起不同的DOM变化。第三之一。因此,个引起跨浏览器不兼容性问题的来源是JavaScript引擎即执行浏览器JavaScript代码的运行时环境。因为不同的浏览器的JavaScript引擎存在着微妙而明确的差异,会产生不同的行为差异。后台事务处理采用JavaBeans技术。ATS采术构建Web页面,用Web网页编写界面,用户在ATS界面上所有的操作请求发送给Web服务器来处理并采用Struts来构建Web网页及请求处[12]理器,通过Hibernate来进行数据库操作,从而加强ATS系统的健壮性、可维护性、易扩展性。2CBI的测试方法本文的研究方法包括三个步骤:(1)在不同的浏览器运行环境下通过Crawljax爬虫工具自动抓取或捕捉目标Web应用并生成导航模型。这些模型可能包括Web应用程序的一程序,系列的用户交互信息、下载信息、显示内容、窗口布局、链接切换发现它们等。(2)比较两个不同浏览器应用程序的生成模型,之间的差异。(3)生成CBI报告提交给Web应用开发者,让他们确定原因并解决这些问题。2.1导航模型导航模型(记为M)是由爬虫工具捕捉Web应用程序生成的,也称为有限状态机。它的状态和转换分别表示终端用户在Web浏览器上所观察到的页面和用户操作(例如点击控件)。每一个状态由可编程语言来表示,每一个转换由用户操作的名称来标记。对于每一个观察到的状态和相应的页面,导航模型页面的DOM表示、页面的每一个DOM元记录了页面的截图、素的可视化表示等。为了有效地比较多个导航模型,我们提出了从层次化角度来查看和分析这个导航模型。它的顶层是有限我们称它为状态图,它主要捕捉一系列页面操状态机的图表示,作痕迹比如交替用户操作序列及页面转换。它的每一个状态对应着终端用户在浏览器中所观察到的一个页面。每一条边对应由用户操作(例如点击)和转换引起的着两个状态之间的转换,元素标记。第二层是每个状态(页面)的完整可编程语言表示,我们称它为页面模型,它描述了每一个浏览器页面的详细信息。以下分别对状态图、页面模型进行了定义。定义1(状态图)状态图G是一个带有标记的有向图并F)表示:它由五元组G(V,E,O,L,包含一个特定的始点。V:顶点集合E:有向边集合O:特定始点L:字母标记F:标记函数G具有以下的具体特征:(1)每一个标记至多出现在所给定顶点的一个出边上,即尽管有同样的标记出现在几个边上,但没有一个顶在整个图中,1.2DOM,Crawljax和ATSDOM[9]即文档对象模型,是面向HTML和XML的应用程序接口(API)。该模型定义了HTML文件和XML文件在内存提供了对HTML和XML文件的访问、存取方法。中的文档结构,DOM将整个HTML页面文档或XML数据文档规划成由多个相互连接的节点级构成的文档,文档中的每个部分都可以看作是通过一个节点。这样一个节点的集合看作是一个DOM文档树,这个DOM文档树,开发者可以对文档的内容和结构拥有强大的控制力,同时使用DOMAPI可以在文档树里十分方便地遍历、添加、删除、修改和替换节点,由此生成丰富的应用形式。DOM与平台和语言是无关的,因而可以在各种平台和语言上实现。Crawljax爬虫工具是由Java语言编写而成的开放源代码软件,能够自动捕捉和抓取基于AJAX技术的Web应用程序。Crawljax通过一个动态爬行引擎驱动来探测任何基于AjaxWeb应用程序。它能够根据DOM状态和状态之间的转换来创建一张状态图。这张推论出的状态图为各种类型的测试分析和测试16计算机应用与软件procedureMatch(u1,u2)u1.visited←trueu2.visited←trueu1.match←u2u2.match←u1Foreache1∈Out(u1)doOut(u2))e2←LOOKUP(Label(e1),if(e2≠null)thenv1←Dest(e1)v2←Dest(e2)if((v1.visited=false)&(v2.visited=false))thene1.match←truee2.match←trueedgeCt+=2v2)Match(v1,elseif((v1.match=v2)&(v1.visited=true)&(v2.visited=true))thene1.match←truee2.match←trueedgeCt+=2mainglobaledgeCtedgeCt←0o1←StartVertex(G1)o2←StartVertex(G2)Match(o1,o2)if(edgeCt=|E1|+|E2|)thenreturn(true)comment:G1≡G2elsereturn(false)comment:G1≠G22016年点会有两个或多个同样标记的出边。(2)图G可以有多重边,e2∈E:s(e1)=s(e2)和即e1,d(e1)=d(e2)。(3)每一个节点可由根节点r到达,即图G由单一连结组件组成。(4)图可以是环状的。特定结点O通常表示始点或Web应用程序的页面。对于v),d(e)表示一个目的边e=(u,我们用s(e)表示一个源顶点u,顶点v;In(v)和Out(v)分别表示顶点V的一组入边和出边。定义2(页面模型)页面模型是一个带有根节点的有向D,R,T,F)表示:标记树。它由五元组T(Q,Q:顶点集合D:有向边集合R:根节点T:标记集合F:标记函数页面模型是构成Web页面的DOM树结构的抽象表示。此模型包括客户端状态的许多信息比如JavaScript变量值或CSSD和R在DOM树中有明显的含义。一个特的属性等。参数Q、定节点的标记就是DOM节点的HTML标签名。一组名-值对表示DOM节点的属性。我们使用单一标记对数据进行抽象的表示,以便将这个模型形式化并对其进行等价性验证。2.2等价性检查从导航模型的层次角度分析,我们将等价性检查分为行为等价性检查和页面等价性检查。它对不同浏览器的生成模型进行匹配比较找出行为差异。以下详细讨论了行为等价的概念及行为等价性检验算法。E1,o1,L,定义3(行为等价)给出两个状态图G1(V1,F1)和G2(V2,E2,o2,L,F2),若G1与G2行为等价,记为G1≡G2,当且仅当存在一个双射函数M:V1→V2以下都是正确的:(1)u,v∈V1,(u,v)∈E1(M(u),M(v))∈V2(2)e1(u1,v1)∈E1,e2(u2,v2)∈E2,M(u1)=u2&&M(v1)=v2F1(e1)=F2(e1)(3)M(o1)=o2算法1是匹配一对导航模型M1和M2的整个算法。函数StateGraph返回底层状态图,它的值作为输入值传递给函数TraceEquivCheck。如果状态图G1和G2不等价,则返回错误。函G2)从注释状态图中提取行为差异。数OutTraceDiff(G1,TraceEquivCheck(G1,G2)算法实现了两个状态图G1和G2作为一个同构检查的行为等价性检查。OUT(v)返回顶点V的一LABEL(e)返回边e的标签。函数Lookup(l,edgeSet)组出边,返回带有标签l的一个边,如果它不存在,则返回null。Dest(e)假定每个边的匹配字段初返回边e的目的顶点。在G1和G2中,每个顶点的访问字段初始化都是null。整个算法始化是false,是深度优先遍历和线性时间的一个简单变体。算法描述如下:M2)算法1ModelEquivCheck(M1,G1←StateGraph(M1)G2←StateGraph(M2)if(TraceEquivCheck(G1,G2)=false)thenOutTraceDiff(G1,G2)TraceEquivCheck(G1,G2)2.3CBI比较我们在算法2中给出了对跨浏览器不兼容性问题检测的整两个体方法。算法的输入值包括目标应用程序打开页面的url,Br2。算法的输出值是CBI的列表L。被测试的浏览器Br1、2.3.1抓取和捕捉模型这一阶段是在两个不同的浏览器Br1和Br2中。我们通过爬虫工具Crawljax抓取应用程序和记录终端用户所观察到的行M2,分别记为导航模型M1、它们由函数genCrawlModel(url,为,Br1,Br2)实现。Mesbah等[10]详细介绍了Crawingjax爬虫工具的具体功能实现。2.3.2模型比较这一阶段比较导航模型M1和M2并记录它们之间的差异。主要有以下的四种不同的CBI比较:行为CBI比较这一步用行为等价性检验比较导航模型M1和M2中的状态图G1和G2。我们在算法1中提到了行为等从而找出了两个状态图的节点和边之间一对一价性检验算法,M2)实现映射。在算法2第3行中函数traceEquivCheck(M1,T是来了这个功能。这个函数生成两个参数:T和PageMatchList。自G1或G2的边的列表,这个边不能与其他状态图的相应的边第3期吴小东等:面向浏览器不兼容性的自动化测试的研究111213endL←computeCBI(T,V,B,PageMatchList)returnL17PageMatchList是页面匹配对匹配,我们可以表示成行为差异。(S1S2它在下一步中将会用到。i,i)的列表,DOM比较12为了比较两个匹配页面Si和Si,该算法产生12了Si和Si中的相应的DOM节点匹配对的列表DomMatchListi,这是由函数matchDOMs()(算法2中第5行)实现的。我们可33.1CBI的实现和实验结果CBI的架构如图1所示,本文的CBI架构主要包括三个组成部分:模型3])。以使用WEBDIFF中提到的DOM匹配算法(见参考文献[p=0.7×c+0.2×d+0.1×ec=1-LevenshteinDistance(a.xpath,b.xpath)max(lenth(a.xpath),lenth(b.xpath))b.attributes)CountSimilar(a.attributes,d=count(a.attributes∪b.attributes)e=b.domdata)CountSimilar(a.domdata,count(a.domdata∪b.domdata)收集器、模型比较器和报告生成器。在该算法中需要计算两个DOM节点的匹配指数p。匹配指p值越大,则两个DOM元素表示数p是位于0和1之间的数字,相同性的可能性就越大。函数matchDOMs()就用这个匹配指数来计算DOM的匹配节点。我们可以用以下公式计算匹配指c表示XPath的距离,数。给出两个DOM节点分别记为a和b。d测量不同的属性,e测量DOM不同的动态特性。XPath是在DOM树中从root到DOM节点的一个特定的路径,Levensh-teinDistance是两个节点XPath之间的编辑距离。函数max(),length(),和count()分别返回列表中的两个数字的最大值,字符串的长度,元素的数量。属性attributes和domdata是(key,value)对映射,分别表示DOM节点属性和动态DOM特性。函value)映射对之间的元素数数countSimilar返回两个相等(key,量。使用上面的公式计算获得DOM节点匹配对,找出列表PageMatchList中的每一页面对(S1level的差异S2i,i)中的DOM-性Di。12对于每一对匹配的DOM节点(nj,nj),比较它们相应的页面元素。若两个节点不同,就把它们加入到图1CBI架构模型收集器接受一个Web应用程序,使用现有的网络爬虫(Crawljax)工具从多个浏览器提取其导航模型。模型比较器主要是执行各个不同的CBI的比较。报告生成器以HTML的格式让他们能够发现CBI并及时找出生成CBI报告给Web开发者,原因。3.2CBI的自动化测试结构CBI的体系结构主要由分布执行服务器、屏幕捕捉服务器和Web服务测试三部分组成,如图2所示。分布执行服务器是整个体系结构的核心部分,主要负责测试脚本执行和测试任务Web服务测试的分配。分布式执行引擎主要实现自动化测试、交流信息和屏幕捕捉信息的交互。屏幕捕捉服务器主要实现捕捉浏览器的接口和组件,然后将消息递交给分布执行服务器。这些信息储存到屏幕捕捉服务器中,并通过消息传递接口传送给分布式执行引擎,经过分析然后将测试内容递交给测试人员,从而了解到浏览器的不兼容性问题。视觉CBI比较我们使视觉差异的V列表中。对于比较两个页面的视觉差异,2用x图像距离来比较相应页面图像的直方图。在CROSS-CHECK[5]中有详细的介绍。在算法2中由函数diffVisual()实现的。结构CBI比较为了比较结构CBI(布局CBI),我们可以13]使用RoyChoudhary等人在参考文献[中提到的方法。他们定义了一个模型叫排列图记为A。主要执行两个步骤:(1)分A2;(2)别从两个不同的浏览器的页面布局中提取排列图A1,用等价性检验算法比较两个排列图找出它们之间的差异性。在算法2第8行中由函数diffLayout()实现的(详细算法请参阅文13]献[中的算法1和算法2)。算法2CBI整体算法Br2:Twobrowsers输入url:URLoftargetwebapplicationBr1,输出L:ListofCBI1begin2(M1,M2)←genCrawlModel(url,Br1,Br2)3(T,PageMatchList)←TraceEquivCheck(M1,M2)4foreach(S1S2i,i)∈PageMatchListdo5678910endDomMatchListi←matchDOMs(S1S2i,i)foreach(n1n2j,j)∈DomMatchListidoV←diffVisual(n1n2DomMatchListi)j,j,B←diffLayout(n1n2DomMatchListi)j,j,end//生成CBI报告列表//视觉CBI比较//结构CBI比较//比较状态图图2CBI自动化测试系统结构图3.3实验结果在实验中,本文选择了两个不同的浏览器:火狐浏览器(版//比较页面匹配对本24)和IE浏览器(版本8.0),它们都在MicrosoftWindow7环它们分别来境下运行。我们随机选取了五个不同的应用程序,自不同领域的类型网站,这样能够使测试数据更加合理。如表1所示,它包括名称、网址和类型。我们利用现有的WEBDIFF和CROSST测试方法分别对以下不同的应用程序测试。(下转第30页)30计算机应用与软件EquipmentAvailabilityUnderImperfectMaintenance[J].IEEETransactionsonreliability,2005,54(4):564-571.2016年[3]谭林,程志君,郭波.考虑不完全维修的可修串联系统可用度模型[J].国防科技大学学报,2009,31(6):100-105.[4]杨继坤,徐廷学,丛林虎,等.新型导弹武器系统可靠性波动分析与2014,12(1):55-62.优化方法研究[J].战术导弹技术,[5]董世良,刘海港,石健,等.容错计算机网络综合可用性建模与仿真2011,23(1):75-82.分析[J].系统仿真学报,[6]吴月明.可修复系统事后维修可靠性仿真[J].计算机仿真,2007,24(7):108-112.[7]YiYang,LichaoWang,RuiKang.Discretizationmodelofinstantaneousavailabilityforcontinuous-timesystems[J].JournalofComputers,2012,7(4):977-981.[8]张静,岳德权,王丽花.修理工休假的温贮备可修系统的可靠性分.中山大学学报:自然科学版,2011,50(5):28-33.析[J][9]HaihongZhu.Reliabilityandavailabilityanalysisforlargenetworkingsystem[C]//Proc.ofreliabilityandmaintainabilitysymposium,2012:1-6.[10]王思华,赵琼,马军党,等.接触网系统可靠性的马尔科夫建模分析[J].中国安全科学学报,2013,23(9):39-44.4结语跨浏览器不兼容性对于Web应用开发者来说是一个常见研究它们具有重要的现实意义。本文结合现有的一些的问题,技术提出了检测浏览器不兼容性问题的方法,并结合以前研究的自动化测试框架,设计出了浏览器不兼容性测试的结构。最达到了比较好的验证效果。后通过实验数据来验证了这一方法,在未来的工作中,我们将会进一步改进自动化设计系统(ATS)结构,提高工作效率,更好地满足开发者和客户的工作需要。今后也可以在不同的平台上(桌面平台、移动平台等),对跨平台的不兼容性进行研究。参考文献[1]EatonC,MemonAM.Anempiricalapproachtoevaluatingwebappli-cationcomplianceacrossdiverseclientplatformconfigurations[C]//InternationalJournalofWebEngineeringandTechnology,USA,2007:227-253.[2]TammM.Fightinglayoutbugs[EB/OL].http://code.google.com/p/fighting-layout-bugs/.[3]RoyChoudharyS,VerseeH,OrsoA.Webdiff:Automatedidentificationofcross-browserissuesinwebapplications[C]//Procofthe26th(上接第17页)表1名称openkerxuexilaqidianchinanewshupu测试对象网址http://www.openker.com/http://www.xuexila.com/http://www.qidian.com/http://www.chinanews.com/http://soccer.hupu.com/类型公司教育小说新闻体育IEEEInternationalConferenceonSoftwareMaintenance(ICSM’2010).Timisoara,Romania,2010:1-10.[4]MesbahA,PrasadMR.Automatedcross-browsercompatibilitytest[C]//Procofthe33rdInternationalConferenceonSoftwareEngineer-2011).NewYork,USA,2011:561-570.ing(ICSE’[5]RoyChoudharyS,PrasadMR,OrsoA.Crosscheck:Combiningcraw-linganddifferencingtobetterdetectcross-browserincompatibilitiesinC]//ProcoftheIEEEFifthInternationalConferencewebapplications[onSoftwareTesting(ICST’2012).Montreal,Canada,2012:171-180.[6]NataliiaSemenenk,MarlonDumas,TnisSaar.Browserbite:Accuratecross-browsertestingviamachinelearningoverimagefeatures[C]//Procofthe29thIEEEInternationalConferenceonSoftwareMainte-2013).SanFrancisco,USA,2013:528-531.nance(ICSM’[7]裴颂文,余强,吴百锋.一种新的基于J2EE技术的软件自动化测J].清华大学学报,2007(6):51-56.试系统的研究与实现[[8]GrosskurthA,GodfreyMW.Areferencearchitectureforwebbrowsers[C]//Procofthe21stIEEEInternationalConferenceonSoftwareMa-intenance(ICWE’2005).Waterloo,Canada,2005:661-664.[9]KeithJ,SambellsJ.DOMScripting:WebDesignwithJavascriptandtheDocumentObjectModel[J].FriendsofEd,2010.[10]MesbahA,BozdagW,vanDeursenA.Crawlingajaxbyinferringuserinterfacestatechanges[C]//Procofthe8thInternationalConferenceonWebEngineering(ICWE’2008).Vancouver,Canada,2008:122-134.[11]孙卫琴.精通Structs:基于MVC的JavaWeb设计与开发[M].北2004.京:电子工业出版社,1375[12]夏昕,.北京:电子工业出版曹晓钢,唐勇.深入浅出Hibernate[M]2005.社,[13]RoyChoudharyS,MukulRPrasad,AlessandroOrso.X-PERT:AccurateIdentificationofCross-BrowserIssuesinWebApplications[C]//Procofthe29thIEEEInternationalConferenceonSoftwareMaintenance(ICSM’2013).SanFrancisco,USA,2013:702-711.表2给出了三种测试方法的测试数据。这些测试数据由报并由我们人工统计得出列表2。第一列显示了告生成器生成,测试对象的名称,其他几列给出了浏览器不兼容性问题的个数,包括行为差异、视觉差异、结构差异和总数差异。由表2的实验结果比较表明,我们发现对于WEBDIFF和CROSST测试工具都视觉和结构差异;而CBI的测不能完全地测试应用程序的行为、试方法能够很好地自动测试和识别跨浏览器不兼容性的行为、视觉和结构差异,并且该方法还能节省大量的时间。例如表21个视觉差异和所示的hupu应用程序,它包括1个行为差异、16个结构差异,共18个差异,而WEBDIFF测试仅共有11个差CROSST测试仅共有1个差异。异,表2WEBDIFF、CROSST和CBI的测试结果WEBDIFF行视结名称CROSST行视结CBI行视结为觉构总为觉构总为觉构总差差差数差差差数差差差数异异异异异异1异异异33openkerxuexilaqidianchinanewshupu2310111618
发布评论