CN104750609B - 确定界面布局兼容度的方法及装置 - Google Patents
确定界面布局兼容度的方法及装置 Download PDFInfo
- Publication number
- CN104750609B CN104750609B CN201510137051.3A CN201510137051A CN104750609B CN 104750609 B CN104750609 B CN 104750609B CN 201510137051 A CN201510137051 A CN 201510137051A CN 104750609 B CN104750609 B CN 104750609B
- Authority
- CN
- China
- Prior art keywords
- node
- object model
- document object
- model tree
- diversity factor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 235000013399 edible fruits Nutrition 0.000 claims description 5
- 230000006870 function Effects 0.000 description 9
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 2
- YBJHBAHKTGYVGT-ZKWXMUAHSA-N (+)-Biotin Chemical compound N1C(=O)N[C@@H]2[C@H](CCCCC(=O)O)SC[C@@H]21 YBJHBAHKTGYVGT-ZKWXMUAHSA-N 0.000 description 1
- 241000208340 Araliaceae Species 0.000 description 1
- 206010021703 Indifference Diseases 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000000205 computational method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- FEPMHVLSLDOMQC-UHFFFAOYSA-N virginiamycin-S1 Natural products CC1OC(=O)C(C=2C=CC=CC=2)NC(=O)C2CC(=O)CCN2C(=O)C(CC=2C=CC=CC=2)N(C)C(=O)C2CCCN2C(=O)C(CC)NC(=O)C1NC(=O)C1=NC=CC=C1O FEPMHVLSLDOMQC-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种确定界面布局兼容度的方法及装置。其中,所述方法包括:获取第一界面布局文件的第一文档对象模型树,以及第二界面布局文件的第二文档对象模型树;将所述第一文档对象模型树和所述第二文档对象模型树中的所有节点,按照到根节点的路径进行分类;根据分类结果,确定所述第一界面布局文件与所述第二界面布局文件之间的兼容度。本发明实施例提供的技术方案,可以提高兼容度确定结果的准确率及其运行速度。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种确定界面布局兼容度的方法及装置。
背景技术
目前,在安卓自动化测试的过程中,在手机软件版本被更新后,通常需要对更新前后新旧版本的手机软件中的界面布局文件进行对比,以确定新版本软件中的新界面布局对旧版本软件中的旧界面布局的兼容度,进而据此来大致判断旧版本软件中的脚本在新版本软件的用户界面上的兼容性。其中,界面布局文件描述了手机软件中所实现的用户界面中各个控件以及文本内容之间的布局信息。然而,由于界面布局文件内容众多,如果单靠人力来检查新旧版本的界面布局之间的兼容度,则需要大量的时间,以至于跟不上软件版本的更新速度,因此,需要靠电子设备来自动地实现对新旧版本的界面布局文件的快速对比,求出新用户界面布局对旧用户界面布局的兼容度。
手机软件中的界面布局体现在界面的XML(Extensible Markup Language,可扩展标记语言)格式的文件(也即界面布局文件)之中。因此,通常是从界面布局文件的文档结构、节点的属性、文本内容、基于树的编辑距离等角度,对新旧版本界面布局文件进行对比,进而确定二者之间的兼容度。但是,采用现有技术在对新旧版本的界面布局文件进行对比后得到的二者之间的兼容度,其准确率较低,且对比过程耗费时间较长。
发明内容
本发明实施例提供一种确定界面布局兼容度的方法及装置,以提高兼容度确定结果的准确率及其运行速度。
一方面,本发明实施例提供了一种确定界面布局兼容度的方法,该方法包括:
获取第一界面布局文件的第一文档对象模型树,以及第二界面布局文件的第二文档对象模型树;
将所述第一文档对象模型树和所述第二文档对象模型树中的所有节点,按照到根节点的路径进行分类;
根据分类结果,确定所述第一界面布局文件与所述第二界面布局文件之间的兼容度。
另一方面,本发明实施例还提供了一种确定界面布局兼容度的装置,该装置包括:
文档对象模型树获取模块,用于获取第一界面布局文件的第一文档对象模型树,以及第二界面布局文件的第二文档对象模型树;
节点分类模块,用于将所述第一文档对象模型树和所述第二文档对象模型树中的所有节点,按照到根节点的路径进行分类;
兼容度确定模块,用于根据所述节点分类单元得到的分类结果,确定所述第一界面布局文件与所述第二界面布局文件之间的兼容度。
本发明实施例提供的技术方案,在获取到待比对的两界面布局文件的文档对象模型树之后,先将两文档对象模型树中的节点,按照到根节点的路径进行分类,进而根据分类结果,来确定第一界面布局文件与第二界面布局文件之间的兼容度,这样相较于通过逐一比对两文档对象模型树中不同节点在文档结构属性和节点属性上的差异度,进而根据比对结果,来确定两界面布局文件间的差异度的方案,本发明实施例可以提高兼容度确定结果的准确率及其运行速度。
附图说明
图1A是本发明实施例一提供的一种确定界面布局兼容度的方法的流程示意图;
图1B是本发明实施例一提供的根据分类结果确定第一界面布局文件与第二界面布局文件之间的兼容度的流程示意图;
图2A是本发明实施例二提供的一种计算两DOM树间节点属性差异度的方法的流程示意图;
图2B是本发明实施例二提供的一种计算两DOM树间结构差异度的方法的流程示意图;
图3是本发明实施例三提供的一种确定界面布局兼容度的方法的流程示意图;
图4A为本发明实施例四提供的一种确定界面布局兼容度的装置的结构示意图;
图4B为本发明实施例四提供的确定界面布局兼容度的装置中的节点属性差异度计算单元的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1A是本发明实施例一提供的一种确定界面布局兼容度的方法的流程示意图。该方法可适用于第二界面布局文件对第一界面布局文件的兼容度的确定情况,可以由确定界面布局兼容度的装置来执行,所述装置由软件实现,可被内置在诸如智能手机、平板电脑、笔记本电脑、台式电脑或个人数字助理之类的具有用户界面实现功能的终端设备上。在采用本实施例提供的方法得到界面布局兼容度之后,可根据所得到的兼容度,来确定是否需要对与其中一个界面布局文件有关联的脚本进行修改。
参见图1A,本实施例提供的确定界面布局兼容度的方法具体包括如下操作:
操作110、获取第一界面布局文件的第一DOM树,以及第二界面布局文件的第二DOM树。
在本实施例中,当确定界面布局兼容度的装置所内置的设备为智能手机时,第一界面布局文件可以是旧版本的智能手机软件中的界面布局文件,第二界面布局文件可以是新版本的智能手机软件中的界面布局文件。当然,第一界面布局文件和第二界面布局文件,也可以是其他任意两个不同版本的界面布局文件,本实施例对此不作限定。其中,界面布局文件的格式为XML格式的文件。
本实施例可预先利用xml解析器(例如apache xml解析器),分别针对第一界面布局文件和第二界面布局文件进行解析,得到相应的两个文档对象模型(Document ObjectModel,简称DOM)树:第一DOM树和第二DOM树。在每个DOM树中,均包含一个根节点,根节点作为最基本的父节点,可包含有多个节点;而多个节点中的某个节点可作为父节点,进一步包含有多个子节点。每个节点都有其相应的属性信息。在同一个DOM树中,任意节点A到根节点的路径为:该节点A到达根节点所依次经过的父节点标识(包含节点A本身的标识)。由此可见,对于同一个DOM树中的不同节点而言,各节点到该DOM树中的根节点的路径不同。
操作120、将第一DOM树和第二DOM树中的所有节点,按照到根节点的路径进行分类。
在本实施例中,可按照到根节点的路径相同与否,将两个DOM树中的节点进行类别划分。示例性的,将第一DOM树和第二DOM树中的所有节点,按照到根节点的路径进行分类,可具体为:确定第一DOM树中与第二DOM树中到根节点的路径相同的节点,并将所确定的具有相同路径的节点作为一个节点对,添加至预设的第一集合;将第一DOM树中不包含在第一集合中的节点,添加至预设的第二集合。其中,第一集合和第二集合属于不同的节点类别。
操作130、根据分类结果,确定第一界面布局文件与第二界面布局文件之间的兼容度。
对于分类结果中的第一集合内的任意一个节点对而言,其所包含的两个节点分别到自身所在的DOM树根节点的路径相同,故可判定为这两个节点在文档结构上是相同的。对于分类结果中的第二集合内的任意一个节点而言,由于在与其所在的第一DOM树不同的第二DOM树中,不含有任何能够与该节点组成节点对的目标节点,所以可判定该节点的属性信息,与第二DOM树中的所有节点的属性信息,完全不同。
如图1B所示,在本实施例的一种具体的实施方式中,操作130可包括:
操作1301、利用第一集合中的节点对的属性信息,计算第一DOM树与第二DOM树之间的节点属性差异度;
操作1302、利用第二集合中的节点的结构信息,计算第一DOM树与第二DOM树之间的结构差异度;
操作1303、根据节点属性差异度和结构差异度,确定第一界面布局文件与第二界面布局文件之间的兼容度。
(一)对于上述操作1301而言
考虑到第一DOM树中属于第二集合内的节点的属性信息,与第二DOM树中的所有节点的属性信息,完全不同,而第一DOM树中属于第一集合内的节点的属性信息,与第二DOM树中具备节点对对应关系的节点的属性信息,可能相同,也可能不同。
示例性的,可通过执行如下操作,以利用第一集合中的节点对的属性信息,以及第二集合中节点的个数,来计算第一DOM树与第二DOM树之间的节点属性差异度:首先,根据第一集合中的节点对的属性信息之间的匹配程度,确定一个节点属性差异值(匹配程度越低,节点属性差异值越大);进而,将所确定的节点属性差异值,结合第一DOM树中位于第二集合内的节点的个数,计算第一DOM树与第二DOM树之间的节点属性差异度。
当然,还可通过其他方式,利用第一集合中的节点对的属性信息,来计算第一DOM树与第二DOM树之间的节点属性差异度。例如:
利用第一集合中的节点对的属性信息,计算第一DOM树与第二DOM树之间的节点属性相似度;例如,先将第一集合中各节点对中的两个节点在属性信息上的匹配度(均为大于或等于0,且小于1的数值)加权求和,然后将加权求和结果除以第一DOM树中节点的总个数,作为第一DOM树与第二DOM树之间的节点属性相似度;
将1减去计算得到的节点属性相似度,得到第一DOM树与第二DOM树之间的节点属性差异度。
(二)对于上述操作1302而言
考虑到第一集合内任意一个节点对中的节点,分别到自身所在的DOM树根节点的路径相同,在文档结构上无差异,故可仅针对第二集合中的节点,利用该节点在其所在DOM树中的结构信息,计算第一DOM树与第二DOM树之间在文档结构上的差异度(即结构差异度)。
当然,也可先针对第二集合中的节点,利用该节点在其所在DOM树中的结构信息,计算一个结构相似值;进而,根据上述计算得到的结构相似值,以及第一集合中的节点对的个数,得出第一DOM树与第二DOM树之间在文档结构上的结构相似度;最后,将1减去得出的结构相似度,得到第一DOM树与第二DOM树之间的结构差异度。
(三)对于上述操作1303而言
在本实施例中,根据两DOM树间的节点属性差异度和结构差异度,确定第一界面布局文件与第二界面布局文件之间的兼容度,可具体是:将第一DOM树与第二DOM树间的节点属性差异度和结构差异度进行设定预算(例如加权运算),得到第一DOM树与第二DOM树间的总差异度;根据总差异度,确定第一界面布局文件与第二界面布局文件之间的兼容度。其中,总差异度越大,得到的兼容度越小。例如,设总差异度的值域为0到1,则可以将1与总差异度的差值,作为两界面布局文件的兼容度。
当然,本领域的普通技术人员应理解,还可以通过其他方式,根据分类结果来确定两界面布局文件的兼容度,例如:
利用第一集合中的节点对的属性信息,计算第一DOM树与第二DOM树之间的节点属性相似度;
利用第二集合中的节点的结构信息,计算第一DOM树与第二DOM树之间的结构相似度;
根据节点属性相似度和结构相似度,确定第一界面布局文件与第二界面布局文件之间的兼容度。
示例性的,可直接将节点属性相似度和结构相似度进行加权求和运算,得到第一界面布局文件与第二界面布局文件之间的兼容度。
本实施例提供的技术方案,在获取到待比对的两界面布局文件的文档对象模型树之后,先将两文档对象模型树中的节点,按照到根节点的路径进行分类,进而根据分类结果,来确定第一界面布局文件与第二界面布局文件之间的兼容度,这样相较于通过逐一比对两文档对象模型树中不同节点在文档结构属性和节点属性上的差异度,进而根据比对结果,来确定两界面布局文件间的差异度的方案,本实施例可以提高兼容度确定结果的准确率及其运行速度。
实施例二
本实施例在上述实施例一的基础上,对“利用第一集合中的节点对的属性信息,计算第一DOM树与第二DOM树之间的节点属性差异度”的操作,以及“利用第二集合中的节点的结构信息,计算第一DOM树与第二DOM树之间的结构差异度”的操作,作进一步优化。
参见图2A,本实施例提供的计算两DOM树间节点属性差异度的方法,具体包括如下操作:
操作210、分别针对第一集合中的各个节点对:计算节点对的属性信息的子差异度,其中子差异度为大于0,且小于或等于1的数值。
其中,属性信息可由多个属性项信息组成,例如节点索引值、节点类型、控件类型、文本属性、控件详细描述信息等。在本实施例中,可预先为预设的各个关键属性项信息分配相应的差异因子,所有的差异因子之和小于或等于1。示例性的,计算节点对的属性信息的子差异度,具体为:遍历节点对中的两个节点的各关键属性项信息,检测两个节点所具备的相同的关键属性项信息;获取节点对中属于第一DOM树的节点的各关键属性项信息中,除所检测到的关键属性项信息之外的其他关键属性项信息所对应的差异因子;将所获取到的所有差异因子相加,得到节点对的属性信息的子差异度。
例如:节点对W中属于第一DOM树的节点包含有3个关键属性项信息:属性项K1信息(对应的差异因子为P1)、属性项K2信息(对应的差异因子为P2)和属性项K3信息(对应的差异因子为P3);
节点对W中属于第二DOM树的节点包含有3个关键属性项信息:属性项K2信息、属性项K3信息和属性项K4信息(对应的差异因子为P4)。
经检测得到:节点对W中属于第二DOM树的节点,不具备与节点对W中属于第一DOM树的节点的属性项K1信息相同的属性项信息;
节点对W中属于第一DOM树的节点的属性项K2信息,与节点对W中属于第二DOM树的节点的属性项K2信息相同;
节点对W中属于第一DOM树的节点的属性项K3信息,与节点对W中属于第二DOM树的节点的属性项K3信息不同;
则节点对W的属性信息的子差异度,可为:P1+P3。
当然,还可通过任意的相似度计算方法,先计算得到节点对的属性信息的相似度(小于或等于1的数值),然后用1减去得到的相似度,作为节点对的属性信息的子差异度。
操作220、对计算得到的各个子差异度进行加权求和。
示例性的,可预先设定与计算得到的各个子差异度对应的加权系数相等,直接将计算得到的各个子差异度求和。
在本发明实施例中,任意节点的结构信息,为用于描述该节点在所在DOM树中的结构的信息,可包括节点高度以及子节点数目。其中,节点高度为该节点到达根节点所要经过的父节点的个数。节点高度越小,子节点数目越大,表明该节点对所在DOM树中的结构的影响程度越大,随之该节点的属性信息也亦越关键。为此,可根据节点的结构信息中的节点高度和/或子节点数目,为该节点分配一个加权系数。
在本实施例的一种具体实施方式中,对计算得到的各个子差异度进行加权求和,包括:
生成与计算得到的各个子差异度对应的加权系数,其中加权系数是根据计算子差异度时对应的节点对中属于第一DOM树的节点的结构信息得到的系数;
将计算得到的各个子差异度乘以对应的加权系数,并进行求和。
示例性的,节点对中属于第一DOM树的节点的高度越小,子节点数目越大,其所对应的加权系数也越大。
操作230、根据加权求和结果,以及第二集合中节点的个数,确定第一DOM树与第二DOM树之间的节点属性差异度。
示例性的,根据加权求和结果,以及第二集合中节点的个数,确定第一DOM树与第二DOM树之间的节点属性差异度,包括:
按照如下公式,确定第一DOM树与第二DOM树之间的节点属性差异度Diff1:
Diff1=(x11+x12)/number1
其中,x11为加权求和结果;x12为第二集合中节点的个数,number1为第一DOM树中的节点的总个数。
参见图2B,本实施例提供的计算两DOM树间结构差异度的方法,具体包括如下操作:
操作240、分别针对第二集合中的各个节点:根据节点的结构信息,计算节点的结构差异权值,其中结构差异权值为大于0,且小于或等于1的数值。
示例性的,可按照如下公式,计算节点的结构差异权值Q:
Q=q1(h)+q2(n)
其中,q1(h)为以节点的结构信息中的节点高度h为变量的第一函数,q2(n)为以节点的结构信息中的子节点数目n为变量的第二函数。优选的,第一函数为函数值与节点高度h成反比关系的函数,第二函数为函数值与子节点数目n成正比关系的函数。
操作250、对计算得到的各个结构差异权值进行求和运算。
操作260、将求和运算结果与第一DOM树中节点的总个数的比值,作为第一DOM树与第二DOM树之间的结构差异度。
实施例三
图3是本发明实施例三提供的一种确定界面布局兼容度的方法的流程示意图。本实施例以上述所有实施例为基础,提供一优选实施例。本实施例提供的方法可以由确定界面布局兼容度的装置来执行,所述装置由软件实现,被内置在智能手机上。本实施例可适用于新版本的智能手机软件中的界面布局文件对旧版本的智能手机软件中的界面布局文件的兼容度的计算情况。在采用本实施例提供的方法得到界面布局兼容度之后,可根据所得到的兼容度的大小,来确定是否需要对与旧版本的智能手机软件中的界面布局文件有关联的脚本进行修改。例如,当所得到的兼容度低于设定阈值(例如0.75)时,确定需要对与旧版本的智能手机软件中的界面布局文件有关联的脚本进行修改。参见图3,本实施例提供的确定界面布局兼容度的方法,具体包括如下操作:
操作310、利用apache xml解析器,分别对第一界面布局文件和第二界面布局文件进行解析,得到相应的两个DOM树:第一DOM树和第二DOM树。
其中,第一界面布局文件为旧版本的智能手机软件中的界面布局文件,对应于第一DOM树;第二界面布局文件为新版本的智能手机软件中的界面布局文件,对应于第二DOM树。
操作320、采用后序遍历的方式,分别遍历所得到的各个DOM树:将当前所遍历的DOM树中每个节点的特征信息作为一个结构,加入当前所遍历的DOM树所对应的节点集合中。
在本实施例中,每个节点的特征信息,包括节点到根节点的路径、节点指针、节点高度和子节点数目。其中,节点指针为用于指向节点存储位置的指针。利用该指针,可以获取到所存储的节点。节点包含多个属性项信息。
执行完320后,可得到两个节点集合:第一节点集合Sold和第二节点集合Snew,其中第一节点集合Sold存储有第一DOM树中各个节点的特征信息所在的各个结构;第二节点集合Snew存储有第二DOM树中各个节点的特征信息所在的各个结构。
操作330、对第一DOM树所对应的第一节点集合与第二DOM树所对应的第二节点集合进行求差集运算,得到差集(设为Sd)和交集(设为Spair)。
在本实施例中,操作330具体包括:
(1)遍历第二DOM树所对应的第二节点集合Snew:用节点到根节点的路径作为键值,将其中每一个节点的特征信息插入采用暴雪哈希算法实现的哈希(hash)表中;
(2)遍历第一DOM树所对应的第一节点集合Sold:将当前所遍历到的特征信息中节点(设为nodeold)到根节点的路径作为键值,在上述(1)中生成的哈希表中进行查找操作;如果查找成功(设查找到的特征信息所对应的节点为nodenew),则将当前所遍历到的特征信息标记为删除(并未实际删除),并将nodeold与nodenew作为节点对插入交集Spair中;如果查找失败,不作任何处理;
其中,nodeold可根据当前所遍历到的特征信息中的节点指针获取得到,nodenew可根据查找到的特征信息中的节点指针获取得到。由于nodeold为第一DOM树中的一个节点,nodenew为第二DOM树中的一个节点,且二者到自身所在DOM树中根节点的路径相同,故可作为一个节点对,添加至交集Spair(也即本发明实施例一中所述的第一集合)中。
(3)将第一DOM树所对应的第一节点集合Sold中,未标记为删除的特征信息所对应的节点,插入差集Sd(也即本发明实施例一中所述的第二集合)中。
操作340、利用差集,计算第一DOM树和第二DOM树之间的结构差异度(设为diffhierarchy)。
在本实施例中,操作340具体包括:
分别针对差集Sd中的各个节点:按照公式Q=q1(h)+q2(n),计算节点的结构差异权值Q;
对计算得到的各个结构差异权值进行求和运算;
将求和运算结果与第一DOM树中节点的总个数的比值,作为第一DOM树与第二DOM树之间的结构差异度diffhierarchy。
其中,结构差异权值Q为大于0,且小于或等于1的数值,q1(h)为以节点的结构信息中的节点高度h为变量的第一函数,q2(n)为以节点的结构信息中的子节点数目n为变量的第二函数。
操作350、利用交集,计算第一DOM树和第二DOM树之间的节点属性差异度(设为diffattributes)。
在本实施例中,操作350具体包括:
分别针对交集Spair中的各个节点对,计算节点对的属性信息的子差异度,其中子差异度为大于0,且小于或等于1的数值;
对计算得到的各个子差异度进行加权求和;
按照如下公式,确定第一DOM树与第二DOM树之间的节点属性差异度diffattributes:
diffattributes=(x11+x12)/number1
其中,x11为加权求和结果;x12为差集Sd中节点的个数,number1为第一DOM树中的节点的总个数。
操作360、根据结构差异度和节点属性差异度,确定第一界面布局文件与第二界面布局文件之间的兼容度。
在本实施例中,可预先设定结构差异度和节点属性差异度各自所占的比重分别为:Wh、Wa。其中,Wh+Wa=1,则最终确定的两界面布局文件的总差异度为:diff=Wh*diffhierarchy+Wa*diffattributes,两界面布局文件的兼容度compatible为:compatible=1-diff。
在现有技术中,一种主流的兼容度计算方法是基于树的编辑距离方法,该方法虽然能够获得较为准确的结果,但其对比的仅仅是新旧版本界面布局文件之间的相似程度,而对比界面则需要的是新界面对旧界面的兼容程度,而且编辑距离运行速度较慢。基于文本内容的对比方法,虽然速度很快,但没有考虑到结构问题,准确度很低。另外,有很多算法同时考虑到了文档结构和节点属性,但是这些算法通常是通过逐一比对两文档对象模型树中不同节点在文档结构属性和节点属性上的差异度,进而根据比对结果,来确定两界面布局文件间的差异度的方案,显然其运行速度中等,且求出的兼容度的准确率也相对较低。
而本实施例提供的技术方案,在获取到待比对的两界面布局文件的DOM树之后,会先按照到根节点的路径,对两DOM树中的节点进行分类:将其中路径相同的节点对划分为一类,插入设定交集集合中;将其中一个DOM树中未在交集集合中的节点,划分为另一类,插入差集集合中。由于交集集合中的节点对在文档结构上的差异度为0,差集集合中的节点在属性信息上必然不具备兼容性,进而可仅根据差集集合中节点的结构信息,来计算两DOM树间的结构差异度,根据交集集合中节点对的属性信息以及差集结合中的节点个数,来计算两DOM树间的节点属性差异度,从而可以提高兼容度确定结果的准确率及其运行速度。
实施例四
图4A为本发明实施例四提供的一种确定界面布局兼容度的装置的结构示意图。参见图4A,该装置的具体结构如下:
文档对象模型树获取模块41,用于获取第一界面布局文件的第一文档对象模型树,以及第二界面布局文件的第二文档对象模型树;
节点分类模块42,用于将所述第一文档对象模型树和所述第二文档对象模型树中的所有节点,按照到根节点的路径进行分类;
兼容度确定模块43,用于根据所述节点分类模块42得到的分类结果,确定所述第一界面布局文件与所述第二界面布局文件之间的兼容度。
示例性的,所述节点分类模块42,具体用于:
确定所述第一文档对象模型树中与所述第二文档对象模型树中到根节点的路径相同的节点,并将所确定的具有相同路径的节点作为一个节点对,添加至预设的第一集合;
将所述第一文档对象模型树中不包含在所述第一集合中的节点,添加至预设的第二集合;
其中,所述第一集合和第二集合属于不同的节点类别。
示例性的,所述兼容度确定模块43,包括:
节点属性差异度计算单元431,用于利用所述第一集合中的节点对的属性信息,计算所述第一文档对象模型树与所述第二文档对象模型树之间的节点属性差异度;
结构差异度计算单元432,用于利用所述第二集合中的节点的结构信息,计算所述第一文档对象模型树与所述第二文档对象模型树之间的结构差异度;
兼容度得到单元433,用于根据所述节点属性差异度和所述结构差异度,确定所述第一界面布局文件与所述第二界面布局文件之间的兼容度。
示例性的,所述节点属性差异度计算单元431(如图4B所示),包括:
子差异度计算子单元4311,用于分别针对所述第一集合中的各个节点对,计算节点对的属性信息的子差异度,其中所述子差异度为大于0,且小于或等于1的数值;
加权求和计算子单元4312,用于对所述子差异度计算子单元4311计算得到的各个子差异度进行加权求和;
节点属性差异度确定子单元4313,用于根据所述加权求和计算子单元4312得到的加权求和结果,以及所述第二集合中节点的个数,确定所述第一文档对象模型树与所述第二文档对象模型树之间的节点属性差异度。
示例性的,所述加权求和计算子单元4312,具体用于:
生成与所述子差异度计算子单元4311计算得到的各个子差异度对应的加权系数,其中加权系数是根据计算子差异度时对应的节点对中属于所述第一文档对象模型树的节点的结构信息得到的系数;
将所述子差异度计算子单元4311计算得到的各个子差异度乘以对应的加权系数,并进行求和。
示例性的,所述节点属性差异度确定子单元4313,具体用于:
按照如下公式,确定所述第一文档对象模型树与所述第二文档对象模型树之间的节点属性差异度Diff1:
Diff1=(x11+x12)/number1
其中,所述x11为加权求和结果;x12为所述第二集合中节点的个数,number1为所述第一文档对象模型树中的节点的总个数。
示例性的,所述结构差异度计算单元432,具体用于:
分别针对所述第二集合中的各个节点,根据节点的结构信息,计算节点的结构差异权值,其中所述结构差异权值为大于0,且小于或等于1的数值;
对计算得到的各个结构差异权值进行求和运算;
将求和运算结果与所述第一文档对象模型树中节点的总个数的比值,作为所述第一文档对象模型树与所述第二文档对象模型树之间的结构差异度。
在上述技术方案的基础上,所述结构信息包括:节点高度和子节点数目。
所述第一界面布局文件为旧版本的智能手机软件中的界面布局文件,所述第二界面布局文件为新版本的智能手机软件中的界面布局文件。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (14)
1.一种确定界面布局兼容度的方法,其特征在于,包括:
获取第一界面布局文件的第一文档对象模型树,以及第二界面布局文件的第二文档对象模型树;
确定所述第一文档对象模型树中与所述第二文档对象模型树中到根节点的路径相同的节点,并将所确定的具有相同路径的节点作为一个节点对,添加至预设的第一集合;将所述第一文档对象模型树中不包含在所述第一集合中的节点,添加至预设的第二集合;其中,所述第一集合和第二集合属于不同的节点类别;
利用所述第一集合中的节点对的属性信息,计算所述第一文档对象模型树与所述第二文档对象模型树之间的节点属性差异度;
利用所述第二集合中的节点的结构信息,计算所述第一文档对象模型树与所述第二文档对象模型树之间的结构差异度;
根据所述节点属性差异度和所述结构差异度,确定所述第一界面布局文件与所述第二界面布局文件之间的兼容度。
2.根据权利要求1所述的方法,其特征在于,利用所述第一集合中的节点对的属性信息,计算所述第一文档对象模型树与所述第二文档对象模型树之间的节点属性差异度,包括:
分别针对所述第一集合中的各个节点对,计算节点对的属性信息的子差异度,其中所述子差异度为大于0,且小于或等于1的数值;
对计算得到的各个子差异度进行加权求和;
根据加权求和结果,以及所述第二集合中节点的个数,确定所述第一文档对象模型树与所述第二文档对象模型树之间的节点属性差异度。
3.根据权利要求2所述的方法,其特征在于,对计算得到的各个子差异度进行加权求和,包括:
生成与计算得到的各个子差异度对应的加权系数,其中加权系数是根据计算子差异度时对应的节点对中属于所述第一文档对象模型树的节点的结构信息得到的系数;
将计算得到的各个子差异度乘以对应的加权系数,并进行求和。
4.根据权利要求2所述的方法,其特征在于,根据加权求和结果,以及所述第二集合中节点的个数,确定所述第一文档对象模型树与所述第二文档对象模型树之间的节点属性差异度,包括:
按照如下公式,确定所述第一文档对象模型树与所述第二文档对象模型树之间的节点属性差异度Diff1:
Diff1=(x11+x12)/number1
其中,所述x11为加权求和结果;x12为所述第二集合中节点的个数,number1为所述第一文档对象模型树中的节点的总个数。
5.根据权利要求1所述的方法,其特征在于,利用所述第二集合中的节点的结构信息,计算所述第一文档对象模型树与所述第二文档对象模型树之间的结构差异度,包括:
分别针对所述第二集合中的各个节点,根据节点的结构信息,计算节点的结构差异权值,其中所述结构差异权值为大于0,且小于或等于1的数值;
对计算得到的各个结构差异权值进行求和运算;
将求和运算结果与所述第一文档对象模型树中节点的总个数的比值,作为所述第一文档对象模型树与所述第二文档对象模型树之间的结构差异度。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述结构信息包括:节点高度和子节点数目。
7.根据权利要求1-5中任一项所述的方法,其特征在于,所述第一界面布局文件为旧版本的智能手机软件中的界面布局文件,所述第二界面布局文件为新版本的智能手机软件中的界面布局文件。
8.一种确定界面布局兼容度的装置,其特征在于,包括:
文档对象模型树获取模块,用于获取第一界面布局文件的第一文档对象模型树,以及第二界面布局文件的第二文档对象模型树;
节点分类模块,用于确定所述第一文档对象模型树中与所述第二文档对象模型树中到根节点的路径相同的节点,并将所确定的具有相同路径的节点作为一个节点对,添加至预设的第一集合;将所述第一文档对象模型树中不包含在所述第一集合中的节点,添加至预设的第二集合;其中,所述第一集合和第二集合属于不同的节点类别;
节点属性差异度计算单元,用于利用所述第一集合中的节点对的属性信息,计算所述第一文档对象模型树与所述第二文档对象模型树之间的节点属性差异度;
结构差异度计算单元,用于利用所述第二集合中的节点的结构信息,计算所述第一文档对象模型树与所述第二文档对象模型树之间的结构差异度;
兼容度得到单元,用于根据所述节点属性差异度和所述结构差异度,确定所述第一界面布局文件与所述第二界面布局文件之间的兼容度。
9.根据权利要求8所述的装置,其特征在于,所述节点属性差异度计算单元,包括:
子差异度计算子单元,用于分别针对所述第一集合中的各个节点对,计算节点对的属性信息的子差异度,其中所述子差异度为大于0,且小于或等于1的数值;
加权求和计算子单元,用于对所述子差异度计算子单元计算得到的各个子差异度进行加权求和;
节点属性差异度确定子单元,用于根据所述加权求和计算子单元得到的加权求和结果,以及所述第二集合中节点的个数,确定所述第一文档对象模型树与所述第二文档对象模型树之间的节点属性差异度。
10.根据权利要求9所述的装置,其特征在于,所述加权求和计算子单元,具体用于:
生成与所述子差异度计算子单元计算得到的各个子差异度对应的加权系数,其中加权系数是根据计算子差异度时对应的节点对中属于所述第一文档对象模型树的节点的结构信息得到的系数;
将所述子差异度计算子单元计算得到的各个子差异度乘以对应的加权系数,并进行求和。
11.根据权利要求9所述的装置,其特征在于,所述节点属性差异度确定子单元,具体用于:
按照如下公式,确定所述第一文档对象模型树与所述第二文档对象模型树之间的节点属性差异度Diff1:
Diff1=(x11+x12)/number1
其中,所述x11为加权求和结果;x12为所述第二集合中节点的个数,number1为所述第一文档对象模型树中的节点的总个数。
12.根据权利要求8所述的装置,其特征在于,所述结构差异度计算单元,具体用于:
分别针对所述第二集合中的各个节点,根据节点的结构信息,计算节点的结构差异权值,其中所述结构差异权值为大于0,且小于或等于1的数值;
对计算得到的各个结构差异权值进行求和运算;
将求和运算结果与所述第一文档对象模型树中节点的总个数的比值,作为所述第一文档对象模型树与所述第二文档对象模型树之间的结构差异度。
13.根据权利要求8-12中任一项所述的装置,其特征在于,所述结构信息包括:节点高度和子节点数目。
14.根据权利要求8-12中任一项所述的装置,其特征在于,所述第一界面布局文件为旧版本的智能手机软件中的界面布局文件,所述第二界面布局文件为新版本的智能手机软件中的界面布局文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510137051.3A CN104750609B (zh) | 2015-03-26 | 2015-03-26 | 确定界面布局兼容度的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510137051.3A CN104750609B (zh) | 2015-03-26 | 2015-03-26 | 确定界面布局兼容度的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104750609A CN104750609A (zh) | 2015-07-01 |
CN104750609B true CN104750609B (zh) | 2018-01-19 |
Family
ID=53590341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510137051.3A Expired - Fee Related CN104750609B (zh) | 2015-03-26 | 2015-03-26 | 确定界面布局兼容度的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104750609B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874173B (zh) * | 2015-12-10 | 2020-07-24 | 阿里巴巴集团控股有限公司 | 页面模板的测试方法和装置 |
CN107665187A (zh) * | 2016-07-28 | 2018-02-06 | 百度在线网络技术(北京)有限公司 | 一种判断移动设备应用界面是否发生变化的方法和装置 |
CN116802568B (zh) * | 2021-02-10 | 2024-09-13 | 三菱电机株式会社 | 存储部、画面数据创建装置及画面数据创建方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101876995A (zh) * | 2009-12-18 | 2010-11-03 | 南开大学 | 一种计算xml文档相似度的方法 |
CN102521325A (zh) * | 2011-12-02 | 2012-06-27 | 西北工业大学 | 基于频繁关联标签序列的xml结构相似度度量方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090112901A1 (en) * | 2007-03-08 | 2009-04-30 | Michel Friedman | Software, Systems and Methods for Modifying XML Data Structures |
-
2015
- 2015-03-26 CN CN201510137051.3A patent/CN104750609B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101876995A (zh) * | 2009-12-18 | 2010-11-03 | 南开大学 | 一种计算xml文档相似度的方法 |
CN102521325A (zh) * | 2011-12-02 | 2012-06-27 | 西北工业大学 | 基于频繁关联标签序列的xml结构相似度度量方法 |
Non-Patent Citations (1)
Title |
---|
XML文档结构相似测度研究;闫利国等;《计算机应用研究》;20060301(第3期);第44-46页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104750609A (zh) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5092165B2 (ja) | データ構築方法とシステム | |
TW202029079A (zh) | 異常群體識別方法及裝置 | |
CN107077463A (zh) | 远程监督关系提取器 | |
CN103457975B (zh) | 获取地图兴趣点评价数据的方法和装置 | |
CN109582799A (zh) | 知识样本数据集的确定方法、装置及电子设备 | |
CN114510611B (zh) | 一种构建元数据血缘图谱的方法、装置及相关设备 | |
CN103873318B (zh) | 一种网站自动化测试方法及自动化测试系统 | |
BR112012011091B1 (pt) | método e aparelho para extração e avaliação de qualidade de palavra | |
US10853732B2 (en) | Constructing new formulas through auto replacing functions | |
US11640422B2 (en) | Machine resolution of multi-context acronyms | |
CN104750609B (zh) | 确定界面布局兼容度的方法及装置 | |
CN111353838A (zh) | 自动化校验商品类目的方法和装置 | |
CN109408502A (zh) | 一种数据标准处理方法、装置及其存储介质 | |
CN104133870A (zh) | 一种网页相似度计算方法及装置 | |
CN112257959A (zh) | 用户风险预测方法、装置、电子设备及存储介质 | |
CN103870541A (zh) | 社交网络用户兴趣挖掘方法和系统 | |
US20140108439A1 (en) | Interest Expansion Using A Taxonomy | |
US11023465B2 (en) | Cross-asset data modeling in multi-asset databases | |
CN110363206A (zh) | 数据对象的聚类、数据处理及数据识别方法 | |
CN109828965B (zh) | 一种数据处理的方法及电子设备 | |
CN104102662A (zh) | 一种用户兴趣偏好相似度确定方法及装置 | |
CN104346174B (zh) | 一种在线矢量图建模过程的描述与重现方法 | |
CN105468672A (zh) | 截取网页局部区域css样式的方法和系统 | |
CN104317903B (zh) | 章节式文本的章节完整性的识别方法和装置 | |
CN105447020B (zh) | 一种确定业务对象关键词的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Patentee after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Patentee before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. |
|
CP01 | Change in the name or title of a patent holder | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180119 |
|
CF01 | Termination of patent right due to non-payment of annual fee |