白盒测试习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【说明】
本流程图描述了某子程序的处理流程,现要求用白盒测试法为该子程序设计测试数据。
【流程图】
【问题】根据判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、
路径覆盖等5种覆盖标准,从供选择的答案中分别找出满足相应覆盖
标准的最小测试数据组(用(1)~(12)回答)。
供选择的答案
(1)X=90, Y=90: X=70, Y=70
(2)X=90, Y=70; X=70, Y=90
(3) X=90, Y=90: X=90, Y=75; X=75, Y=90
(4) X=90, Y=75: X=75, Y=90: X=70, Y=70
(5) X=90, Y=90: X=90, Y=75: X=75, Y=90; X=70, Y=70
(6) X=80, Y=80: X=90, Y=70; X=70, Y=90; X=70, Y=70
(7) X=80, Y=80: X=90, Y=75: X=90, Y=90; X=75, Y=90: X=70, Y=70
(8) X=80, Y=80: X=90, Y=70: X=70, Y=90: X=70, Y=70; X=70, Y=75
(9) X=80, Y=80: X=90, Y=75; X=90, Y=70: X=70, Y=80; X=70, Y=75: X=70,
Y=70
(I0) X=90, Y=90: X=90, Y-75; X=90, Y=70: X=75, Y=90: X=70, Y=70: X=70,
Y=90
(II) X=80, Y=80: X=90, Y=75; X=90, Y=70: X=70, Y-80: X=70, Y=75: X=70,
Y=70: X=70,Y=90
(12) X=80, Y=80: X=80, Y=70: X=70, Y=80: X=70, Y=70: X=90, Y=75: X=90,Y=70: X=70,Y=75: X=75, Y=90: X=75, Y=80; X=70, Y=90
以下为C语言代码:
intDoWork(int x, int y, int z)
{
intj = 0;
if (x > 3 && z < 10)
j = x * y - 1;
if (x == 4 || y > 5)
j = x * y + 10;
j = j % 3;
return j;
}
写出分别达到语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、路径覆盖的测试用例。
阅读下列说明,回答问题l至问题3,将解答填入答题纸的对应栏内。
【说明】使用基本路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。以下代码由C语言书写,请按要求回答问题。
int IsLeap(int year)
{
if (year%4==0)
{
if (year%100==0)
{
if(year%400==0)
leap=1:
else
leap=0:
}
else
leap=1;
}
else
leap=0:
return leap;
}
【问题1】请画出以上代码的控制流图。
【问题2】请计算上述控制流图的圈复杂度V(G)(独立路径数)。
【问题3】假设输入的取值范围是1 000 int IsLeap(int year) 1{ 2 if (year%4==0) { 3 if (year%l00==0) { 4 if(year%400 ==0) 5 leap=1: else 6 leap=0: 7 } else 8 leap=1; 9 } else 10 leap=0: 11 return leap; } 阅读下列说明,回答问题1~3。 【说明】以下代码由C语言书写,能根据指定的年和月计算当月所含天数。 intGetMaxDay(int year, int month) { intmaxday = 0; 1 if (month >= 1 && month <= 12) { 2 if (month == 2) { 3 if (year % 4 == 0) { 4 if (year % 100 == 0) { 5 if (year % 400 == 0) 6 maxday = 29; else 7 maxday = 28; 8 } else 9 maxday = 29; 10 } else 11 maxday = 28; 12 } else { 13 if (month == 4 || month == 6 || month == 9 || month == 11) 14 maxday = 30; else 15 maxday = 31; 16 } 17 } 18 return maxday; } 【问题1】绘制以上代码的控制流图。【问题2】计算控制流图的环形复杂度V(G)。【问题3】假设year的取值范围是1000