黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法通常有等价类划分、边界值分析、因果图法等。
1.测试程序功能是否按照需求规格说明书的规定正常工作,是否存在功能遗漏。
2.测试程序执行是否存在界面错误。
3.测试是否有数据结构或外部数据库访问错误,是否恰当地接收数据并保持外部信息的完整性。
4.测试行为和性能等特征是否满足要求。
5.测试程序是否存在初始化和终止错误。
等价类划分是一种典型的黑盒测试方法,它把所有可能的输入数据,即程序的输入域被划分为若干个互不相交的子集,这些子集被称为等价类,然后从每个等价类中选取少数具有代表性的数据作为测试用例进行测试。等价类划分通常分为有效等价类和无效等价类。有效等价类是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。无效等价类是指不符合程序规格说明书,不合理或无意义的输入数据所构成的集合。
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.
②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.
③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.
④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.
⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).
⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.
三角形、等腰三角形、等边三角形用例等价类划分
测试用例设计
边界值分析方法是对等价类划分方法的补充。使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据.
2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据.
3)根据规格说明的每个输出条件,使用前面的原则1).
4)根据规格说明的每个输出条件,应用前面的原则2).
5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.
6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.
7)分析规格说明,找出其它可能的边界条件
等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例.这就需要利用因果图 。因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.
1、关系
①恒等:若c1是1,则e1也是1;否则e1为0。
②非:若c1是1,则e1是0;否则e1是1。
③或:若c1或c2或c3是1,则e1是1;否则e1为0。“或”可有任意个输入。
④与:若c1和c2都是1,则e1为1;否则e1为0。“与”也可有任意个输入。
2、约束
输入状态相互之间还可能存在某些依赖关系,称为约束。例如,某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。
输入条件的约束:
① E约束(异):a和b中至多有一个可能为1,即a和b不能同时为1。
② I约束(或):a、b和c中至少有一个必须是1,即 a、b 和c不能同时为0。
③ O约束(唯一);a和b必须有一个,且仅有1个为1。
④R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。
输出条件约束类型:输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。
(1) 分析软件规格说明描述中,那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符.
(2) 分析软件规格说明描述中的语义.找出原因与结果之间,原因与原因之间对应的关系. 根据这些关系,画出因果图.
(3) 由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不不可能出现. 为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件.
(4) 把因果图转换为判定表.
(5) 把判定表的每一列拿出来作为依据,设计测试用例.
1.确定规则的个数。假如有n个条件即原因,每个条件有两个取值(0,1),则有2n种规则。
2.列出所有的条件桩和动作桩
3.填入条件项和动作项。
4.简化,合并相似规则即相同动作
5.找出适合使用判定表设计测试用例的条件。
6.将规格说明以判定表形式给出,或很容易转换成判定表的形式。
7.找出条件的排列顺序不会也不影响执行哪些操作。
8.找出规则的排列顺序不会也不影响执行哪些操作。
9.当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
10.如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。
某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M
分析例题得出原因有三个:第一列字符是A、第一列字符是B、第二列字符是数字,由于A和B中有且仅有一个为真,所以会出现中间原因两者都为假,即中间原因是原因1和2的作用结果为真或假。
对应的因果关系表
因果关系图
判定表