说功能测试有些陌生了,说黑盒测试,哇,原来是这货,他还有别的名字,数据驱动测试,行为测试等。
2 黑盒测试
虽说功能测试基本不涉及代码,但类似白盒测试的静态分析,如果纸上谈兵,需要做的工作就更多了。一般而言,功能测试有以下策略,等价类划分、边界值分析、错误推测、因果图和综合策略,很明显,一个个都是大名鼎鼎的。
黑盒测试多是用于发现功能缺失,性能偏差,数据处理错误,初始化和终止错误,与白盒测试不同,他更多的是发现没有BUG的BUG。
黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。
PS. 记得柳博士对功能性需求问题特别强调,想必也是产品经理的好料子。
等价类划分
把程序的输入进行分类。从每一类中选出几个具有普遍性的例子作为测试用例。
等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的;等价类划分可有两种不同的情况:有效等价类和无效等价类。
这里同时声明一个重要的概念,黑盒,非常在乎输入输出,因为内部实现不清楚,他只有盯着输入输出看了。
边界值分析
边界值分析方法是对等价类划分方法的补充。是划分有效无效边界的一种方式。首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
错误推测
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。基于同类测试的专家知识库实现测试用例的设计方式。
因果图
前边的方法考量的是单一输入导致的问题检测,还应考虑输入条件之间的相互组合,采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻辑模型)。因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。
⑴ 分析软件规格说明描述中,那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件),并给每个原因和结果赋予一个标识符.
⑵ 分析软件规格说明描述中的语义.找出原因与结果之间,原因与原因之间对应的关系. 根据这些关系,画出因果图.
⑶ 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不不可能出现. 为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件.
⑷ 把因果图转换为判定表.
⑸ 把判定表的每一列拿出来作为依据,设计测试用例.
工具
WinRunner