控制流测试


控制流测试(Control Flow Testing)

控制流测试是一种属于白盒测试的测试技术。该技术的目的是通过控制结构确定程序语句或指令的执行顺序。程序的控制结构用于为程序开发测试用例。在这种技术中,测试人员选择大型程序的特定部分来设置测试路径。它主要用于单元测试。测试用例由程序的控制图表示。

控制流图由节点、边、决策节点、连接节点组成,指定所有可能的执行路径。

用于控制流图的符号

  1. Node
  2. Edge
  3. Decision Node
  4. Junction node

Node

控制流图中的节点用于创建过程路径。基本上,它代表了下一个程序的程序顺序,因此测试人员可以确定程序的发生顺序。

我们可以在下面的例子中看到第一个节点代表启动过程,下一个过程是在分配值后分配 n 的值,如果 n 为 18 或更多,则有决策节点根据 n 的值决定过程的下一个节点如果小于 18 则符合条件的程序将执行,否则如果小于 18 不符合条件的程序将执行。下一个节点是连接节点,最后一个节点是停止节点以停止程序。

Edge

控制流图中的边用于链接节点的方向。

Decision Node

控制流图中的决策节点用于根据值决定过程的下一个节点。

我们可以在下面的示例决策节点中看到,如果 n 为 18 或大于 18,则根据 n 的值决定过程的下一个节点,因此,如果小于 18,则执行符合条件的过程,否则执行不符合条件的过程。

Junction node

控制流图中的结点是至少三个链接相交的点。

例子

public class VoteEligiblityAge{  

public static void main(String []args){  
int n=45;  
if(n>=18)  
{  
    System.out.println("You are eligible for voting");  
 }  else           
{  
   System.out.println("You are not eligible for voting");  
 }  
}  
}

图 - 控制流图

白盒测试中的控制流测试链接

上面的例子显示了投票年龄的资格标准,如果年龄为 18 岁或超过 18 岁,则打印消息“您有资格投票”,如果小于 18 岁,则打印“您没有资格投票”。

上面写了这个场景的程序,控制流图是为了测试目的而设计的。

在控制流图中,start、age、qualified、notqualified和stop是节点,n>=18是决策节点,决定哪个部分(if或else)按照给定的值执行。合格节点和不合格节点的连通性存在于停止节点上。

测试用例是通过程序的流程图设计来判断执行路径是否正确。所有节点、连接点、边和决策都是设计测试用例的基本部分。