黑盒测试也称为功能测试,在完全不考虑软件的内部结构和特性的情况下,测试软件的外部特性。进行黑盒测试主要是为了发现以下几类错误。
1)是否有错误的功能或遗漏的功能
2)界面是否有误?输入是否正确接受?输出是否正确
3)是否有数据结构或外部数据库访问错误?
4)性能是否能够接受?
5)是否有初始化或终止性错误?
常用的黑盒测试技术有等价类划分、边界值分析、错误判断和因果图等。
一、等价类划分
等价类划分法将程序的输入域划分为若干个等价类,然后从每个等价类中选取一个代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类的其他值,这样就可以用少量代表性的测试用例取的较好的测试效果。等价类划分有两种不同的情况:有效等效类和无效等效类。在设计测试用例时,要同时考虑这两种等价类。
定义等价类的原则如下:
- 在输入条件规定了输入值范围或值得个数的情况下,可以定义为一个有效等价类和两个无效等价类。
- 在输入条件规定了输入值的集合或规定了“必须如何”的条件的情况下,可以定义一个有效等价类和一个无效等价类。
- 在输入条件是一个布尔值的情况下,可以定义一个有效等价类和一个无效等价类。
- 在规定了输入数据的一组值(假的n个),并且程序要对每一个输入值分别处理的情况下,可以定义n个有效等价类和一个无效等价类。
- 在规定了输入数据必须遵守的规则的情况下,可以定义一个有效等价类和若干个无效的等价类
- 在确定已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应将该等价类和若干个无效等价类。
二、边界值分析
输入的边界比中间更加容易发生错误,因此用边界分析来补充等价类划分的测试用例设计技术。边界值划分选择等价类边界的测试用例,既注重于输入条件边界,又适用于输出域测试用例。
原则:
1. 如果输入条件规定了值的范围,则应取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据。
2. 如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数据作为测试数据。
3. 根据规格说明的每个输出条件使用上述两条原则。
4. 如果程序的规格说明给出的输入输出域是有序集合,则应选择集合的第一个元素和最后一个元素作为测试用例
5. 如果程序中使用了一个内部数据结构,则应选择这个内部结构边界上的值作为数据用例
6. 分析规格说明,找出其他可能的边界条件。
三、错误推测
错误推测是基于经验和直觉推测程序中的所有可能 存在的错误,从而有针对性地设计测试用例的方法。其基本思想是列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。
四、因果图
因果图法是从自然语言描述的程序规格说明中找出输入条件或是输出条件的等价类,而结果是输出条件