一种覆盖测试中路径集的自动生成方法.docVIP

  • 2
  • 0
  • 约5.96千字
  • 约 10页
  • 2016-09-10 发布于北京
  • 举报

一种覆盖测试中路径集的自动生成方法.doc

一种覆盖测试中路径集的自动生成方法.doc

一种覆盖测试中路径集的自动生成方法   摘要: 覆盖测试是软件测试中的重要方法,路径覆盖测试中路径集的自动生成能提高测试效率。该文提出了一种描述程序分支情况的分支关系图,给出了基于分支关系图的路径集自动生成算法,实验证明了该方法的正确性,能有效地求出程序路径集。   关键词:路径集;分支关系图;软件测试   中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)25-5898-04   An Method of Automatic Generation for Paths Set in Software Coverage Testing   ZHAN Ze-mei   (Computer Science College, Yangtze University, Jingzhou 434023,China)   Abstract: Coverage testing is a important method for software testing. Automatic generation for paths set can enhance testing efficiency. A graph of branch relation is proposed for depicting branches in the program. The paper gives an algorithm for finding out paths set, which can work efficiently. The correctness of the algorithm is verified on a example.   Key words: paths set;the graph of branch relation; software testing   软件测试是软件工程理论中非常重要的一个方面,是提高软件产品质量和可靠性的关键。软件测试可以分为功能测试和结构测试两大类。其中结构测试又称为白盒测试,是基于程序结构特征,以实现某种测试覆盖为目的一种测试方法。路径覆盖就是一种针对结构测试的常用充分性准则[1],该方法可以有效地检测程序中的错误。基于路径覆盖的测试[2]是设计足够的测试数据,覆盖程序中所有可能的路径。目前设计测试用例基本上是预先确定路径,针对路径设计对应的测试用例,所以路径集的确定对于路径覆盖测试非常重要。如果完全靠人工确定路径集会花费很大精力,因此应该借助于自动化的方法。   路径集就是指程序中所有可能的路径的集合。路径集中没有两条完全相同的路径。由于程序中存在分支语句、循环语句,程序中的路径的数目会非常大,因此,在有限的测试资源下进行路径覆盖测试,我们只考虑循环的两种可能:循环体未执行和循环体至少执行一次。   目前已有的路径集生成方法有:采用遗传算法进行路径生成的方法[3]和A. Bertolino 利用简化的控制流图来确定程序路径。这些方法为生成程序的路径提供了帮助,但不能保证生成的完整的路径集。该文提出一种基于分支关系图的路径集生成方法,生成完整的路径集。   1 程序路径的表示   本质上,程序的执行表现为一系列判定条件取值的组合。例如程序1判断三角形形状的代码如下。   1 main( )   2 {int a,b,c;   3 scanf(“%d%d%d”,a,b,c);   4 if ((a+bc)(b+ca)(a+cb))   5 {if((a!=b)(b!=c)(c!=a))   6 printf(这是一个普通三角形);   7 else   8 if(((a==b)(b!=c))||((b==c)(c!=a))||((c==a)(a!=b)))   9 printf(这是一个等腰三角形);   10 else   11 printf(这是一个等边三角形); } }   12 else   13 printf(这不是一个三角形);}   该程序总共有四条可执行路径,路径1:1 2 3 4 12 13,路经2:1 2 3 4 5 6,路经3:1 2 3 4 5 7 8 9,路经4:1 2 3 4 5 7 8 10 11。程序中的判定条件有3个,判定条件1:(a+bc)(b+ca)(a+cb),判定条件2:(a!=b)(b!=c)(c!=a),判定条件3:((a==b)(b!=c))||((b==c)(c!=a))||((c==a)(a!=b)) 。四条执行路经可用判定条件组合值来表示。由于判定条件可能被执行到,也可能未被执行到,例如路径1中判定条件1执行到了,而判定条件2和3就未执行到。假设未被执行到的判定条

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档