概念
黑盒测试也是功能测试,测试每个功能是否可以正常使用。把程序看成一个无法打开的盒子,在完全不考虑程序内部结构核内部特的情况下,在程序接口进行测试。只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
以用户的角度,从输入数据与输出数据的对应关系出发进行测试
黑盒测试法注重于测试软件的功能需求,主要试图发现下列几类错误。
- 功能不正确或遗漏;
- 界面错误;
- 输入和输出错误;
- 数据库访问错误;
- 性能错误;
- 初始化和终止错误等。
划分等价类
把程序的输入域划分为若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。
概念:
是指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,合理的假定:测试某等价类的代表值就等于对这一类其他值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中去一个数据作为测试的输入条件,就可以用少量代表性的测试数据,取得较好的测试结果。
有效等价类:对程序的规格说明来说是合理的,有意义的,输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义相反。
设计测试用例时两个都需要考虑到,软件需要接受合理和不合理的数据,确保软件的可靠性。
确定等价类的原则
- 输入条件规定了取值范围或者取值个数:可以确定一个有效等价类和两个无效等价类
- 输入条件规定了输入值的集合或者规定“必须如何”:可以确定的那个一个有效等价类和一个无效等价类
- 输入条件时一个布尔值:可以确定一个有效等价类和一个无效等价类
- 规定了输入数据的一组值(n个),并且程序对每个输入值分别处理:可以确定n个有效等价类和一个无效等价类
- 规定了输入数据必须遵守的规则:可以确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
- 确认已知的等价类中个元素在程序处理中的方式,则应再将该等价类进一步划分为更小的等价类
设计测试用例
输入条件 有效等价类 无效等价类
- 为每个等价类规定一个唯一的编号
- 设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖
- 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖
边界值分析法
思考
大多数的错误发生在输入输出的边界上,而不是输入输出的范围内,因此针对各边界情况设计测试用例,可以查出更多的错误。
首先确定边界情况,一般取正好等于,刚刚大于或刚刚小于边界的值作为测试数据。
原则
- 输入条件规定了值得范围:取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值
- 输入条件规定了值的个数:取最大个数,最小个数,比最小个数少一,比最大个数多一的值
- 程序的规格说明给出的输入域或输出域时有序集合:取集合的第一个元素和最后一个元素
- 程序中使用一个内部数据结构:选择这个内部数据结构的边界上的值作为测试用例
- 分析规格说明,找出其他可能的边界条件
错误推测法
此方法时基于经验和直觉推测程序中左右可能存在的各种错误,从而有针对性的设计测试用例的方法
基本思想:列举出程序中所有可能的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如:在单元测试时曾经列出的许多在模块中常见的错误,以前产品测试中曾经发现的错误等,都是经验的总结。输入和输出数据为0的情况,输入表格为空格或输入表格只有一行,都是容易发生的错误。
因果图法
- 分析软件规格说明描述中,哪些是原因(输入条件或输入条件的等价类),哪些是结果(输出条件),给每个原因和结果赋予一个标识符
- 分析软件规格说明描述中的语义,找出原因和结果之间,原因与原因之间对应的关系,根据这些关系画出因果图
- 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件
- 把因果图转换为判定表
从因果图生成的测试用例(局部、组合关系下的)包括了所有输入数据的取true和false的情况,构成的测试用例数目达到最少,且测试用例数量随输入数据数量的增加而线性地增加。