概念
黑盒测试:又称“功能测试”、“数据驱动测试”或“基于规格说明书的测试”,它将测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。
测试用例的设计
等价类划分、边界值分析、错误推测法等等
等价类划分
等价类
: 输入数据的某个子集,在该子集合中的各个输入数据对于揭
露程序中的错误都是等效的,并合理地假定“测试某等价类的代表值
就等于对这一类其它值的测试”。
等价类划分基本原则:
- 每个可能的输入属于某一个等价类
- 任何输入都不会属于多个等价类
- 用等价类的某个成员作为输入时,如果证明执行存在误差,那么用该类的任何其他成员作为输入,也能检查到同样的误差
等价类分为:
- 有效等价类
- 对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。
- 利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
- 无效等价类
- 对程序的规格说明是不合理的或无意义的输入数据所构成的集合。
- 无效等价类至少应有一个,也可能有多个。
设计测试用例:
- 为每一个等价类规定一个唯一的编号
- 设计一个新的测试用例,使其
尽可能多的
覆盖尚未被覆盖的有效等价类;重复这一步,直到所有的有效等价类都被覆盖为止 - 设计一个新的测试用例,使其仅覆盖
一个
尚未被覆盖的无效等价类;重复这一步,直到所有的无效等价类都被覆盖为止
边界值分析
边界值分析是等价类测试的特例,主要是考虑等价类的边界条件,在 等价类的“边缘”选择元素。
选取正好等于、刚刚大于、刚刚小于边界的值作为测试数据, 而不是选取等价类中的典型值或任意值作为测试数据。
白盒VS黑盒
黑盒测试 | 白盒测试 |
---|---|
只利用规格说明标识测试用例 | 只利用源代码标识测试用例 |
如果程序实现了未描述的行为,功能测试无法意识到 | 如果已描述的行为未能实现,结构性测试无法意识到 |
冗余度到,可能有漏洞 | 具有覆盖率指标 |
- 白盒测试只考虑测试软件产品,它不保证完整的需求规格是否被满足。
- 黑盒测试只考虑测试需求规格,它不保证实现的所有部分是否被测试到。
- 黑盒测试会发现遗漏的缺陷,指出规格的哪些部分没有被完成。而白盒测试会发现代理方面缺陷,指出哪些实现部分是错误的。
- 白盒测试比黑盒测试成本要高得多。它需要在测试可被计划前产生源代码,并且在确定合适的数据和决定软件是否正确方面需要花费更多的工作量。
- 一个白盒测试的失败会导致一次修改,这需要所有的黑盒测试被重复执行并且重新决定白盒测试路径。