应用于白盒路径测试的测试用例生成方法技术

技术编号:2836400 阅读:283 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种应用于白盒路径测试的测试用例生成方法,包括以下步骤:S102,对代码流程图中的所有圈进行标记;S104,生成经过代码流程图中的所有圈的至少一个分支的路径组成的主路径集;S106,利用主路径集,通过加圈法生成基本路径集;以及S108,根据基本路径集中的每条基本路径的可行情况,生成测试用例。通过本发明专利技术,可以保证不同测试人员寻找的基本独立路径集大体一致。

【技术实现步骤摘要】

本专利技术涉及软件测试技术,更具体地涉及一种。
技术介绍
现有软件测试方法按照测试用例设计来区分,分为白盒测试与黑盒测试。白盒测试也称结构测试或逻辑驱动测试,它是从程序的控制结构出发进行的测试。白盒测试使用被测单元内部如何工作的信息,允许测试人员根据程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑路径进行测试。基于一个应用代码的内部逻辑知识,测试是基于覆盖全部代码、分支、路径、条件的。按照覆盖标准从低到高分,分别是语句覆盖、判定覆盖(也称为分支覆盖)、条件覆盖、判定/条件覆盖、条件组合覆盖、和路径覆盖。覆盖程度最高的是路径覆盖。执行路径测试需要绘制程序流程图、计算圈复杂度、寻找基本路径集、导出测试用例、执行测试用例。在路径测试流程中寻找基本路径集是确定测试用例的关键。现行的方法有两种一种是直接采用肉眼观察找出独立路径集的方法。该方法对于程序流程图中节点和分支比较少的情况比较有效。但存在以下问题 (1)在路径数大于10并且程序流程图比较复杂的情况下,基本路径集寻找很困难,甚至无法寻找。(2)该方法由不同测试人员执行会产生不同基本路径集,并生成不同的测试用例集。导致对于同一段代码没有一致的测试用例集。(3)该方法没有对存在逻辑相关代码的情况进行处理。(4)该方法不利于进行计算机自动化。另一种是由McCabe开发的基线法。这种方法首先选择一个基线路径,McCabe建议选择尽可能多的判断节点的路径。接下来重新回溯基线路径,依次“翻转”每个判断点。其中,当节点外度≥2时,必须取不同的边。采用基线路径方法最好从最长的路径开始,然后对该路径中的判断依次“翻转”得到新的路径。该方法存在以下问题(1)因基本路径由最长路径“翻转”得到,所以基路径集中的路径较长。从而增加了测试用例的复杂度和测试难度。(2)McCabe路径“翻转”默认的逻辑前提是代码节点不存在相关性,但由于代码中存在逻辑依赖关系,所以路径越长,存在逻辑冲突的概率越大,从而导致基本路径不可行概率变大。(3)在某些情况下会导致大部分基本路径不可行,而必须重新寻找独立路径集。(4)该方法没能对路径的独立性给出一个完整判定。
技术实现思路
鉴于以上所述的一个或多个问题,本专利技术提供了一种。根据本专利技术的,包括以下步骤S102,对代码流程图中的所有圈进行标记;S104,生成经过代码流程图中的所有圈的至少一个分支的路径组成的主路径集;S106,利用主路径集,通过加圈法生成基本路径集;以及S108,根据基本路径集中的每条基本路径的可行情况,生成测试用例。本专利技术可以保证不同测试人员寻找的基本独立路径集大体一致。并且,所选择的基本独立路径集路径是最短的,从而降低了测试用例复杂度和执行难度。另外,本专利技术可以对路径集独立性进行判断,从而可以保证白盒测试质量。附带地,本专利技术为复杂代码结构下对路径的测试提供了良好的支持。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中图1A至图1D是根据本专利技术实施例的及步骤的流程图;图2是利用图1所示方法生成测试用例的过程的流程图。具体实施例方式下面参考附图,详细说明本专利技术的具体实施方式。图1A是根据本专利技术实施例的。如图1A所示,该测试用例生成方法包括以下步骤S102,对代码流程图中的所有圈进行标记。具体地,步骤S102可以包括以下步骤(如图1B所示)S1022,绘制代码流程图,计算代码流程图圈复杂度,确定图中圈的个数。S1024,虚线连接代码流程图的入口节点和出口节点,标记出图上封闭区域。S1026,确定环绕每个封闭区域的闭合路径,其中,一条闭合路径就是一个圈。以及S1028,确定所述圈的标记边,并用所述标记边对所述圈进行标记。其中,将每个圈所特有的边确定为标记边。如果圈没有特有的边,则取与已标记圈公共的边中选取一条边作为标记边。S104,找到至少经过上述所有圈的一个分支的主路径集,同时确定主路径集中每条路径对应的圈组合。具体地,步骤S104可以包括以下步骤(如图1B所示)S1042,选择一条经过程序某些谓词节点的最短执行路径,并且在该执行路径未能经过所有谓词节点的情况下,继续寻找下一条最短路径,直到所选择的执行路径经过所有谓词节点,并通过所选择的执行路径组成主路径集。S1044,在代码流程图中的谓词节点存在明显相关性时,需要根据相关性来调整主路径集。然后识别主路径集中每条路径中包含的圈标记,由此获得路径的对应圈组合。由主路径与圈组合之间的对应关系,获得主路径集对应的圈组合集。S106,利用主路径集,采用加圈法生成基本路径集。具体地,步骤S106可以包括以下步骤(如图1C所示)S1062,在步骤S104中选择的路径数小于代码流程图的圈复杂度的情况下,选择一条主路径“扩展”,每次在路径中加入一个圈标记,其中,该圈标记对应的圈不在主路径集对应的圈组合集内,直到路径中不能加入新的圈标记。接着选择下一条主路径继续进行“扩展”,直到主路径集中所有路径扩展完毕。S1064,合并“扩展”得到的路径与主路径集,获得基本路径集,并获取基本路径集对应的基本路径圈组合集。其中,在步骤S104中选择的路径数等于代码流程图的圈复杂度的情况下,直接进行步骤S108。S108,根据基本路径集中的每条基本路径的可行情况,生成测试用例。具体地,步骤S108可以包括以下步骤(如图1D所示)S1082,判断所述基本路径集中的每条基本路径是否可行,如果可行,则生成所述测试用例,否则进行步骤S1084;S1084,判断所述代码流程图的所述谓词节点之间是否存在明显的节点相关性;S1086,如果存在,则根据所述节点相关性对所述基本路径集进行调整,并在经过调整后的所述基本路径集中的每条基本路径都可行的情况下,生成所述测试用例,否则判断所述基本路径集中的基本路径的相关性是否与所述节点相关性一致;以及S1088,如果一致,则生成所述测试用例,否则根据所述基本路径集中的基本路径的隐式相关性对所述基本路径进行调整,并在经过调整后的所述基本路径集中的每条基本路径都可行的情况下,生成所述测试用例。其中,如果基本路径可以只经过一对相关节点中的一个就构成完整路径,则不去除相关节点的路径。如果存在一对相关节点的判断,并且一节点判断只有在另一个节点参与的循环完成一次后才生效,则不去除这个节点的路径。如果存在一对相关节点,则修改路径经过这两个节点,并去除多余的不可行路径。然后,建立调整后基本路径集对应的圈组合集。其中,判断所述基本路径集中的基本路径相关性是否与所述节点相关性一致的过程包括以下步骤找到单圈只出现过一次的路径,并用该圈标记路径;找到多圈只出现过一次的路径,并用该圈组标记路径,并且该圈组中的圈为相关圈;去除已经标记的圈,获得未能分辨的圈组;走读相关代码判断未分辨圈之间的相关性,并在完全识别出圈相关性的情况下,判断识别出来的相关性是否与现有节点相关性一致,如果一致,则生成测试用例,否则路径存在隐式相关,对基本路径进行调整;在未能完全识别出圈相关性的情况下,找到路径组中与未分辨圈最密切的路径剩余圈,判断其与未分辨圈相关性,在完全识别出圈相关性的情况下,判断识别出来的相关性是否与现有节点本文档来自技高网
...

