浏览器兼容性的检测方法及装置制造方法

文档序号:6492434阅读:225来源:国知局
浏览器兼容性的检测方法及装置制造方法【专利摘要】本申请公开了一种浏览器兼容性的检测方法,包括以下步骤:S1.对被测对象进行静态兼容性扫描,输出需要进行检测的功能模块集合;S2.针对所述功能模块集合中的各功能模块,生成该功能模块分别在多种浏览器下运行的状态机,得到该功能模块分别对应于各浏览器的多个状态转化函数;S3.对所述多个状态函数进行比较以确定所述功能模块在所述多个浏览器上的功能性差异。本申请相应还公开了一种浏览器兼容性的检测装置。本申请实施例提供的浏览器兼容性检测方法及装置,能够实现功能兼容性问题的全自动智能检测,不仅提高了检测效率,还能最大限度地避免漏报从而提高了检测质量。【专利说明】浏览器兼容性的检测方法及装置【
技术领域
】[0001]本申请涉及网络【
技术领域
】,尤其涉及一种用于对网页或程序在多浏览器间运行所产生的兼容性问题进行检测的方法及装置。【
背景技术
】[0002]随着网络用户的日益增多,为满足不同用户需求而设计的网页浏览器种类也越来越多,常见的浏览器包括IE(InternetExplorer)、Firefox(火狐)、Chrome(谷歌浏览器)等等,这些浏览器的内核各不相同,因而对于各种网页以及webapp(基于web的应用程序)的支持性也不尽相同,由此便带来浏览器的兼容性问题。为此,在网站(或网页)或是webapp发布之前,通常都需要针对该网站或webapp在各种浏览器上运行的兼容性进行测试,以便对其加以调整从而保证能够顺利运行在不同的浏览器上。上述浏览器的兼容性问题一般包括样式的兼容性问题和功能的兼容性问题,前者一般可以通过开发人员手动进行测试,而后者如果利用手动测试则存在工作量大、效率和质量低下、以及测试周期长的问题,因此需要自动化的兼容性检测方法。[0003]相关技术中针对上述功能兼容性的自动化测试通常包括以下两种方式。一种是基于用例的自动化测试,具体包括例如用selenium、watir、capabara等工具软件构造自动化测试用例,然后在多种浏览器中执行用例以检测兼容性问题;该方法是目前多浏览器功能兼容性问题的主流检测方案,其缺点在于无法实现通用化,并且由于针对每个应用(网页或webapp)都需要投入大量的时间来编写、维护自动化用例而要耗费大量的人工;另外,当自动化用例质量或者数量不够时,很容易产生漏报问题。另一种功能兼容性的自动化测试方式是自动状态机,具体包括用自动化的方法将对页面(网页或webapp的页面)的操作和状态生成有限状态机,然后通过比较有限状态机的相等性来找出功能性问题在多个浏览器上执行的不同点;这种方法的漏报率很小,但由于在实际应用中状态机的空间较大,因此执行效率和有效性都不高。【
发明内容】[0004]本申请的实施例旨在提供一种浏览器兼容性的检测方法及装置,以解决上述相关技术中自动化测试方式存在的问题。[0005]为实现上述目的,本申请的实施例提供了一种浏览器兼容性的检测方法,用于对被测对象在多种浏览器上运行的兼容性问题进行检测,所述被测对象包括网页或应用程序,其中,该方法包括以下步骤:[0006]S1.对所述被测对象进行静态兼容性扫描,输出需要进行检测的功能模块集合;[0007]S2.针对所述功能模块集合中的各功能模块,生成该功能模块分别在所述多种浏览器下运行的状态机,得到该功能模块分别对应于各浏览器的多个状态转化函数;[0008]S3.对所述多个状态函数进行比较以确定所述功能模块在所述多个浏览器上的功能性差异。[0009]本申请的实施例还提供一种浏览器兼容性的检测装置,用于对被测对象在多种浏览器上运行的兼容性问题进行检测,所述被测对象包括网页或网页应用程序,其中,该装置包括:[0010]静态扫描单元,用于对所述被测对象进行静态兼容性扫描,输出需要进行检测的功能模块集合;[0011]状态机生成单元,用于针对所述功能模块集合中的各功能模块,生成该功能模块分别在所述多种浏览器下运行的状态机,得到该功能模块分别对应于各浏览器的多个状态转化函数;[0012]状态机比较单元,对所述多个状态函数进行比较以确定所述功能模块在所述多个浏览器上的功能性差异。[0013]由上述技术方案可知,本申请实施例提供的浏览器兼容性检测方法及装置,通过对被测对象进行智能分解扫描进而局部针对各个功能模块进行状态机的自动生成,能够实现功能兼容性问题的全自动智能检测,不仅提高了检测效率,还能最大限度地避免漏报从而提闻了检测质量。【专利附图】【附图说明】[0014]图1为本申请浏览器兼容性的检测方法实施例一流程图;[0015]图2为本申请浏览器兼容性的检测方法实施例二流程图;[0016]图3为本申请浏览器兼容性的检测装置实施例框图。【具体实施方式】[0017]下面将详细描述本申请的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本申请。[0018]本申请浏览器兼容性的检测方法,用于对被测对象在多种浏览器上运行的兼容性问题进行检测。在一个实施例中,这里的被测对象包括网页或网页应用程序(webapp),并且这里的兼容性问题主要涉及功能上的兼容性问题,而不涉及样式上的兼容性问题。图1为本申请浏览器兼容性的检测方法实施例一流程图,如图所示,本实施例的检测方法包括以下步骤S101-S103。[0019]S101、对被测对象进行静态兼容性扫描,输出需要进行检测的功能模块集合;[0020]前文【
背景技术
】部分中提及的自动状态机测试方式通常是以被测对象在各个浏览器上执行时生成的页面(例如网站的某个页面或是webapp运行时的某个页面)为单位进行状态机的生成及比较,但页面级别通常包含多个功能区块,且页面可接收的输入是多种多样(例如,可以是来自鼠标、键盘、触摸屏等各种设备的输入)且不确定的,进而页面由这些输入而引起的状态转换种类也数量繁多,甚至会包含大量无意义的状态转化类型,从而造成这种测试方式得到的状态机空间过大,存在测试效率不高的问题。[0021]与上述相关技术中的测试方式相比,本申请浏览器兼容性的检测方法是以被测对象的功能模块为单位进行检测。为此,本步骤中首先是对整个被测对象进行分解和划分,通过静态兼容性扫描输出需要测试的功能模块集合及其对应的访问地址(例如,对于登录功能模块对应的访问地址为http://www.XXX.com/login),所述静态兼容性扫描技术具体可参见下文实施例二的描述。[0022]S102、针对功能模块集合中的各功能模块,生成该功能模块分别在多种浏览器下运行的状态机,得到该功能模块分别对应于各浏览器的多个状态转化函数;[0023]如上文所述,与一般自动状态机测试方式以整个页面为状态生成的单位不同,本实施例的检测方法首先是通过静态兼容性扫描将被测对象分解成多个功能模块,而本步骤中则针对这些功能模块进行状态机的生成。具体而言,可通过分析这些功能模块对应的DOM(DocumentObjectModule,文档对象模型)结构来实现。基于DOM描述页面组成结构的作用,可以将一个页面视作为由相互之间具有层级、父子(继承)等复杂关系的多个DOM节点(或称为DOM控件)组成的DOM树结构;当其中某个DOM节点包含多个子节点时,则这些子节点可称之为该DOM节点的子控件。类似地,对于页面上的某个功能模块而言,也可以将其分解为一个或多个DOM控件及其子控件,这些控件相互配合完成该模块的相应功能;以登录功能模块为例,例如可以将其分解为用户名输入控件、密码输入控件、校验控件等DOM控件(在本例中登录功能模块为父DOM控件,而用户名输入控件、密码输入控件、校验控件等为其子控件)。回到上文所述分析功能模块对应的DOM结构,例如可包括以下内容,首先对引用到该功能的DOM控件进行分析,将其类型组建相应的状态机模型,同时将DOM的层级结构、继承关系等一起考虑进来,然后基于DOM及其子控件的状态生成状态机。不同于上述提及的整个页面,对于一个DOM控件来说,状态变化不会很大,因此状态机容量也不是很大,这就保证了本实施例较高的执行效率。[0024]S103、对多个状态函数进行比较以确定功能模块在多个浏览器上的功能性差异。[0025]在上述步骤S102基于各功能模块所对应DOM控件生成各浏览器下的状态机后,自然可得到各DOM控件在不同浏览器下的状态转化函数,通过比较这些状态转化函数的异同,即,通过状态机比较算法来找出各浏览器之间存在差异的状态转化函数,便能得到DOM控件在多个浏览器上的功能性差异,此即功能上的兼容性问题。[0026]图2为本申请浏览器兼容性的检测方法实施例二流程图,如图所示,本实施例的检测方法包括以下步骤S201-S205:[0027]S201、对被测对象的代码进行扫描,以获取代码中各功能模块与生成页面之间的对应关系;[0028]通过对被测对象的代码(或代码集合)进行整体扫描,获取各功能模块的代码与初始的生成页面之间的对应关系,例如,代码A在login.html中标识为divid=,login’的DOM控件中使用,用形式化方法表示为:[0029]Mapping(“functionA”)={webpage(http://www.xxx.com/login,html)DOM(divid=’login’),position(top,left,bottom,right)}[0030]S202、基于预设的兼容性规则对各功能模块进行扫描,以获取可能有兼容性问题的功能模块集合;[0031]本步骤即对应于上文实施例一的静态兼容性扫描,在一个实施例中,其内容包括基于预设的兼容性规则对功能模块的代码(主要是其中的javascript)进行扫描,通过对代码的扫描获得三个结果集:确定无兼容性问题的代码集合(result_0k),确定有兼容性问题的代码集合(result_error),以及可能有兼容性问题的代码集合(result_suspious)。[0032]在一个实施例中,上述预设的兼容性规则是指基于现有兼容性测试中积累的大量兼容性问题所对应的常见来源而整理出的规则集合。例如,已知在javascript语言中使用foreach循环时如果不对循环体内元素是否为空做处理就会在Firefox浏览器中产生功能上的兼容性问题,相应便可以设置这样的静态扫描兼容性规则:扫描代码中所有的foreach循环,并检查其是否对循环体元素是否为空做了处理,如果没有做处理,则由于其肯定会引发兼容性问题,因此将该代码归入reSUlt_err0r集合;如果做了处理,则由于暂时还不能确定该处理是否会引发兼容性问题,因此将该代码归入result_suspious集合。基于以上描述可以理解,本步骤的静态兼容性扫描可以根据实际情况来预设多种兼容性规则,至于规则的具体应用则与以上描述的过程原理相同,本领域技术人员基于说明书的公开完全能够加以实施,此处不再赘述。[0033]接续,结合上述的规则应用过程可以理解,本步骤的兼容性扫描结果并非必然得到result_ok、result_error、和result_suspious这三个完整的集合,而有可能只得到其中的一个或两个(例如上述foreach循环扫描规则仅得到其中的result_error和result_suspious两个集合)。这里需要进一步说明的是,对于经本步骤所有预设兼容性规则扫描后所得到的三个集合,其中result_0k集合中的代码可以直接判定不存在兼容性问题从而可向测试人员返回例如测试通过的信息,而result_error集合中的代码可以直接判定存在兼容性问题从而向测试人员返回例如测试失败(进而需要代码修改、调试等处理,本申请中不涉及该部分内容)的信息,只有result_suspious集合中的代码由于不确定是否会存在兼容性问题从而需要进行后续步骤S203-S205的进一步处理,以通过最后的状态机比较算法确定是否会存在兼容性问题。[0034]S203、对获取的对应关系和可能有兼容性问题的功能模块集合进行合并,以得到需要进行检测的功能模块集合;[0035]如上所述,步骤S201得到所有功能模块与初始生成页面之间的对应关系,步骤S202通过静态兼容性扫描找到可能有兼容性问题的那些功能模块,而本步骤S203则将两者的结果合并从而得到可能有兼·容性问题的功能模块与其生成页面之间的对应关系。如此一来也可理解,上述步骤S201与S202之间并无严格的顺序关系,在一个实施例中,也可以是先通过步骤S202得到可能有兼容性问题的功能模块,再通过步骤S201得到这些功能模块与其生成页面之间的对应关系。[0036]综上可知,通过对步骤S201和步骤S202的扫描结果进行合并,即得到需要进一步进行检测的功能模块集合,并将其作为后续状态机生成的输入Input[l,2,...,n],其表达式例如为:[0037]Input[I,2,...,η]=[(webpageI,DOMI,LocationI,functionI),(webpage2,DOM2,Location2,function2)…,(webpagen,domn,locationn,functionn)][0038]其中function表示该功能模块对应的代码(或代码集合),DOM表示该功能模块对应的DOM控件(包含其子控件),webpage表示该功能模块所对应生成的页面,Location表示DOM控件在屏幕上的绝对位置,而1-η则表示功能模块在集合中的序号。[0039]S204、在功能模块集合中遍历选取功能模块;[0040]从步骤S203得到的功能模块集合Input[l,2,...,η]中依次选取一功能模块进行后续的状态机生成步骤,并在完成当前所选取功能模块的状态机生成后继续选取功能模块集合Input[I,2,...,η]中的下一个功能模块,直至完成功能模块集合Input[I,2,...,η]中所有功能模块的遍历。下文以当前选取功能模块集合Input[l,2,...,η]中的第一个功能模块Input[I](webpage1,DOMI,LocationI,functionI)为例进行说明。[0041]S205、基于与当前选取的功能模块对应的文档对象模型DOM控件分别在多个浏览器下执行的状态生成多个状态机,状态机的状态元包括:多个状态集、输入集(Σ)、以及状态转化函数(S);[0042]具体而言,状态机的生成算法如下所述。[0043]首先,定义包括五个状态元的五元组状态机(Σ,S,Stl,δ,sF),其中:[0044].Σ是输入集,其为操作的非空有限集合;在一个实施例中,所述操作例如包括但不限于click(鼠标点击)、mouseover(鼠标悬浮)、set(页面上的输入设定)、select(页面上的选择操作)等等;[0045].S是DOM控件显示状态的非空有限集合;[0046].S0是DOM控件显示的初始状态,在确定有唯一初始状态时其为S的元素,而初始状态不唯一时其为S的子集;[0047].δ是状态转化函数,其表达式为δ:SXΣ—S;[0048].sF是DOM控件显示的最终状态的集合,其为S的子集。[0049]接续,针对当前所选取功能模块中的每个DOM进行遍历,以Input[l](webpageI,DOMI,LocationI,functionI)为例,即指遍历DOMl从而收集数据以产生如下S元组:[0050]S=[[0051]tagname,#D0M的名称[0052]type,#D0M的类别,例如button(按钮),list(列表),table(表单)等[0053]id,#D0M的唯一标识符[0054]xpath#xpath路径[0055]text的文本信息hash(哈希)值[0056]location#D0M在屏幕上的绝对位置[0057]parent#D0M的父节点ID[0058]sibling#兄弟和子女节点ID[0059]visible#是否可见[0060]disable#是否禁用[0061]][0062]在上述元组中,xpath在通常意义上是一种用来确定XML(ExtensiveMakeupLanguage,可扩展标记语言)文档中某部分的位置的XML路径语言,其在本实施例中用来确定DOM控件在页面DOM树结构中的位置;并且,xpath及其之后的text、location、parent、sibling、visible、和disable等分别表示DOM控件的某一属性,它们在本实施例中都用来描述DOM控件的状态,进而在后续的状态机比较算法中用来进行状态的比较。[0063]接续,根据上述得到的DOM的类别,确定相应的输入集Σ。例如,当该DOM的type为button(按钮)时,其输入集Σ则包括{click,mouseover};当type为文本输入框时,其输入集Σ则包括{set,click,mouseover};当type为下拉菜单时,其输入集Σ则包括{click,select,mouseover}。[0064]接续,由Σ及S,得到该DOM的状态转化函数δ:SXΣ—S。这里,前一个S表示Σ中的输入产生作用之前的状态集,后一个S表示Σ中的输入产生作用之后的状态集,两者同属于S的子集但彼此包含的内容不同;举例而言,如上所述Stl和sF分别都可视作为S的子集(或者元素),这里状态转化函数表达式中的前一个S显然仅包括Sci而不包括Sf,同理,其中后一个S则仅包括Sf而不包括S。。[0065]接续,重复以上步骤遍历该DOM的子控件,直至生成完整的状态转化函数δ。[0066]最后,在多个浏览器下重复执行上述DOM的状态转化函数δ的生成过程,从得到多个状态转化函数S,例如包括对应于IE浏览器的状态转化函数δΙΕ、对应于Firefox浏览器的状态转化函数Sff、对应于Chrome浏览器的状态转化函数等等,进而利用状态机比较算法来找出各浏览器之间存在差异的状态转化函数δdiff,此即当前DOM控件所对应的功能模块在多个浏览器上的功能性差异。这里的状态机比较算法可以直接采用现有的状态机比较算法,举一个简单的例子而言,可以逐条比较状态的变化系列,当有状态不同时,便将该状态记录下来。例如,对于DOMl的“初始状态一经过click—click—click后状态”这一变化系列,在ie浏览器中click后状态为S(ie),在Firefox浏览器中click后状态为S(ff),如果S(ie)和S(ff)中存在不一致的属性字段(例如text不同或location不同)时,则确定两者存在差异,进而确定该功能模块存在功能上的兼容性问题;反之,如果两者所有属性字段均一致,则确定该功能模块不存在兼容性问题。[0067]通过针对步骤S203中所得到的功能模块集合中所有的功能模块确定出各自在多浏览器间的功能性差异,进而加以汇总便可得到被测对象整体在多浏览器间的功能兼容性问题。[0068]由上述技术方案可知,本申请提供的浏览器兼容性检测方法,通过对被测对象进行智能分解扫描进而局部针对各个功能模块进行状态集的自动生成,能够实现功能兼容性问题的全自动智能检测,不仅提高了检测效率,还能最大限度地避免漏报从而提高了检测质量。[0069]与上述实施例浏览器兼容性的检测方法对应,本申请的实施例还提出一种浏览器兼容性的检测装置,其用于对被测对象在多种浏览器上运行的兼容性问题进行检测。在一个实施例中,这里的被测对象包括网页或网页应用程序(webapp),并且这里的兼容性问题主要涉及功能上的兼容性问题,而不涉及样式上的兼容性问题。图3为本申请浏览器兼容性的检测装置实施例框图,如图所示,本实施例浏览器兼容性的检测装置包括:静态扫描单元31、状态机生成单元32以及状态机比较单元33。其中,静态扫描单元31用于对被测对象进行静态兼容性扫描,输出需要进行检测的功能模块集合;状态机生成单元32用于针对上述功能模块集合中的各功能模块,分别生成该功能模块在多种浏览器下运行的状态机,分别得到该功能模块对应于各浏览器的多个状态转化函数;而状态机比较单元33则对状态机生成单元32得到的上述多个状态函数进行比较以确定功能模块在多个浏览器上的功能性差异。[0070]接续如图所示,在一个实施例中,上述静态扫描单元31包括:对应关系获取子单元311、集合获取子单元312、以及合并子单元313。其中,对应关系获取子单元311用于对被测对象的代码进行扫描,以获取代码中各功能模块与生成页面之间的对应关系;集合获取子单元312用于基于预设的兼容性规则对各功能模块进行扫描,以获取可能有兼容性问题的功能模块集合;合并子单元313则用于对对应关系获取子单元311获取的所述对应关系和集合获取子单元312得到的可能有兼容性问题的功能模块集合进行合并,以得到上述需要进行检测的功能模块集合。[0071]进一步如图所示,在一个实施例中,上述状态机生成单元32包括:遍历子单元321和生成子单元322。其中,遍历子单元321用于在功能模块集合中遍历选取功能模块;生成子单元322用以基于与当前选取的功能模块对应的文档对象模型DOM控件分别在所述多个浏览器下执行的状态生成多个状态机。[0072]在一个实施例中,上述状态机的状态元包括:多个状态集、输入集(Σ)、以及所述状态转化函数(S)。其中,所述多个状态集包括状态总集(S)、初始状态集(Stl)、以及最终状态集(Sf),其中Stl和sFSs的子集,且状态转化函数的表达式为:δ=SXΣ—S。在一个实施例中,上述状态总集的元素包括DOM控件的类型,相应地,生成子单元322还用以根据该DOM控件的类型来确定输入集(Σ)。[0073]综上所述,本申请实施例提供的浏览器兼容性检测方法及装置,通过对被测对象(网页或网页程序)进行智能分解和静态兼容性扫描,进而局部针对各个功能模块进行状态机的自动生成,能够实现功能兼容性问题的全自动智能检测,不仅提高了检测效率,还能最大限度地避免漏报从而提高了检测质量。并且,由上述实施例可知,一方面,本申请浏览器兼容性检测方法各个步骤及其整体,可以对应于存储在计算机可读存储介质中的计算机可执行指令及其组成的计算机可执行程序;而另一方面,本申请浏览器兼容性检测装置,则可以对应于用以执行该计算机可执行程序或指令的各部分计算机硬件及其组成的硬件集口ο[0074]虽然已参照几个典型实施例描述了本申请,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本申请能够以多种形式具体实施而不脱离申请的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。【权利要求】1.一种浏览器兼容性的检测方法,用于对被测对象在多种浏览器上运行的兼容性问题进行检测,所述被测对象包括网页或网页应用程序,其中,该方法包括以下步骤:51.对所述被测对象进行静态兼容性扫描,输出需要进行检测的功能模块集合;52.针对所述功能模块集合中的各功能模块,生成该功能模块分别在所述多种浏览器下运行的状态机,得到该功能模块分别对应于各浏览器的多个状态转化函数;53.对所述多个状态函数进行比较以确定所述功能模块在所述多个浏览器上的功能性差异。2.如权利要求1所述的浏览器兼容性的检测方法,其中,所述步骤SI包括:对所述被测对象的代码进行扫描,以获取所述代码中各功能模块与生成页面之间的对应关系;基于预设的兼容性规则对所述各功能模块进行扫描,`以获取可能有兼容性问题的功能模块集合;对获取的所述对应关系和所述有兼容性问题的功能模块集合进行合并,以得到所述需要进行检测的功能模块集合。3.如权利要求1所述的浏览器兼容性的检测方法,其中,所述步骤S2包括:521.在所述功能模块集合中遍历选取功能模块;522.基于与当前选取的功能模块对应的文档对象模型DOM控件分别在所述多个浏览器下执行的状态生成多个状态机,所述状态机的状态元包括:多个状态集、输入集(Σ)、以及所述状态转化函数(S)。4.如权利要求3所述的浏览器兼容性的检测方法,其中,所述多个状态集包括状态总集(S)、初始状态集(Stl)、以及最终状态集(sF),其中Stl和sF为S的子集,且所述状态转化函数的表达式为:δ=SXΣ—S。5.如权利要求3或4所述的浏览器兼容性的检测方法,其中,所述状态总集的元素包括所述DOM控件的类型,所述步骤S22中还包括:根据所述DOM控件的类型确定所述输入集。6.一种浏览器兼容性的检测装置,用于对被测对象在多种浏览器上运行的兼容性问题进行检测,所述被测对象包括网页或网页应用程序,其中,该装置包括:静态扫描单元,用于对所述被测对象进行静态兼容性扫描,输出需要进行检测的功能模块集合;状态机生成单元,用于针对所述功能模块集合中的各功能模块,生成该功能模块分别在所述多种浏览器下运行的状态机,得到该功能模块分别对应于各浏览器的多个状态转化函数;状态机比较单元,对所述多个状态函数进行比较以确定所述功能模块在所述多个浏览器上的功能性差异。7.如权利要求6所述的浏览器兼容性的检测装置,其中,所述静态扫描单元包括:对应关系获取子单元,用于对所述被测对象的代码进行扫描,以获取所述代码中各功能模块与生成页面之间的对应关系;集合获取子单元,用于基于预设的兼容性规则对所述各功能模块进行扫描,以获取可能有兼容性问题的功能模块集合;合并子单元,用于对所述对应关系获取子单元获取的所述对应关系和所述集合获取子单元得到的可能有兼容性问题的功能模块集合进行合并,以得到所述需要进行检测的功能模块集合。8.如权利要求6所述的浏览器兼容性的检测装置,其中,所述状态机生成单元包括:遍历子单元,用于在所述功能模块集合中遍历选取功能模块;生成子单元,用以基于与当前选取的功能模块对应的文档对象模型DOM控件分别在所述多个浏览器下执行的状态生成多个状态机,所述状态机的状态元包括:多个状态集、输入集(Σ)、以及所述状态转化函数(δ)。9.如权利要求8所述的浏览器兼容性的检测装置,其中,所述多个状态集包括状态总集(S)、初始状态集(Stl)、以及最终状态集(Sf),其中Stl和Sf为S的子集,且所述状态转化函数的表达式为:δ=SXΣ—S。10.如权利要求8或9所述的浏览器兼容性的检测装置,其中,所述状态总集的元素包括所述DOM控件的类型,相应地,所述生成子单元还用以根据所述DOM控件的类型确定所述输入集。【文档编号】G06F11/36GK103853659SQ201210519730【公开日】2014年6月11日申请日期:2012年12月6日优先权日:2012年12月6日【发明者】栗志果申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1