软件测试技术基础课后习题答案 下载本文

0 < R <= 100, R <= P <= 100, RR = 50 0 < R <= 100, R <= P <= 100, RR = 49 0 < R <= 100, R <= P <= 100, RR = 10 0 < R <= 100, R <= P <= 100, RR = 9 0 < R <= 100, R <= P <= 100, RR = 5 0 < R <= 100, R <= P <= 100, RR = 4 0 < R <= 100, R <= P <= 100, RR = 1 0 < R <= 100, R <= P <= 100, RR = 0

5)为满足以上各种情形,测试用例设计如下:

测试用例 test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 test11 test12 test13

货品价格R

101 0 -1 100 100 50 51 90 91 95 96 99

100

付款金额P

- - - 101 99 100 100 100 100 100 100 100

100

第4章 白盒测试方法

1.简述白盒测试用例的设计方法,并进行分析总结。

解:白盒测试用例设计方法主要有逻辑覆盖和独立路径测试。

从覆盖源程序语句的详尽程度分析,逻辑覆盖主要有以下不同的覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。实际项目中,由于程序内部的逻辑存在不确定性和无穷性,尤其对于大规模复杂软件,不必采用所有的覆盖指标,而应根据实际情况选择合适的覆盖指标。

独立路径测试是在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出可执行的独立路径集合,从而设计出相应的测试用例。设计出的测试用例要保证被测程序的每条可执行的独立路径至少被执行一次。独立路径测试给出了满足路径覆盖指标所需测试用例的下限,同时给出了语句覆盖的上限,它可以确保对所有相互独立的决策结果进行测试。 2.分析归纳逻辑覆盖的各种策略,并比较每种覆盖的特点,分析在怎样的情况下采用何种覆盖方式。

解:语句覆盖是选择足够多的测试数据,使被测程序中每个语句至少执行一次。语句覆盖是最弱的逻辑覆盖标准。

判定覆盖又叫分支覆盖,它不仅每个语句必须至少执行一次,而且每个判定表达式的每种可能的结果都应该至少执行一次。判定条件覆盖比语句覆盖强,但是对程序逻辑的覆盖程度仍然不高。

条件覆盖的含义是,使判定表达式中的每个条件都取到各种可能的结果。条件覆盖通常

比判定覆盖强,但是也可能有相反的情况:虽然每个条件都取到了两个不同的结果,判定表达式却始终只取一个值。

判定/条件覆盖的含义是,选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。但有时判定/条件覆盖也并不比条件覆盖更强。

条件组合覆盖是更强的逻辑覆盖标准,它要求选取足够的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。满足条件组合覆盖标准的测试数据,也一定满足判定覆盖、条件覆盖和判定/条件覆盖标准。因此,条件组合覆盖是前述几种覆盖标准中最强的。但是,满足条件组合覆盖标准的测试数据并不一定能使程序中的每一条路径都执行到。