zoukankan      html  css  js  c++  java
  • 怎么做独立路径的测试

    从上面的例子还看出尽管做了语句覆盖,但是程序仍然可能存在错误。语句覆盖是一种最弱的覆盖测试,但却是一种必须做的最低限度的白盒测试。独立路径测试可以保证所有语句被执行至少一次,同时排除上述(x=0,y=5/x)组合没有被执行的情况。在进行独立路径测试(基本路径测试)之前,先介绍流图符号:

    clip_image002

    如上图所示,每一个圆,称为流图的节点,代表一个或多个语句,流程图中的处理方框序列和菱形决策框可映射为一个节点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。一条边必须终止于一个节点,即使该节点并不代表任何语句,例如,下图中两个处理方框交汇处是一个节点,边和节点限定的范围称为区域。

    clip_image004

    任何过程设计表示法都可被翻译成流图,下面显示了一段流程图以及相应的流图。

    clip_image006

    (a)流程图

    clip_image008

    (b)流图

    注意,程序设计中遇到复合条件时(逻辑or, and, nor等),生成的流图变得更为复杂,如(c)流图所示。此时必须为语句IF a OR b中的每一个a和b创建一个独立的节点。

    clip_image010

    独立路径是指程序中至少引进一个新的处理语句集合,采用流图的术语,即独立路径必须至少包含一条在定义路径之前不曾用到的边。例如图(b)中所示流图的一个独立路径集合为:

    路径1:1-11

    路径2:1-2-3-4-5-10-1-11

    路径3:1-2-3-6-8-9-10-11

    路径4:1-2-3-6-7-9-10-1-11

    上面定义的路径1,2,3和4包含了(b)流图的一个基本集,如果能将测试设计为强迫运行这些路径,那么程序中的每一条语句将至少被执行一次,每一个条件执行时都将分别取true和false(分支覆盖)。应该注意到基本集并不唯一,实际上,给定的过程设计可派生出任意数量的不同基本集。如何才能知道需要寻找多少条路径呢?可以通过如下三种方法之一来计算独立路径的上界:

    1. V=E-N+2,E是流图中边的数量,N是流图节点数量。

    2. V=P+1,P是流图G中判定节点的数量

    3. V=R,R是流图中区域的数量

    例如,(b)流图可以采用上述任意一种算法来计算独立路径的数量

    1. 流图有4个区域,所以V=4

    2. V=11条边-9个节点+2=4

    3. V=3个判定节点+1=4

    由此为了覆盖所有程序语句,必须设计至少4个测试用例使程序运行于这4条路径。

  • 相关阅读:
    2013.4.15 Particle Swarm Optimization with Skyline Operator for Fast Cloudbased Web Service Composition
    Adaptive service composition in flexible processes
    2013.4.13 DomainSpecific Service Selection for Composite Services
    2013.4.14 Modeling and Algorithms for QoSAware Service Composition in VirtualizationBased Cloud Computing
    2013.5.29 Towards Networkaware Service Composition in the Cloud
    Efficient algorithms for Web services selection with endtoend QoS constraints
    SQL Server中常用的SQL语句
    接口限流自定义注解
    linux服务器生产环境搭建
    MVEL自定义函数重复掉用报错:duplicate function
  • 原文地址:https://www.cnblogs.com/whylaughing/p/5822006.html
Copyright © 2011-2022 走看看