黑盒测试
1.定义
黑盒测试又称为功能测试,它是通过测试来检验程序的每个功能是否能正常使用。在测试中,将程序看成一个不能打开的黑盒子,在完全不考虑内部结构的情况下,在 程序接口 进行测试 ,检查程序是否能适当的接受输入数据从而产生正确的输出信息。黑盒测试主要针对 功能测试 和 软件界面测试 。
2.作用
黑盒测试方法着重测试软件的功能需求,是在程序的接口上进行测试,主要发现以下错误:
2.1.是否有功能错误,是否有功能遗漏。
2.2.是否能正确的接受输入数据达到正确的输出信息。
2.3.是否有数据结构错误或外部信息访问错误。
3.测试方法
3.1.等价类划分法
3.1.1 定义
将程序的输入域划分为若干个等价部分,然后从每个部分中抽取少数具有代表性的数据作为测试用例,就可以用少量具有代表性的测试数据来取得比较好的测试结果。等价类划分可分为两种不同的情况:有效等价类和无效等价类
3.1.2步骤
1.分析需求-确定数据类型–>
2.使用规则划分有效等价类和无效等价类–>
3.设计测试用例,覆盖有效等价类–>
注意:一条用例尽可能覆盖夺得有效等价类
4.设计测试用例,覆盖无效等价类–>
注意:一条用例只能覆盖一个无效等价类
3.1.3 例子
3.2.边界值分析法
3.2.1定义
边界值分析法是通过选择等价类边界的测试用例。边界值分析不仅重视输入条件的边界,还要重视输出数据的边界。大量的错误是发生在输入或者输出的边界上,而不是发生在输入输出内部,因此针对各种边界设计测试用例能更容易找出更多的错误。
3.2.2步骤
1.分析需求-确定数据类型–>
2.使用规则划分有效等价类和无效等价类–>
3.确认上点、离点、内点(即各个边界值)–>
4.设计测试用例,覆盖有效等价类–>
注意:一条用例尽可能覆盖夺得有效等价类
5.设计测试用例,覆盖无效等价类–>
注意:一条用例只能覆盖一个无效等价类
3.2.3例子
(同上一个等价类划分例子–固定电话号码案例)
3.3.判定表/因果图法
3.3.1定义
当输入条件与条件之间存在关联关系,不同的输入条件组合会出现不同的输出结果,则需要考虑用组合情况来设计用例。
3.3.2步骤
3.4.正交实验法
3.4.1定义
就是使用已经造好了的正交表格来安排试验并进行数据分析的一种方法,目的是用最少的测试用例达到最高的测试覆盖率
3.4.2步骤
3.4.3例子
分析得出–>4因子 3水平 -->转化为测试用例
3.5.场景法/状态迁移图
3.5.1定义
软件几乎都是使用事件触发控制流程,事件触发就构成了场景,同一事件触发的顺序和出现的结果就形成事件流。
可以通过事件流来设计测试用例,使得更容易理解和执行
3.5.2步骤
3.6.错误推测法
3.6.1定义
错误推测法是基于经验和直觉推测程序中可能存在的错误,从而设计更具有针对性的测试用例。
一般来说是基于其他测试方法之上辅助使用,单独出现并不常见。
4.优缺点
4.1黑盒测试的优点:
(1)适用于功能测试、可用性测试及可接受性测试;
(2)对照项目说明书测试程序功能;
(3)可测试长的、复杂的程序的工作逻辑,易被理解
4.2黑盒测试的缺点:
(1)不可能进行完全的、毫无遗漏的输入测试
(2)对某些软件bug或人为设置的障碍,黑盒测试无法检测出来
(3)正是因为黑盒测试依赖于软件规格说明书,其缺点是在无法保证规格说明书完全正确的情况下,黑盒测试对此无能为力(比如规格说明书规定了多余的功能或遗漏了某些重要的功能)
5.小结
黑盒测试方法的选择:
功能上有输入,但是输入无组合无条件—等价类划分法
功能上有输入,但是输入有边界有范围—边界值分析法
功能上有多个输入与输入,且输入与输入,输入与输出有依赖关系—因果图/判定表法
功能上需要参数配置,且之间需要互相结合—正交实验法
多个功能的组合逻辑测试—场景法/状态迁移法
最后采用错误推测法追加测试用例
部分资料参考自百度百科,黑马程序员