单元测试中测试用例的设计方法
1. 用于语句覆盖的基路径法
基路径法保证设计出的测试用例,使程序的每一个可执行语句至少执行一次,即实现语句覆盖。基路径法是理论与应用脱节的典型,基本上没有应用价值,读者稍作了解即可,不必理解和掌握。
基路径法步骤如下:
1)画出程序的控制流图
控制流图是描述程序控制流的一种图示方法,主要由结点和边构成,边代表控制流的方向,节点代表控制流的汇聚处,边和结点圈定的空间叫做区域,下面是控制流图的基本元素:
以下代码:
void Sort(int iRecordNum, int iType) { int x = 0; int y = 0; while(iRecordNum-- > 0) { if(0 == iType) { x = y+2; break; } elseif(1 == iType) { x = y+10; } else { x = y+ 20; } } } |
可以画出以下控制流图:
2)计算程序环路复杂度
环路复杂度V(G)可用以下3种方法求得:
(1) 环路复杂度等于控制流图中的区域数;
上图中,有4个区域,V(G) = 4。
(2) 设E为控制流图的边数,N为结点数,则环路复杂度为E-N+2;
上图中,V(G) = 10(边) – 8(结点) + 2 = 4。
(3) 设P为控制流图中的判定结点数,环路复杂度为P+1。
上图中:V(G) = 3(判定结点) + 1 = 4。
环路复杂度是独立路径数的上界,也就是需要的