一种基于层次聚类的相似执行路径生成方法技术

技术编号:17561646 阅读:63 留言:0更新日期:2018-03-28 12:11
本发明专利技术提供一种基于层次聚类的相似执行路径生成方法,包括下列步骤:1)路径条件分析;2)聚类数据构造;3)层次聚类计算;4)相似路径生成。本发明专利技术解决了目前的路径测试执行之前难以识别程序中不可达路径的问题,该发明专利技术不仅可以识别出程序中的不可达路径,还极大的提高了路径可达性的检测效率,有效避免了路径测试过程中测试资源的浪费,从而提高软件测试的效率,最终更好的控制了软件产品的质量。

A method of generating similar execution path based on hierarchical clustering

The invention provides a method for generating similar execution paths based on hierarchical clustering, including the following steps: 1) path condition analysis; 2) clustering data construction; 3) hierarchical clustering computation; 4) similar path generation. The invention solves the problems of current path test before the execution is difficult to identify infeasible paths in the program, the invention can not only identify the path in the program can not reach, but also greatly improves the detection efficiency of path reachability, effectively avoids resource waste in the process of testing the test path, so as to improve the efficiency of software testing. Better control of the quality of the final software product.

【技术实现步骤摘要】
一种基于层次聚类的相似执行路径生成方法
本专利技术属于软件测试
,且特别是有关于一种基于层次聚类的相似执行路径生成方法。
技术介绍
随着科技的发展,社会的进步,软件已经被广泛应用到各个领域。在很多领域的应用场景中,软件的质量与可靠性至关重要。软件测试是保证软件质量和可靠性的重要手段。软件测试可以分为功能测试和结构测试两大类。前者又称为黑盒测试,旨在通过特定的测试用例验证软件的功能是否达到设计要求或者是否可以正常运作。后者又被称为白盒测试,根据特定的准则对软件的代码进行测试,其中常见的准则包括语句覆盖,路径覆盖,条件覆盖,分支覆盖等。基于路径覆盖的测试是常用的软件测试技术之一。路径覆盖旨在通过执行特定的测试用例,使得软件按照测试人员期望的路径执行。路径覆盖测试可以发现程序中某条执行路径中的错误。路径覆盖测试存在两个关键问题:一是测试用例的生成问题,二是不可达路径的检测问题。如果测试人员期望覆盖的路径是一条不可达路径,则针对该路径做测试用例生成工作是徒劳的,浪费大量的时间和精力,然而却达不到预期的覆盖目标。因此准确识别不可达路径是路径覆盖测试的重要前提。大型程序一般采用Java,C本文档来自技高网...
一种基于层次聚类的相似执行路径生成方法

【技术保护点】
一种基于层次聚类的相似执行路径生成方法,其特征在于,首先对程序进行静态分析,构建程序的控制依赖树并抽取程序中语句的路径条件,然后以路径条件中的分支距离判断路径的相似度,从而对程序中的语句进行层次聚类计算,最后根据得到的聚类结果生成相似执行路径,该方法包含下列步骤:1) 路径条件分析定义1:路径,路径是程序中顺序执行的一组语句序列,即程序P中一组语句的集合{s1,s2,... sn},可以构成控制流图中从入口节点到出口节点的一个单方向遍历序列,则称{s1,s2,... sn}是程序P中的一条路径;定义2:相关变量,程序中分支语句谓词P一般可以表示为两种形式,v1 op1 v2或v3 op2 c,...

【技术特征摘要】
1.一种基于层次聚类的相似执行路径生成方法,其特征在于,首先对程序进行静态分析,构建程序的控制依赖树并抽取程序中语句的路径条件,然后以路径条件中的分支距离判断路径的相似度,从而对程序中的语句进行层次聚类计算,最后根据得到的聚类结果生成相似执行路径,该方法包含下列步骤:1)路径条件分析定义1:路径,路径是程序中顺序执行的一组语句序列,即程序P中一组语句的集合{s1,s2,...sn},可以构成控制流图中从入口节点到出口节点的一个单方向遍历序列,则称{s1,s2,...sn}是程序P中的一条路径;定义2:相关变量,程序中分支语句谓词P一般可以表示为两种形式,v1op1v2或v3op2c,其中v1,v2与v3是变量,c是常量,op1与op2代表判定符号(如大于号,>),则称v1,v2与v3是谓词P的相关变量(c是谓词P的相关常量);定义3:变量定值点,程序中变量v的定值语句节点称为变量定值点,如果变量v是谓词P的相关变量,则称为相关变量定值点,记为dp(v);定义4:控制依赖树,控制依赖树可以描述程序中的控制依赖关系,根据控制依赖关系的传递性,树中的子节点直接控制依赖于父节点,间接控制依赖于上层的父节点;定义5:路径条件,程序中,存在一个方程组(或不等式组)e,方程组(或不等式组)e的任何一组解x,均满足在x作为程序输入条件时,程序的执行路径为p,则称方程组(或不等式组)e为路径p的路径条件;路径条件分析步骤:首先遍历控制依赖树中的所有语句节点,针对每一个节点,取出该节点的父节点,并递归的取出树的上层父节点,直至没有父节点为止,然后得到的递归访问路径起点为node节点,终点为控制依赖树的根节点,如果访问路径中包含分支语句节点,则将分支语句节点的判断谓词取出,作为node节点的路径条件,并存入路径条件表,最后遍历结束后获得控制依赖树中所有语句节点的路径条件,使用key-value形式的路径条件表存储所有节点的路径条件,表中key为语句节点,value为该语句节点的路径条件集合;2)聚类数据构造层次聚类将数据对象依据相似度划分到不同的簇中,在聚类计算之前,需要构造合适的聚类数据对象,路径条件是决定路径特征的重要因素,同时路径条件也决定了路径的可达性,因此将程序中的每个语句节点作为独立的聚类数据对象,将与语句节点相对应的路径条件作为数据对象的属性;如果语句节点仅包含简单路径条件(不含与或关系),则此路径条件为数据对象的一个属性;如果语句节点包含复合路径条件(包含与或关系),则对路径条件进行拆分,拆分出的每一个简单路径条件作为数据对象的一个属性;如果拆分出的简单路径条件如果有重复,不做去重处理,保留重复的路径条件,作为数据对象的一个属性;因为程序中语句节点的路径条件的数目可能存在差异性,因此构造出的数据对象的属性数目可能是不一致的,需要对其进行归一化,在归一化过程中,以所有数据对象中包含的所有属性的并集作为基准,对属性数目不足的数据对象进行属性填充,填充内容为0,即无任何含义的空路径条件;3)层次聚类计算路径条件的相似程度可以使用数值来表示,采取基于矩阵理论的层次聚类算法,层次聚类计算中核心的部分是簇之间的距离计算,簇之间距离的计算依赖于数据对象之间距离的计算,数据对象之间距离的计算由分支距离计算结果所决定,因此依次说明分支距离的计算,数据对象之间距离的计算,簇之间距离的计算,使用C代表簇,item代表数据对象,a,b...等字母代表数据对象中的属性;分支距离的计算:归一化过程结束后,每个数据对象包含的属性数目是一致的,即每个语句节点包含的路径条件的个数是一致的,路径条件中包含的相关变量也是一致的,假设有两个语句节点statement1与statement2,分别对应数据对象item1与item2,语句节点statement1的路径条件p1对应item1.a1,语句节点statement2的路径条件p2对应item2.a1,其中路径条件p1与p2包含相同的相关变量a,则路径条件p1与p2的分支距离,即...

【专利技术属性】
技术研发人员:张妙王红阳姜淑娟
申请(专利权)人:中国矿业大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1