第五章 测试软件

5.1动态黑盒测试
5.2等价类划分

测试用例: 进行测试时使用的特定输入、测试软件的步骤 和 预期结果。
选择测试用例是软件测试员最重要的一项任务。
等价类/等价类划分:指测试目标相同或者暴露相同软件缺陷的一组测试。
在寻找等价类划分时,应把软件具有相似输入、相似输出、相似操作的分在一组。

等价类划分的目的:将可能的测试用例集缩减到可控制并且仍然足以测试软件的小范围内

缓冲区溢出是由边界条件缺陷引起的,它是造成软件安全问题的头号问题。

5.3数据测试
5.3.2次边界条件:
次边界条件:边界条件在软件内部,最终用户几乎看不到,但是软件测试员有必要进行检查。
例:ASCII码表,
ASCII表不是良好的、连续的序列
用户输入用户名和密码,测可能输入含义特殊字符的用户名。

寻找次边界条件需要软件测试员大体了解软件的工作方式。

软件测试员应该和开发小组的程序员交流,获得他们对于次边界条件的建议。
5.3.3 默认、空白、零值和无
一种很明显却经常出现的缺陷源自当软件需要输入时(文本框),不是没有输入正确的信息,
而是根本没有输入任何内容。

处理方法:
通常将输入内容默认为边界内的最小合法值,或者在合法划分中的某个合理值,
或者返回错误提示信息(校验)。

技巧:一定要考虑建立默认值、空白、空值、零值或者无输入等条件的等价类,
它们自成一类,一般不归入合法数据或者非法数据的等价类里。
5.3.4 非法、错误、不正确和垃圾数据
边界测试条件、次边界条件测试和默认值测试 属于通过性测试,证实软件能够工作。

软件要应付用户千奇百怪的使用方式,数据测试必须考虑“垃圾数据”,这是失效性测试的对象。

破坏性测试没有一定的规则,只是想方设法破坏软件,可以自由发挥创造力。

产品规格说明书中有意义、合理的输入数据所构成的集合——有效等价类
产品规格说明书中不合理或无意义的输入数据所构成的集合——无效等价类。

根据划分的等价类,按以下步骤确定测试用例:
1)为每个等价类规定一个唯一的编号;
2) 设计一个新的测试用例,尽可能多地覆盖尚未被覆盖的
有效等价类,重复这一步,直到测试用例覆盖了所有的有效
等价类;  ??????????
3) 设计一个新的测试用例,使其覆盖并且只覆盖一个还没
有被覆盖的无效等价类。重复这一步,直至测试用例覆盖了
所有的无效等价类。 ???????

5.4状态测试
状态测试是通过软件产品运行时不同的状态,验证程序的逻辑流程。

5.4.1 测试软件的逻辑流程
软件的日益复杂化,尤其是为了迎合日益丰富的用户界面,提供了太多的选择和选项,
使程序的分支呈指数增长。
测试软件的状态和逻辑流程也会遇到可能的测试用例集太大问题。


解决办法:运用等价类划分技术选择状态和分支。

状态测试步骤
1) 列出状态—事件表;
2) 画出状态转换图;
3) 推出测试路径;
4) 根据测试路径编写测试用例
每一条路径就是一条测试用例.
5.4.2 失败状态测试
5.4.1 给出的状态测试属于通过性测试。
失效性测试是找到使软件失败的案例。
主要案例:竞争条件、重复、压迫和重负。


5.5 错误推测法
错误推测法
–基于经验和直觉推测程序中所有可能存在的各
种错误, 从而有针对性的设计测试用例的方法。

5.6 因果图方法
因果图(Cause一Effect Graphics )方法
描述对于多种条件的组合,相应产生多个动作的
形式。

5.7决策表测试方法
黑盒测试方法中,基于决策表的测试方法最严格,因为决
策表具有逻辑严格性。

5.8 场景法

第五章小结:
相关概念:动态黑盒测试
测试种类:数据测试,状态测试。
测试技术:
等价类划分法
    数据测试
    状态测试
    错误推测法
    因果图法
    决策表
    场景法