抛开第二章讨论的心理学问题,程序测试中最重要的考虑因素是设计和创建有效的测试用例。
无论测试多么有创意,看起来有多么完善,都无法保证程序中不存在出错误,测试用例设计之所以至关重要是因为穷尽测试是不可能的,那么显然的策略就是尽可能让测试变得完备。
所以测试的核心问题就是:在所有的测试用例中,哪一个子集最有可能发现最多的错误?
一般来说,所有方法中效果最差的是随机输入测试—— 即从所有可能的输入值中随机选择一部分来测试程序。从发现最多错误的概率来看,随机选取的测试用例集,几乎不可能成为最优,甚至接近最优的子集。因此,在本章中,我们将建立一套思考方式,让你能更有策略地选择测试数据。
第 2 章已经说明,穷尽的黑盒测试和白盒测试通常都是不可能的;同时也指出,合理的测试策略可以同时包含两者的元素。这正是本章要展开的策略:你可以先用面向黑盒的测试用例设计方法,构建一套相对严谨的测试,再通过白盒方法检查程序逻辑,对这些测试用例进行补充。
本章的讨论方法:

如果你觉得写代码和设计代码和难,那你还没见到更难的->软件测试
推荐的流程是:先用黑盒测试设计测试用例,再根据需要用白盒测试补充测试用例。
- 白盒测试:
关注的是:测试用例对程序逻辑的执行与覆盖成都,最彻底的白盒测试是执行程序中每一条路径,但是对于包含循环的程序,完全路径测试并不现实。
逻辑覆盖测试:
至少执行一次程序中的每条语句。但是标准太弱通常几乎无用。
判定覆盖测试:
他要求:设计足够多的测试样例,使每个判断的真假结果至少出现一次,也就是每个分支方向至少执行一次。
条件覆盖测试:
比判定覆盖有时更强的是条件覆盖:设计足够的测试用例,使判断中的每个条件都取到所有可能结果至少一次。
判定/条件覆盖测试:
每个条件的所有结果至少出现一次
每个判断的所有结果至少出现一次
每个入口点至少调用一次
多条件测试:
设计足够的测试用例,使每个判断中所有条件结果的组合都至少出现一次,且所有入口点至少调用一次
2.黑盒测试:
黑盒测试基于程序规格说明,目的是发现程序行为与规格不符的地方。第二章提到好的测试用例应该有高概率取发现错误,而穷尽输入测试不可能,因此我们只能选取一小部分输入,并希望这部分最可能发现最多错误。
一个好的测试用例应该具备两个特点:
1.每设计一个用例就能大幅降低为达到测试目标所需的其他用例数量。
2.一个用例能代表一大类其他输入,测试他就相当于测试同类的所有值。
等价类分成两类:
有效等价类:合法输入
无效等价类:所有其他不合法的状态
边界值法:
最好用最实用
浙公网安备 33010602011771号