早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

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

题目

给定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]来描述。