【问题1】
(1)负奇数
(2)大于2的整数
(3)0
(4)①-③-④
(5)不等于0的整数
【问题2】
“或”关系的第一个条件为真,则不判断第二个条件。
“与”关系的第一个条件为假,则不判断第二个条件。
【问题3】
(6)8
(7)-
(8)N
(9)×
(10)√
【问题1】 注:题目描述参数a、b、m都为整型。
根据第(1)空的执行路径1-2-4可以判断,走的判断路线是TT,已知a=2,b=0;参数m的最终结果为0,可得最后一次m的赋值为-1,从而前推,m%a=-1,a的结果为2,可以推导出,此时m的取值只要为负整数即可。不能为正整数,否则余数不会是-1。
根据第(2)空的执行路径1-2-5可以判断,走的判断路线是TF,已知b=0,m=-1;参数m的最终结果为-1,首先经过第一个条件为T,可知此时a的取值要大于0,同时要注意m%a=m,m的值为-1,所以此时m不能取1,经过第二个判断可得,逻辑值为假,判断2的两个条件都为假,m>1(为假),a==2为假,所以可以得出a不能为2,联立得出a为大于2的整数。
根据序号3得出第(3)、(4)空,根据参数a=2,参数b为不等于0的整数,可知需要第一个判断要走F(即3号路径),又因为m=-1,所以可以知道第二个判断条件为真,走T(即4号路径),m=m+1=0,路径为 ①-③-④。
根据序号4得,走1-3-5路径,即FF路线,已知a=1,满足判断1的第一个条件,故第二个条件b==0必须为假,才能导致整体结果为假,故可知b为不等于0的整数。
【问题2】在日常测试中,判定表达式往往由多个条件组合而成,某个条件的取值结果可能会掩盖其他条件的取值结果情况。在表达式“a=2|m>1”中,当“a=2”的值为“真”时,因复合表达式是“或”的关系,不管“m>1”的值为“真”或者“假”,整个表达式的最终取值结果均为“真”;在表达式“a>0&&b=0”中,当“a>0”的值为“假”时,因复合表达式是“与”的关系,不管“b”的值为“真”或者“假”,整个表达式的最终取值结果均为“假”。因此在判定覆盖中,某些测试用例仍然能够达到判定覆盖的标准,但无法发现上述的错误。
程序片段中采用判定覆盖测试,其测试充分性较弱的原因:“或”关系的第一个条件为真,则不判断第二个条件;“与”关系的第一个条件为假,则不判断第二个条件。
【问题3】
第6空,因此在决策表中给出了多少条件组合情况,相应地也就有多少条规则,即条件项和动作项有多少列。由于每个条件有真、假两种取值情况,所以题目中给出3个条件,则该决策表中需要的规则个数为2*2*2=8。
第7空,根据1和2的输入情况来看,都为省内邮寄,可以得出没有e3条件项,只有省外邮寄才会考虑是否大于20公斤,因此填写-。
第8空,根据6的输出结果来看,为e1:5元/斤,且为省外没有超过20公斤的,对应的情况为慢件邮寄,C2的判断为N。
第9、10空,根据4的条件判断,分别为省外邮寄,快件,不超过20公斤,对应的结果应该为7元/斤,所以e3的结果为√,e1的结果为×。