问题 单项选择题

在下面所列举的逻辑测试覆盖中,测试覆盖最强的是 (38) ,最弱的是 (39)
软件测试工具有多种,其中 (40) 对源程序的数据流和控制流进行分析,发现语义错误: (41) 通过对程序的执行流进行探测,检查有关变量的逻辑值。
在下面的个人所得税程序中满足语句覆盖测试用例的是 (42) ,满足判定覆盖测试的用例是 (43)
if (income<800) taxrate=0;
else if (income<=1500) taxrate=0.05;
else if (income<2000) taxrate=0.08:
else taxrate=0.1;

A.income=(799,1500,1999,2001)
B.income=(799,1501,2000,2001)
C.income=(800,1500,2000,2001)
D.income=(800,1499,2000,2001)

答案

参考答案:A

解析: 语句测试是运行所测程序和测试用例,使得每一条可执行语句至少执行一次。判定覆盖是运行所测程序和测试用例,使得程序中每个判断的取“真”和取“假”分支至少经历一次。判定覆盖又称为分支覆盖。为了方便设计测试用例,一般需要画出程序流程图,本题的流程图如图所示。


根据图,该程序有4个可执行语句(用矩形表示),使用语句覆盖的测试用例,必须要使这4个可执行语句各执行一次,显然,在(14)的4个选项中,只有D满足这个要求,因为A、B使语句taxrate=0得不到执行;C使语句 taxrate=0.08得不到执行。
同样,根据图,该程序有3个判定(用菱形表示),6个分支。在试题 (15)给出的4个选项中,B、C、D都包含用例(2000、2001),这两个用例在本程序中的作用是完全一样的,所以,可以排除B、C、D。因此,只有A满足条件。

单项选择题
单项选择题