CN103412819B - 一种基于关联度分析的文档转换器测试方法及装置 - Google Patents
一种基于关联度分析的文档转换器测试方法及装置 Download PDFInfo
- Publication number
- CN103412819B CN103412819B CN201310380461.1A CN201310380461A CN103412819B CN 103412819 B CN103412819 B CN 103412819B CN 201310380461 A CN201310380461 A CN 201310380461A CN 103412819 B CN103412819 B CN 103412819B
- Authority
- CN
- China
- Prior art keywords
- path
- degree
- function point
- association
- test
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种基于关联度分析的文档转换器测试方法及装置,其分析文档转换器的测试用例的底层XML片段,并用功能点路径表示测试用例中所有最小粒度功能点MPF的XML片段;以参考路径为基准,对功能点路径进行关联度分析,给出了相应的关联度计算方法及关联度指标确定方法,依据最终确定的关联度指标和设置的关联度阈值划分测试用例优先级,优先测试高级别的用例,约简无关联的用例;基于关联度指标建立功能模块关联图,并同时建立测试与开发的高效反馈机制。本发明简化了测试过程,并保证了测试质量品质,同时有利于提高测试效率。
Description
技术领域
本发明涉及软件测试领域的文档转换器测试技术,特别是涉及一种基于关联度分析的文档转换器测试方法及装置。
背景技术
由于目前多种文档格式标准共存,文档在不同办公软件中信息资源共享的文档互操作问题逐渐成为了研究热点。文档转换器是实现文档互操作的有效途径,例如UOF/OOXML文档转换器的目的就是实现中国国家文档格式标准UOF与国际标准OfficeOpenXML之间的互操作。
在文档转换器的实际测试工作中经常遇到这样的问题:对软件进行大规模测试后,需要修改出错的模块、添加新的模块或删除无用的模块,而这种改动势必影响程序的其他部分,比如产生不一致性错误或导致软件未被修改的部分产生新的错误。如果采用传统的测试方法,就要对程序重新进行大规模测试,且这种将所有的测试用例都重新运行一遍是费时费力和效率低下的。若选取部分用例进行测试,则会担心测试的充分性与测试质量的问题。特别是在项目的中后期,频繁地版本变更与回归测试,更需要高效地测试工作效率与高品质的测试质量。
另外,在实际的测试项目中会发现测试功能点之间存在一定的关联,比如预定义图形的线型与文本框边框线型,图形的填充图案与文字表单元格的填充图案等,虽然不是相同的功能点,但都关注线型或者填充图案的问题。因此,如果加强关联性的分析与检测来实现文档转换器软件缺陷的快速跟踪和定位,可以在一定程度上消除软件维护和软件修改后回归测试的盲目性,以提高工作效率。
因此,考虑到采用加强关联性的分析与检测来实现文档转换器软件缺陷的快速跟踪和定位,本发明提出了一种基于关联度分析的文档转换器测试方法及装置。
发明内容
本发明所要解决的技术问题是提供一种基于关联度分析的文档转换器测试方法及装置,用于解决现有文档转换器测试方案存在的测试过程繁琐、测试质量品质低、测试效率低等问题,以实现文档转换器软件缺陷的快速跟踪与定位。
本发明解决上述技术问题的技术方案如下:一种基于关联度分析的文档转换器测试方法,包括:
步骤1,分析文档转换器的测试用例的底层XML片段,并用功能点路径表示测试用例中所有最小粒度功能点MPF(MinimunParticleFunction,即为最小粒度功能点)的XML片段;
步骤2,选定一条功能点路径pathm作为参考路径,计算任一条功能点路径pathn与参考路径pathm间的路径关联度DS(pathn,pathm):
式中,Nn和Nm分别表示功能点路径pathn和参考路径pathm上的节点集;
步骤3,从功能点路径pathn的叶子节点沿着路径表达式往上层追溯,直到存在有祖先节点属于参考路径节点集Nm时停止,将中间经过的节点个数作为pathn到pathm的距离Dis(pathn,pathm);
步骤4,功能点路径pathn和参考路径pathm对应的测试用例集之间的关联度DE(pathn,pathm)为:若0≤Dis(pathn,pathm)<1,取DE(pathn,pathm)为1;若1≤Dis(pathn,pathm)≤Depth(pn),表示测试用例间的关联度最高,其中Depth(pn)为功能点路径pathn的长度,则取DE(pathn,pathm)=DS(pathn,pathm);若Dis(pathn,pathm)>Depth(pn),取DE(pathn,pathm)=DS(pathn,pathm)=0;
步骤5,设置每一组测试用例集的关联度阈值,约简DE(pathn,pathm)小于关联度阈值的测试用例,并优先测试DE(pathn,pathm)值最大的测试用例。
本发明的有益效果是:本发明研究各测试用例之间的关联关系,既可以在回归测试中辅助进行测试用例的选择,也可以快速定位错误模块。其针对文档转换器测试用例集规模大的问题,提出依据测试用例关联度,基于这种关系来分析测试用例优先级划分的方法,若某一测试用例发现bug,在回归测试过程中,选取与之关联度高的用例进行复测,在保证测试效率的同时,可适当地约简测试用例集。简化了测试过程,并保证了测试质量品质,同时有利于提高测试效率。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述各功能点路径之间的关系包括:共享源点、共享终点、共享树干节点和无交点。
采用上述进一步方案的有益效果是:给出了功能点路径之间的几种关系模型,易知,当功能点路径的源点或路径重叠,说明它们有共同的祖先,当功能点路径的叶子节点重叠,说明它们在转换时的数据处理方式可能是相同的,从而为步骤2至步骤4中进行相应关联度定义提供了基础。
进一步,所述步骤2中通过矩阵的形式表示多条路径间的路径关联度。
采用上述进一步方案的有益效果是:对于多条路径,其关联关系相对复杂,采用关联度矩阵的方式来表示易于清楚地看出各路径间的关联程度。
进一步,所述步骤5中关联度阈值取为式中DEi第i条功能点路径pathi和参考路径pathm对应的测试用例集之间的关联度DE(pathi,pathm),i的取值为1至n。
采用上述进一步方案的有益效果是:关联度阈值的取值一般根据项目的实际进度和测试时间而定,不利于提高测试进度,设关联度阈值取为后,易于本领域技术人员展示工作,且若进度紧,可适当提高的值进一步缩减测试用例集,操作简单且方便。
进一步,所述文档转换器是以XML文档为底层文档的文档转换器,其包括UOF/OOXML文档转换器。
采用上述进一步方案的有益效果是:UOF文档和OOXML文档均是以XML为基础,且UOF/OOXML文档转换器的目的就是实现中国国家文档格式标准UOF与国际标准OfficeOpenXML之间的互操作,而本发明的文档转换器测试方法同时适用于以xml为底层文档的文档转换器的测试,有利于促进文档互操作技术的发展。
进一步,所述文档转换器测试还包括:根据步骤4得出的关联度DE(pathn,pathm)建立相应的功能模块,并绘制各功能模块间的关联图。
采用上述进一步方案的有益效果是:通过建立模块间的关联,就可以在某个模块被修改后根据相应的模块关联图检测与该模块相关的其它模块,以便开发人员检查这些模块是否因受到被修改模块的影响而需要做相应的修改,减少查找缺陷产生原因的盲目性,促进开发进度;也可以在测试阶段把和错误相关的模块联系起来,根据反馈的信息进行测试和维护。利用测试来推动开发的进度,符合测试驱动开发(TDD)的思想。
基于上述方法,本发明的技术方案还包括一种基于关联度分析的文档转换器测试装置,包括依次连接的功能点路径分析模块、关联度分析模块和测试用例处理模块,且所述关联度分析模块包括路径关联度计算模块、路径距离计算模块和关联度确定模块,且所述路径关联度计算模块和所述路径距离计算模块均与所述关联度确定模块连接:
所述功能点路径分析模块,用于分析文档转换器的测试用例的底层XML片段,并用功能点路径表示测试用例中所有最小粒度功能点MPF的XML片段;
所述路径关联度计算模块,用于计算任一条功能点路径pathn与参考路径pathm间的路径关联度DS(pathn,pathm):
式中,Nn和Nm分别表示功能点路径pathn和参考路径pathm上的节点集;
所述路径距离计算模块,用于从功能点路径pathn的叶子节点沿着路径表达式往上层追溯,直到存在有祖先节点属于参考路径节点集Nm时停止,将中间经过的节点个数作为pathn到pathm的距离Dis(pathn,pathm);
所述关联度确定模块,用于确定功能点路径pathn和参考路径pathm对应的测试用例集之间的关联度DE(pathn,pathm),且确定依据为:若0≤Dis(pathn,pathm)<1,取DE(pathn,pathm)为1;若1≤Dis(pathn,pathm)≤Depth(pn),表示测试用例间的关联度最高,其中Depth(pn)为功能点路径pathn的长度,则取DE(pathn,pathm)=DS(pathn,pathm);若Dis(pathn,pathm)>Depth(pn),取DE(pathn,pathm)=DS(pathn,pathm)=0;
所述测试用例处理模块,其用于约简DE(pathn,pathm)小于设置的关联度阈值的测试用例,并优先测试DE(pathn,pathm)值最大的测试用例。
进一步,所述关联度阈值设置为式中DEi第i条功能点路径pathi和参考路径pathm对应的测试用例集之间的关联度DE(pathi,pathm),i的取值为1至n。
进一步,所述文档转换器是以XML文档为底层文档的文档转换器,其包括UOF/OOXML文档转换器。
进一步,所述文档转换器测试装置还包括关联图建立模块,其连接所述关联度分析模块,用于根据得出的关联度DE(pathn,pathm)建立相应的功能模块,并绘制各功能模块间的关联图。
采用上述方案的有益效果是:本发明的文档转换器测试装置支持上述文档转换器测试方法,其有益效果与上述的文档转换器测试方法的有益效果相同,其基于模块化实现,便于构建集成化的实现装置。
附图说明
图1为本发明所述基于关联度分析的文档转换器测试方法的流程示意图;
图2为本发明所述最小粒度功能点的XML片段示意图;
图3为本发明实施例所述源点共享树的结构示意图;
图4为本发明实施例所述终点共享树的结构示意图;
图5为本发明实施例所述树干节点共享树的结构示意图;
图6为本发明实施例所述无交点功能点路径的结构示意图;
图7为本发明实施例中测试用例约简模型的结构示意图;
图8为本发明实施例中功能模块关联图的示意图;
图9为本发明所述基于关联度分析的文档转换器测试装置的结构示意图;
图10为本发明实施例的功能点路径实例示意图。
附图中,各标号所代表的部件列表如下:
1、功能点路径分析模块,2、关联度分析模块,3、测试用例处理模块,4、关联图建立模块,21、路径关联度计算模块,22、路径距离计算模块,23、关联度确定模块。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本实施例涉及一种基于关联度分析的文档转换器测试方法,包括:
步骤1,分析文档转换器的测试用例的底层XML片段,并用功能点路径表示测试用例中所有最小粒度功能点MPF的XML片段;
步骤2,选定一条功能点路径pathm作为参考路径,计算任一条功能点路径pathn与参考路径pathm间的路径关联度DS(pathn,pathm):
式中,Nn和Nm分别表示功能点路径pathn和参考路径pathm上的节点集;
步骤3,从功能点路径pathn的叶子节点沿着路径表达式往上层追溯,直到存在有祖先节点属于参考路径节点集Nm时停止,将中间经过的节点个数作为pathn到pathm的距离Dis(pathn,pathm);
步骤4,功能点路径pathn和参考路径pathm对应的测试用例集之间的关联度DE(pathn,pathm)为:若0≤Dis(pathn,pathm)<1,取DE(pathn,pathm)为1;若1≤Dis(pathn,pathm)≤Depth(pn),表示测试用例间的关联度最高,其中Depth(pn)为功能点路径pathn的长度,则取DE(pathn,pathm)=DS(pathn,pathm);若Dis(pathn,pathm)>Depth(pn),取DE(pathn,pathm)=DS(pathn,pathm)=0;
步骤5,设置每一组测试用例集的关联度阈值,约简DE(pathn,pathm)小于关联度阈值的测试用例,并优先测试DE(pathn,pathm)值最大的测试用例。
本实施例适用于是以XML文档为底层文档的文档转换器,包括UOF/OOXML文档转换器,以UOF文档为例,上述的步骤的具体实施过程可以分为以下几个部分。
一、所述步骤1的实施:功能点路径分析。
在进行功能路径分析之前,需先进行XMLSchema和XML文档形式化定义。
UOF以中文办公软件需求为出发点,采用了W3CXMLSchema作为描述语言,定义了基于XML的中文办公文档格式规范。
XMLSchema定义为
S=(E,T,A,M,root)(1)
式中E为<element>标识的元素集合,<element>是XMLSchema中的元素标签;T为类型标签标识的属性集合,对于每一个e∈E,对应有t∈T,记作(e:t),其中t::=strintfloot|t*|Ct(e:t)*),Ct代表复杂类型;A为<attribute>标识的属性集合,<attribute>是XMLSchema中的属性标签;M为模型组,共有三种:sequence、choice和all;root为根元素类型,root∈E。
本实施例所涉及的文档转器测试用例需是满足UOFSchema的XML文档,可参考现有技术定义XML文档的树结构为
T=(N,F,V,nr)(2)
式中,T为满足式(1)中S的XML树,表示为N是有限的节点集合,N=(ele,atr,{str}),ele表示有限的元素集合,atr表示有限的属性集合,str表示文本节点;树根节点nr∈N;F是N中节点到后续节点的映射,对于一个f=(n′→n)∈F,n∈N(n≠nr),n′为父节点,n为子节点;V表示赋值的集合,对于每一个叶子节点ne∈N,有v=(ne::s),s为简单类型的值。
这里,如果T的树形结构上存在节点序列(n0,n1,n2,…,nk),其中n0=nr,i∈[1,k],满足以下条件:
1)如果ni∈ele(ni-1),则ni是ni-1的直接后继元素节点;
2)如果ni∈atr(ni-1),则ni是ni-1的直接后继属性节点;
3)如果ni∈{str},则ni是文本节点,且是路径上最后一个节点,即ni=ne。
根据文档转换器测试需求规格说明,测试功能点是进行文档转换器测试用例功能点组合及统计的基本单位。将这些功能点进行进一步划分为最小粒度功能点MPF,因此可定义功能点路径来表示测试用例里的MPF的XML片段。比如,功能点“单线型”的MPF,如图2所示,可用节点与节点之间的XPath路径“/图形:图形集/图:图形_8062/图:预定义图形_8018/图:属性_801D/图:线_8057/图:线类型_8059/线型_805A”来表示。
满足UOFSchema的测试用例的功能点路径表达式定义为:
path(nk)=/n0/n1/…/nk(3)
其中i∈[1,k-1],ni∈N,n0=nr;ni有相关的类型ti::=Ct[…,ei+1:ti+1,…]。
另外,path=/n0/n1/…/ne是T1=(N1,F1,V1,nr1)的功能点路径,path′=/n0'/n1'/…/ne'是T2=(N2,F2,V2,nr2)的功能点路径,若ni=ni',ni∈N1,ni'∈N2,则称path与path’有关联。
又,功能点路径之间的关系有4中形式:共享源点、共享终点、共享树干节点和无交点。path=/n0/n1/…/ne是T1=(N1,F1,V1,nr1)功能点路径,path′=/n0'/n1'/…/ne'是T2=(N2,F2,V2,nr2)的功能点路径。当且仅当:
1)n0∈N1,n0'∈N2,n0=n0'时,构造路径之间关系的源点共享树,记作Gsm=(n0,R,N)。其中,R={(nm,nn)|nm,nn∈N}}连接Gsm中相邻的两个结点,N是路径上的节点构成的集合。源点共享树是由若干条路径组成,它们共享源点。比如5个测试功能点MPF线型_805A,MPF线颜色_8058,MPF旋转角度_804D,MPF颜色_8004,MPF类别_8019构成的源点共享树如图3所示。
2)ne∈N1,ne'∈N2,ne=ne'时,构造路径之间关系的终点共享树,记作GEM=(ne,R,N)。其中,R={(nm,nn)|nm,nn∈N}}连接GEM中相邻的两个结点,N是路径上的节点构成的集合。终点共享树也是由若干条路径组成,这些路径共享叶子节点ne,表示它们有相同的数据处理方式。比如测试功能点MPF图形填充,MPF字填充构成的终点共享树如图4所示。
3)ni∈N1-(n0∩ne),ni'∈N2-(n0'∩ne'),ni=ni'时,构造路径之间关系的树干节点共享树,记作GMM=(ne,R,N)。其中,R={(nm,nn)|nm,nn∈N}}连接GMM中相邻的两个结点,N是路径上的节点构成的集合。树干节点共享树也是由若干条路径组成,这些路径共享树干节点ni。比如测试功能点MPF图形文字粗体,MPF文字表字颜色构成的树干节点共享树如图5所示。
4)时,说明路径之间没有交点。比如测试功能点MPF线型和MPF文字表字粗体,如图6所示。
二、步骤2至步骤4的实施:关联度分析。
功能点路径分析部分指出的关联关系需用形式化的方法表述出来,并将其运用到测试方法中,根据对上文几种关系模型的分析发现,功能点路径的源点或路径重叠,说明它们有共同的祖先;功能点路径的叶子节点重叠,说明它们在转换时的数据处理方式可能是相同的。可以此来定义任一条路径pathn与参考路径pathm之间的关联度为DS(pathn,pathm)。
式中,Nn和Nm分别表示功能点路径pathn和pathm上的节点集。对于多条路径之间的关联度可用关联度矩阵来表示。式(5)所示的关联度矩阵A1表示了图3中的功能点(它们的路径表达式分别用p1,p2,p3,p4,p5来表示)之间的关联度,其中矩阵元素A1[i,j]表示DS(pi,pj)。该数值越大,说明pi和pj两条路径关联程度越紧密。
大多数的功能点具有相同的祖先节点,它们的功能点路径集对应的关系符合源点共享树。利用上述方法得到的终点共享树关联度比较低,那么会在回归测试集中约简掉这些路径对应的测试用例。在实际的项目中,也有很多的bug是由于叶子节点的取值转换错误或者丢失造成的,所以对于叶子节点有关联的路径终点共享树,需要新的分析方法提升关联度水平。
从路径表达式pathn的叶子节点沿着路径表达式往上层追溯,直到某个祖先节点属于参考路径节点集Nm时停止,中间经过的节点个数称为pathn到pathm的距离,记为Dis(pathn,pathm)。Dis(pathn,pathm)数值越大,说明pathn和pathm两条路径叶子节点之间的距离越远。
根据DS(pathn,pathm)和Dis(pathn,pathm)定义非平凡关联度DE(pathn,pathm),用来衡量功能点路径pathn和pathm之间的最终的关联度,即:若Tm和Tn分别为功能点路径pathn和pathm对应的测试用例,则Tm和Tn之间的关联度为DE(pathn,pathm)。
1)如果0≤Dis(pathn,pathm)<1,即二者共有相同的叶子节点,则令DE(pathn,pathm)为最大值1,pathn和pathm的关联度最高。
2)如果1≤Dis(pathn,pathm)≤Depth(pn),则DE(pathn,pathm)=DS(pathn,pathm)。
3)如果Dis(pathn,pathm)>Depth(pn),则DE(pathn,pathm)=DS(pathn,pathm)=0。
图3中的功能点路径之间的距离Dis(p1,p2)=2<7,Dis(p1,p5)=4<7,DE(p1,p2)=DS(p1,p2)=0.83;图4中的功能点路径(路径表达式分别用p1,p2来表示)之间的距离Dis(p1,p2)=0,则DE(p1,p2)=1。
三、步骤5的实施:测试用例约简与测试优先级。
从功能点路径的关联关系分析哪些测试用例受影响,哪些不受影响,当进行回归测试时,只需重新测试那些受修改影响的功能点的测试用例。基于关联度的测试用例约简模型将测试需求(待测功能点)、功能点路径和测试用例分为3个层次,通过不同层次间纵向和相同层次间横向的关联分析,针对受影响的测试需求进行约简,并以精简的测试需求为基础,根据功能点路径之间的关联分析修改或增加相应的测试用例,然后利用约简算法再对测试用例进行约简,从而基于关联度实现测试用例的约简。基于关联度的测试用例约简模型如图7所示。
对于一组相关联的回归测试用例,若 其中为设定的关联度阈值δ,则判定为TK的优先级高,回归测试过程中优先测试TK。对于多组测试用例集每一组用例对应有关联度阈值DEi。若第i组测试用例集中第k个用例与其参考用例的关联度DE(pathk,pathm)≥δ,则判定为TK的优先级高。δ的取值根据项目的实际进度和测试时间而定,一般设若进度紧,可适当提高δ的值,进一步缩减测试用例集。关联度为0的测试用例直接约简不测。比如有两组测试用例集,分别与其参考路径对应有关联度{0.7,0.8,0.9,0.8,0.4}、{0.3,0.2,0.1,0.3,0.1},DE1=0.72,DE2=0.2。对于第一组关联度以0.72为分界点,0.7和0.4对应的用例被约简;而第二组中关联度为0.3的用例会被优先测试,难以保证测试有效性和充分性。设定δ=0.46,关联度为0.7的用例会被优先测试,关联度低于δ的测试用例被约简,既在一定程度上保证测试充分性也能缩减测试用例集。
四、功能模块关联图
根据步骤4得出的关联度DE(pathn,pathm)建立相应的功能模块,并绘制各功能模块间的关联图。通过建立模块间的关联,就可以在某个模块被修改后根据相应的模块关联图检测与该模块相关的其它模块,以便开发人员检查这些模块是否因受到被修改模块的影响而需要做相应的修改,减少查找缺陷产生原因的盲目性,促进开发进度;也可以在测试阶段把和错误相关的模块联系起来,根据反馈的信息进行测试和维护。利用测试来推动开发的进度,符合测试驱动开发(TDD)的思想。图2中功能点的功能模块关联图如图8所示。基于此,可进一步建立测试与开发的高效反馈机制。
测试与开发之间的反馈机制定义为WP={Refactor(pi)→pi+1},。其中WTest为测试人员的活动,把测试用例集TC和功能模块关联图GD反馈给开发WP;开发人员收到测试人员的反馈信息fS,相应地修改代码pi,记作Refactor(pi),修改后的代码为pi+1,测试人员依据开发人员反馈的信息fe进行测试。
基于上述步骤1至步骤5,以及四个部分的具体实施过程,如图9所示,本实施例还给出了一种基于关联度分析的文档转换器测试装置,包括依次连接的功能点路径分析模块1、关联度分析模块2和测试用例处理模块3,且所述关联度分析模块2包括路径关联度计算模块21、路径距离计算模块22和关联度确定模块23,且所述路径关联度计算模块21和所述路径距离计算模块22均与所述关联度确定模块23连接:
所述功能点路径分析模块1,用于分析文档转换器的测试用例的底层XML片段,并用功能点路径表示测试用例中所有最小粒度功能点MPF的XML片段;
所述路径关联度计算模块21,用于计算任一条功能点路径pathn与参考路径pathm间的路径关联度DS(pathn,pathm):
式中,Nn和Nm分别表示功能点路径pathn和参考路径pathm上的节点集;
所述路径距离计算模块22,用于从功能点路径pathn的叶子节点沿着路径表达式往上层追溯,直到存在有祖先节点属于参考路径节点集Nm时停止,将中间经过的节点个数作为pathn到pathm的距离Dis(pathn,pathm);
所述关联度确定模块23,用于确定功能点路径pathn和参考路径pathm对应的测试用例集之间的关联度DE(pathn,pathm),且确定依据为:若0≤Dis(pathn,pathm)<1,取DE(pathn,pathm)为1;若1≤Dis(pathn,pathm)≤Depth(pn),表示测试用例间的关联度最高,其中Depth(pn)为功能点路径pathn的长度,则取DE(pathn,pathm)=DS(pathn,pathm);若Dis(pathn,pathm)>Depth(pn),取DE(pathn,pathm)=DS(pathn,pathm)=0;
所述测试用例处理模块3,其用于约简DE(pathn,pathm)小于设置的关联度阈值的测试用例,并优先测试DE(pathn,pathm)值最大的测试用例。
所述文档转换器测试装置还包括关联图建立模块4,其连接所述关联度分析模块2,用于根据得出的关联度DE(pathn,pathm)建立相应的功能模块,并绘制各功能模块间的关联图。
对于如图9所示的装置,其具体实施过程及注意细节参考上述对文档转换器测试方法的四个方面的实施过程的描述。
本实施例关键在于关联度分析这部分,其算法涉及到基于分治思想的大量字符串匹配,实现较为复杂,数据点离散度较高。用形式化语言描述的关联度分析模型如下:
XMLCollectionf:表示若干个(f=1…n)待测功能点的XML文档集合
parserXML:解析功能点XML代码
pathm:参考路径
pathf(f=1…n):待测功能点路径集中的第f条路径
parserpath:解析功能点路径,获得路径上的节点
pathCollection:优化后的待测功能点路径集
ColNm:参考路径pathm上的节点集,按照所在XML文档中的结构位置顺序存储节点
ColNf(f=1…n):待测路径pathk上的节点集,按照所在XML文档中的结构位置顺序存储节点
count:ColNf(f=1…n)与ColNm的交点个数
culRelationf:计算第f条路径与参考路径之间的关联度
为了对关联度分析方法的有效性进行验证,以UOF文档字处理部分为例进行了实验,并对实验结果进行了分析。根据实际项目,文档转换器测试用例的设计以办公文档的功能点为基础。仅字处理一项,其常用的二级功能点就达200个之多。对于每个功能点的设计不仅需考虑文档标准(Schema)规定的属性值取值范围或枚举值(每个功能点约有4种取值),还需要考虑文档格式的双向转换。仅字处理部分所操作的测试用例约合200*4*2=1600个。测试用例数量繁多,种类复杂。
选取15个MPF执行手工测试,MPF预定义图形填充图案类型和MPF文字表填充图案类型出现了bug,这2个功能点有一定的关联。这15个MPF所对应的15条path如图10所示。
首先把出现bug的MPF预定义图形填充图案类型对应的路径p6当作参考路径。根据上文的方案,利用下列算法得到:
DS(pathi,p6)=[0.570.570.290.290.4310.860.860.290.290.290000]
Dis(pathi,p6)=[33671011011∞∞∞]
归一化得到非平凡关联度:
DE(pathi,p6)=[0.570.570.290.290.4310.860.8610.290.290000]
由DS(pathi,p6)的取值可得MPF预定义图形填充图案前景色和MPF预定义图形填充图案背景色与MPF预定义图形填充图案类型的关联度最高。由Dis(pathi,p6)的各个取值可得MPF文字表图案填充 类型与MPF预定义图形填充图案类型叶子节点距离最近。
根据关联度DE(pathi,p6)划分测试用例优先级并约简关联度为0的测试用例,得到的测试用例集如表1所示。
表1测试用例集实例
经过优先级划分后的测试用例数量为7,相比原来的测试用例集,数量减少53.33%。易知,当功能点“预定义图形填充图案类型”出现bug,并修改代码后,在回归测试过程中,仅测试与该功能点关联度高的功能点的用例,这在一定程度上提高了测试效率。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于关联度分析的文档转换器测试方法,其特征在于,包括:
步骤1,分析文档转换器的测试用例的底层XML片段,并用功能点路径表示测试用例中所有最小粒度功能点MPF的XML片段;
步骤2,选定一条功能点路径pathm作为参考路径,计算任一条功能点路径pathn与参考路径pathm间的路径关联度DS(pathn,pathm):
式中,Nn和Nm分别表示功能点路径pathn和参考路径pathm上的节点集;
步骤3,从功能点路径pathn的叶子节点沿着路径表达式往上层追溯,直到存在有祖先节点属于参考路径节点集Nm时停止,将中间经过的节点个数作为pathn到pathm的距离Dis(pathn,pathm);
步骤4,功能点路径pathn和参考路径pathm对应的测试用例集之间的关联度DE(pathn,pathm)为:若0≤Dis(pathn,pathm)<1,取DE(pathn,pathm)为1;若1≤Dis(pathn,pathm)≤Depth(pn),表示测试用例间的关联度最高,其中Depth(pn)为功能点路径pathn的长度,则取DE(pathn,pathm)=DS(pathn,pathm);若Dis(pathn,pathm)>Depth(pn),取DE(pathn,pathm)=DS(pathn,pathm)=0;
步骤5,设置每一组测试用例集的关联度阈值,约简DE(pathn,pathm)小于关联度阈值的测试用例,并优先测试DE(pathn,pathm)值最大的测试用例。
2.根据权利要求1所述的文档转换器测试方法,其特征在于,各功能点路径之间的关系包括:共享源点、共享终点、共享树干节点和无交点。
3.根据权利要求1所述的文档转换器测试方法,其特征在于,所述步骤2中通过矩阵的形式表示多条路径间的路径关联度。
4.根据权利要求1所述的文档转换器测试方法,其特征在于,所述步骤5中关联度阈值取为式中DEi表示第i条功能点路径pathi和参考路径pathm对应的测试用例集之间的关联度DE(pathi,pathm),i的取值为1至n。
5.根据权利要求1所述的文档转换器测试方法,其特征在于,所述文档转换器是以XML文档为底层文档的文档转换器,其包括UOF/OOXML文档转换器。
6.根据权利要求1至5中任一所述的文档转换器测试方法,其特征在于,还包括:根据步骤4得出的关联度DE(pathn,pathm)建立相应的功能模块间的关联关系,并绘制各功能模块间的关联图。
7.一种基于关联度分析的文档转换器测试装置,其特征在于,包括依次连接的功能点路径分析模块、关联度分析模块和测试用例处理模块,且所述关联度分析模块包括路径关联度计算模块、路径距离计算模块和关联度确定模块,且所述路径关联度计算模块和所述路径距离计算模块均与所述关联度确定模块连接:
所述功能点路径分析模块,用于分析文档转换器的测试用例的底层XML片段,并用功能点路径表示测试用例中所有最小粒度功能点MPF的XML片段;
所述路径关联度计算模块,用于计算任一条功能点路径pathn与参考路径pathm间的路径关联度DS(pathn,pathm):
式中,Nn和Nm分别表示功能点路径pathn和参考路径pathm上的节点集;
所述路径距离计算模块,用于从功能点路径pathn的叶子节点沿着路径表达式往上层追溯,直到存在有祖先节点属于参考路径节点集Nm时停止,将中间经过的节点个数作为pathn到pathm的距离Dis(pathn,pathm);
所述关联度确定模块,用于确定功能点路径pathn和参考路径pathm对应的测试用例集之间的关联度DE(pathn,pathm),且确定依据为:若0≤Dis(pathn,pathm)<1,取DE(pathn,pathm)为1;若1≤Dis(pathn,pathm)≤Depth(pn),表示测试用例间的关联度最高,其中Depth(pn)为功能点路径pathn的长度,则取DE(pathn,pathm)=DS(pathn,pathm);若Dis(pathn,pathm)>Depth(pn),取DE(pathn,pathm)=DS(pathn,pathm)=0;
所述测试用例处理模块,其用于约简DE(pathn,pathm)小于设置的关联度阈值的测试用例,并优先测试DE(pathn,pathm)值最大的测试用例。
8.根据权利要求7所述的文档转换器测试装置,其特征在于,所述关联度阈值设置为式中DEi第i条功能点路径pathi和参考路径pathm对应的测试用例集之间的关联度DE(pathi,pathm),i的取值为1至n。
9.根据权利要求7所述的文档转换器测试装置,其特征在于,所述文档转换器是以XML文档为底层文档的文档转换器,其包括UOF/OOXML文档转换器。
10.根据权利要求7至9中任一所述的文档转换器测试装置,其特征在于,所述文档转换器测试装置还包括关联图建立模块,其连接所述关联度分析模块,用于根据得出的关联度DE(pathn,pathm)建立相应的功能模块间的关联关系,并绘制各功能模块间的关联图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310380461.1A CN103412819B (zh) | 2013-08-28 | 2013-08-28 | 一种基于关联度分析的文档转换器测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310380461.1A CN103412819B (zh) | 2013-08-28 | 2013-08-28 | 一种基于关联度分析的文档转换器测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103412819A CN103412819A (zh) | 2013-11-27 |
CN103412819B true CN103412819B (zh) | 2016-01-27 |
Family
ID=49605832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310380461.1A Expired - Fee Related CN103412819B (zh) | 2013-08-28 | 2013-08-28 | 一种基于关联度分析的文档转换器测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103412819B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095060A (zh) * | 2014-04-15 | 2015-11-25 | 富士通株式会社 | 利用规则集网络生成测试用例的装置和方法 |
CN105468517B (zh) * | 2015-11-10 | 2018-03-02 | 中国矿业大学 | 一种基于黑盒测试用例约简的统计错误定位方法 |
US9779013B2 (en) * | 2016-01-12 | 2017-10-03 | Wipro Limited | Method and system for optimizing a test suite comprising plurality of test cases |
CN109032946B (zh) * | 2018-07-27 | 2022-03-18 | 厦门集微科技有限公司 | 一种测试方法和装置、计算机可读存储介质 |
CN114090442B (zh) * | 2021-11-22 | 2023-01-31 | 安徽继远检验检测技术有限公司 | 一种电力云测试管理平台自动化测试方法及系统 |
CN116094974A (zh) * | 2023-01-28 | 2023-05-09 | 北京京航计算通讯研究所 | 网络通信参数配置测试用例生成方法、装置及测试方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7945852B1 (en) * | 2006-05-19 | 2011-05-17 | Washington State University Research Foundation | Strategies for annotating digital maps |
CN102289407A (zh) * | 2011-09-06 | 2011-12-21 | 北京信息科技大学 | 文档格式转换自动测试方法及其装置 |
CN102622334A (zh) * | 2012-04-20 | 2012-08-01 | 北京信息科技大学 | 多线程环境下并行xslt转换方法和装置 |
-
2013
- 2013-08-28 CN CN201310380461.1A patent/CN103412819B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7945852B1 (en) * | 2006-05-19 | 2011-05-17 | Washington State University Research Foundation | Strategies for annotating digital maps |
CN102289407A (zh) * | 2011-09-06 | 2011-12-21 | 北京信息科技大学 | 文档格式转换自动测试方法及其装置 |
CN102622334A (zh) * | 2012-04-20 | 2012-08-01 | 北京信息科技大学 | 多线程环境下并行xslt转换方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103412819A (zh) | 2013-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103412819B (zh) | 一种基于关联度分析的文档转换器测试方法及装置 | |
CN103412853B (zh) | 一种针对文档转换器的测试用例自动生成方法 | |
Zhang et al. | Reverse engineering complex join queries | |
CN103970729B (zh) | 一种基于语义类的多主题提取方法 | |
CN104598635A (zh) | 一种基于xml描述的复杂文档自动生成方法 | |
CN102289407B (zh) | 文档格式转换自动测试方法 | |
CN101501684A (zh) | 包装器生成和模板检测的联合优化 | |
CN102456050B (zh) | 从网页中抽取数据的方法和装置 | |
CN102270137B (zh) | 一种获取体系结构描述语言的方法和一种建模工具 | |
CN101833499A (zh) | 一种基于可达树的软件测试验证方法 | |
CN102982010A (zh) | 提取文档结构的方法和装置 | |
Furche et al. | Opal: automated form understanding for the deep web | |
CN109299200A (zh) | 将数据模型转换为数据库的方法、装置及设备 | |
Ciucanu et al. | Learning schemas for unordered XML | |
Cunha et al. | From relational ClassSheets to UML+ OCL | |
CN102968431A (zh) | 一种基于依存树的中文实体关系挖掘的控制装置 | |
CN110162297A (zh) | 一种源代码段自然语言描述自动生成方法及系统 | |
CN105808438A (zh) | 一种基于函数调用路径的测试用例复用方法 | |
CN110502667A (zh) | 基于dom框架的odx文档解析和生成技术 | |
CN104516813A (zh) | 网络页面的测试节点的选取方法和装置 | |
CN103631783A (zh) | 一种前端页面的生成方法及系统 | |
Bien | The simulator: an engine to streamline simulations | |
Cunha et al. | Extension and implementation of classsheet models | |
CN102855278B (zh) | 一种仿真方法和系统 | |
Yu et al. | Constructing traceability between features and requirements for software product line engineering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160127 Termination date: 20160828 |