【技术保护点】
一种应用于白盒路径测试的测试用例生成方法,其特征在于,包括以下步骤:S102,对代码流程图中的所有圈进行标记;S104,生成经过所述代码流程图中的所有圈的至少一个分支的路径组成的主路径集;S106,利用所述主路径集,通过加圈法生成基本路径集;以及S108,根据所述基本路径集中的每条基本路径的可行情况,生成测试用例。

【技术特征摘要】
1.一种应用于白盒路径测试的测试用例生成方法,其特征在于,包括以下步骤S102,对代码流程图中的所有圈进行标记;S104,生成经过所述代码流程图中的所有圈的至少一个分支的路径组成的主路径集;S106,利用所述主路径集,通过加圈法生成基本路径集;以及S108,根据所述基本路径集中的每条基本路径的可行情况,生成测试用例。2.根据权利要求1所述的测试用例生成方法,其特征在于,所述步骤S102包括以下步骤S1022,创建所述代码流程图,计算所述代码流程图的圈复杂度,并根据所述圈复杂度确定所述代码流程图中的圈个数;S1024,连接所述代码流程图的入口节点和出口节点,标记出所述代码流程图中的封闭区域;S1026,确定围绕所述封闭区域的圈;以及S1028,确定所述圈的标记边,并用所述标记边对所述圈进行标记。3.根据权利要求2所述的测试用例生成方法,其特征在于,所述步骤S104包括以下步骤S1042,选择经过所述代码流程图的所有谓词节点的主路径组成所述主路径集;以及S1044,根据所述主路径集中的每条主路径包含的圈标记,获取所述主路径集中的每条主路径对应的圈组合组成的主路径圈组合集。4.根据权利要求3所述的测试用例生成方法,其特征在于,所述步骤S106包括以下步骤S1062,在组成所述主路径集的所述主路径的数目小于所述圈复杂度的情况下,在所述主路径集中的每条主路径中添加新圈标记,直到所述主路径中不能加入任何新圈标记为止;S1064,合并添加了新圈标记的每条主路径组成的集合与所述主路径集,组成所述基本路径集;以及S1066,根据所述基本路径集中的每条基本路径包含的圈标记,获取所述基本路径集中的每条基本路径对应的圈组合组成的基本路径圈组合集。5.根据权利要求3所述的测试用例生成方法,其特征在于,在所述步骤S106中,...

【专利技术属性】
技术研发人员:金斌李维民蒋光明王勇
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

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

1