d函数的测试用例怎么写( 四 )


穷举测试是不可能的 。所以现在进行单元测试我选用的是现在一般用的比较多的基本路径测试法 。
三、开始测试 基本路径测试法:设计出的测试用例要保证每一个基本独立路径至少要执行一次 。函数说明 :当i_flag=0;返回 i_count+100当i_flag=1;返回 i_count *10否则 返回 i_count *20输入参数:int i_count , int i_flag输出参数: int i_return; 代码: 1 int Test(int i_count, int i_flag)2 {3 int i_temp = 0; 4 while (i_count>0)5 {6 if (0 == i_flag)7 {8 i_temp = i_count + 100; 9 break; 10 }11 else12 {13 if (1 == i_flag)14 {15 i_temp = i_temp + 10; 16 }17 else18 {19 i_temp = i_temp + 20; 20 }21 }22 i_count--; 23 }21 }22 i_count--; 23 }24 return i_temp; 25 } 1.画出程序控制流程图 圈中的数字代表的是语句的行号 , 也许有人问为什么选4,6,13,8 。
作为结点 , 第2行 , 第3行为什么不是结点 , 因为选择结点是有规律的 。
让我们看程序中;第2行 , 第3行是按顺序执行下来的 。直到第4行才出现了循环操作 。
而2,3行没有什么判断 , 选择等分支操作 , 所以我们把2,3,4全部合并成一个结点 。其他的也是照这个规则合并 , 然后就有了上面的流程图 。
2.计算圈复杂度 有了图以后我们要知道到底我们有写多少个测试用例 , 才能满足基本路径测试 。这里有有了一个新概念——圈复杂度 圈复杂度是一种为程序逻辑复杂性提供定量测试的软件度量 。
将该度量用于计算程序的基本独立路径数目 。为确保所有语句至少执行一次的测试数量的上界 。
公式圈复杂度V(G)=E+N+2,E是流图中边的数量 , N是流图中结点的数量 。公式圈复杂度V(G)=P+1 ,P是流图G中判定结点的数量 。
通俗的说圈负责度就是判断单元是不是复杂 , 是不是好测试的标准 。一般来说如果圈复杂度如果大于20就表示这个单元的可测试性不好 , 太复杂(也许有人觉得无所谓 , 但是如果你们公司实行了CMMI5的话 , 对这个是有规定的) 。
从图中我们可以看到 , V(G)=10条边-8结点+2=4V(G)=3个判定结点+1=4 上图的圈复杂图是4 。这个结果对我们来说有什么意义呢?它表示我们只要最多4个测试用例就可以达到基本路径覆盖 。
3.导出程序基本路径 。3.导出程序基本路径 。
现在我们知道了起码要写4个测试用例 , 但是怎么设计这4个测试用例? 导出程序基本路径 , 根据程序基本路径设计测试用例子 。程序基本路径:基本独立路径就是从程序的开始结点到结束可以选择任何的路径遍历 , 但是每条路径至少应该包含一条已定义路径不曾用到的边 。
(看起来不好理解 , 让我们看例子) 。让我们看上面的流程图:从结点4到24有几条路径呢?1 B(4,24)2 C,E,J(4,6,8,24)3 C,D,F,H,A,B(4,6,13,15,22,4,24)4 C,D,G,I,A,B(4,6,13,19,22,4,24)还有吗??5 C,D,C,I,A,C,E,J(4,6,13,19,22,4,6,8,24)算吗? 不算 , 为什么?因为上面的4条路径已经包括了所有的边 。
第5条路径已经不包含没有用过的边了 。所有的路径都遍历过了 。
好了 , 现在我们有了4条基本独立路径根据独立路径我们可以设计测试用例 。1 B(4,24)输入数据:i_flag=0 , 或者是i_flag 评论0 0 0 。

d函数的测试用例怎么写

文章插图