给定C语言程序: int foo(int x, int y,int d) { if ( x !=0 ) { if ( y == 0 ) d = d / x; else d=d/(x*y

admin2008-04-04  32

问题 给定C语言程序:
   int  foo(int x, int y,int d)
   {
     if ( x !=0 )  {
           if ( y == 0 )  d = d / x;
           else d=d/(x*y);
     } else {
           if ( y == 0 )  d = 0;
           else  d=d/y;
     }
     return d;
   }
   当用路径覆盖法进行测试时,至少需要设计(31)个测试用例。

选项 A、3
B、4
C、5
D、8

答案B

解析 路径覆盖法是白盒测试的作用方法,要求设计足够多的测试用例,覆荒程序中所有可能的路径。给定程序的流程图如下图所示。
   从图中可以看出,程序中共存在四条路径,分别记为abdh、abeh、acfh、acgh。当用路径覆盖法设计测试案例时,必须为每条路径至少设计一个用例。下面给出一组可覆盖全部路径的测试用例。
   测试用例1:[(2,0,8),4],覆盖路径abdh
   测试用例2:[(2,2,8),2],覆盖路径abeh
   测试用例3:[(0,0,8),0],覆盖路径acfh
   测试用例4:[(0,2,8),4],覆盖路径acgh
   用例采用形式[输入的(x,y,d),返回的d]来描述。
转载请注明原文地址:https://kaotiyun.com/show/jIxZ777K
0

相关试题推荐
最新回复(0)