一:什么是黑盒测试?
黑盒测试(Black-box Testing),黑盒测试又称为“功能测试”,是将测试对象看做一个黑盒,在并不考虑软件产品的内部结构和处理过程的基础上对软件产品进行功能测试。黑盒测试注重软件产品的“功能性需求”。
二:黑盒测试常用的方法有哪些?
运用黑盒技术设计测试用例常用的方法有:
① 等价类划分
② 边界值分析
③ 因果图分析法
④ 错误推断法 等
详细分析:
(一)等价类划分:
等价类的划分无非就两种情况:有效等价类、无效等价类
1.有效等价类:是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能需求。
2.无效等价类:与有效等价类的定义恰巧相反。
无效等价类是指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。
他能检验程序在不符合规则的数据输入下,是否会有异常(无效等价类至少应该有一个,也可能有多个,视情况而定)
综上:设计测试用例时,要同时考虑这两种等价类,因为软件不仅要能接收合理的数据,也要能经受意外的数据,这样的测试才能确保软件具有更高的可靠性。
【例1】100分的试卷分数(Scores)
有效等价类:0 ≤ score ≤ 100
无效等价类1:Scores < 0
无效等价类2:Scores > 100
【例2】每个月所下发的工资只可为数字
有效等价类:输入的工资内容为数字
无效等价类1:输入的工资内容为字母
无效等价类2:输入的工资内容为汉字
无效等价类3:输入的工资内容为特殊字符
【例3】需求:用户注册时所设计的密码可以是“数字”、“字母”、及“部分特殊符号”,不能输入“空格”、“单引号”、“双引号”
有效等价类1:输入的密码全为“数字”
有效等价类2:输入的密码全为“字母”
有效等价类3:输入的密码全为“特殊符号”(除“空格”、“单引号”、“双引号”)
有效等价类4:输入的密码为“数字”和“字母”的组合
有效等价类5:输入的密码为“数字”和“特殊符号”的组合
有效等价类6:输入的密码为“字母”和“特殊符号”的组合
有效等价类7:输入的密码为“数字”和“字母”和“特殊符号”的组合
无效等价类1:输入的密码全为“空格”
无效等价类2:输入的密码全为“单引号”
无效等价类3:输入的密码全为“双引号”
无效等价类4:输入的密码为“空格”和“单引号”的组合
无效等价类5:输入的密码为“空格”和“双引号”的组合
无效等价类6:输入的密码为“空格”和“单引号”和“双引号”的组合
(二)边界值分析法
1.边界值分析法也是一种典型的黑盒测试方法,其主要的测试点 是对“输入”或“输出”的“边界”值进行测试
2.通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界
注意:
(1)边界值分析不是从某个等价类中随便挑一个作为代表,而是使这个等价类的每一个边界都要作为测试条件。
(2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况
(3)边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多的存在于划分的边界上。因此,边界值分析法是在等价类的边界上以及两侧的情况设计测试用例。
(三)因果图分析法
1.这里我们先回顾一下前面介绍的两种黑盒测试方法:等价类划分法和边界值分析法,我们可以发现,等价类划分法和边界值分析法它们都是着重考虑输入条件,但是未考虑输入条件之间的联系、相互结合等。
2.考虑输入条件之间的相互结合可能会产生一些新的情况。但要检查输入条件的结合不是一件容易的事情,即使把所有的输入条件划分成等价类,他们之间的结合情况也相当多。因此,必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例,这就需要利用因果图分析法(逻辑模型)
利用因果图生成测试用例的基本步骤:
①分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。
②分析软件规格说明描述中的语义.找出原因与结果之间, 原因与原因之间对应的关系. 根据这些关系,画出因果图。
③由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不不可能出现. 为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件。
④把因果图转换为判定表。
⑤把判定表的每一列拿出来作为依据,设计测试用例。
(四)错误推断法
在软件测试过程中,人们可以依靠经验和直觉推测系统中可能存在的各种错误,从而有针对性地编写检查这些错误的例子,这就是错误推测法。
基本思想:
①根据以往的测试经验和对系统内部知识的了解,列出系统中各种可能有的错误和容易发生错误的特殊情况,再根据它们来设计测试用例。
②随着在产品测试的实践中对产品的了解的加深和测试经验的丰富,使用错误推测法设计的测试用例往往非常有效。
③可以作为测试设计的一种补充手段,并且积累的经验越丰富,方法使用效率越高。