About 黑盒测试
key:完全不考虑程序内部结构和内部特性,在程序接口处进行测试。
主要依据:规格说明书(软件验证)、用户手册(软件审核)
黑盒测试是通过输入数据、进行操作、观察输出结果,检查软件系统是否按照需求规格说明书的规定正常运行,软件是否能适当地接收输入数据并产生正确的输出结果,且保持外部信息(如数据库或文件的完整性)
黑盒测试 | 方法 |
功能测试 | 等价类划分、边值分析、因果图、错误推测法等 |
非功能测试 |
性能测试、强度测试、兼容性测试、配置测试、安全测试、安装与卸载测试等 |
- 等价类划分
等价类划分=有效等价类+无效等价类
有效等价类是合理的、有意义的输入数据构成的集合;无效等价类是不合理的、无意义的输入数据构成的集合。
等价类表:
输入条件 | 有效等价类 | 无效等价类 |
...... | ...... | ...... |
...... | ...... | ...... |
eg:若输入值为学生成绩,则0≤成绩≤100为有效等价类,<0、>100为无效等价类。
- 边界值分析方法
通过选择等价类边界值的测试用例进行测试。(大量的错误是发生在输入或输出范围的边界上)
PS:1、等价类的每个边界都要作为测试条件
2、不仅要考虑输入条件边界,还要考虑输出域边界产生的测试情况
典型测试数据:
- 对于循环结构,第0次、最后1次、第1次和倒数第2次是边界。
- 对于16位整型数据,32767和-32768是边界(2^16=65536)。
- 数组的第一个和最后一个的下标元素是边界。
- 报表的第一行和最后一行是边界。
- 错误推测法
列举出程序中可能存在的错误和容易发生错误的特殊情况,根据它们测试。
- 因果图法
利用图解法分析输入的各种组合情况,从而设计测试用例。适用于描述对于多种条件的组合,响应产生多个动作的形式。
用Ci表示原因、Ei表示结果,有恒等、非(~)、或(∨)、与(∧)四种因果关系。
从输入考虑,有5种约束,E互斥、I包含、O唯一、R要求、M强制。
基于因果图法生成测试用例的基本步骤:
- 分析软件规格说明书中哪些是原因(输入条件)、哪些是结果(输出条件)。
- 找出原因与原因之间、原因与结果之间对应的关系,画出因果图。
- 表明约束条件
- 把因果图转换为判定表
- 为判定表中的每一例设计测试用例
- 场景法
基本流:采用黑直线表示,是经过用例的最简单的路径(无任何差错,程序从开始直接执行到错误)
备用流:采用不同颜色表示,一个备用流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中也可以起源于另一个备用流,或终止用例,不再加入到各种基本流中。
根据每个经过用例的路径,可以确定不同的用例场景。
应用场景法的步骤如下:
- 根据说明,描述出程序的基本流和各项备用流。
- 根据基本流和各项备用流生成不同的场景。
- 对每个场景生成相应的测试用例。
- 对生成的所有测试用例重新复审,去掉多余的测试用例,对每一个测试用例确定测试数据值。
- 判定表驱动
判定表是分析和表达多逻辑条件下执行不同操作的情况下的工具。包括四个部分:条件桩、动作桩、条件项、具体项。条件项列出问题的所有条件;动作桩列出了问题规定可能采取的操作;条件项列出了针对条件的取值和在所有可能情况下的真假值;具体项列出了在条件项的各种取值下应该采取的动作。
判定表的建立步骤:
- 确定规则的个数,假如有n个条件,每个条件有2个取值(0,1),故有n种规则。
- 列出所用条件项和动作项
- 填入条件取值
- 填入集体动作
- 简化,合并相似规则(相同动作)
- 正交实验法
因子:影响实验指标的条件
因子的状态:影响实现因子的条件
利用正交试验法设计测试用例的步骤:
- 提取功能说明,构造因子-状态表
- 加权筛选,生成因素分析表
- 利用正交表构造测试数据集(正交表需要查阅)
优点:可以节省测试成本,可控制生成的测试用例数量,且具有一定的覆盖率。
心得:在学习的过程中,感觉每种测试方法其实都有交叉的地方,还是需要多看实例才能比较好的理解和区别。
- 强度测试
强度测试包括超载运行测试(对软件在单位时间内所能承受的荷载的极限【eg:超过10个以上用户同时登陆】进行验证)和容量测试(对软件系统处理大量数据【eg:传输文件数据量极大】的能力进行检验)。
- 性能测试
验证软件的性能在正常环境和系统条件下重复使用时是否还能满足性能指标,是系统测试中难度较大的测试。有专门的性能测试软件,测试前要设计测试的模式。
- 安全测试
为了检验软件的数据保密性和数据完整性。有进行安全检验的专门人员,测试人员只需要从功能方面做安全测试。
- 安装与卸载测试
安装测试:注意系统的提示是否清楚明了、操作是否容易、过程是否太冗长、各系统设置是否正确、安装后是否正常运行、是否干扰到系统其它程序等。
卸载测试:注意系统提示是否清楚明了、操作是否简单、卸载是否彻底、系统设置是否恢复安装前状态等。
- 配置测试
- 软件安装与卸载过程中系统配置的变化
- 人为改变配置,系统是否有相应变化(网络软件的测试中常用)
- 硬件的不同组合是否与软件兼容
- 兼容性测试
- 操作系统兼容
- 硬件兼容
- 软件兼容
- 数据库兼容
- 数据兼容
- 故障修复测试
为了保证软件无论在遇到特殊事故或任何出错情况下,一旦故障排除,即能迅速恢复到事故或出错前的状况,继续正常运行。
- 使用性能测试
从用户的角度去审视
- 帮助菜单及用户说明测试
黑盒测试策略
- 首先进行等价类划分
- 必须使用边界值分析法
- 可以用错误推测法追加一些测试用例
- 对照程序逻辑,检查一设计出的测试用例的逻辑覆盖程度
- 程序的功能说明中含有输入条件的组合情况,一开始就可选用因果图法和判别表驱动法
- 对于参数配置类的软件,要用正交试验法选择较少的组合方式达到最佳效果
- 对于业务流清晰的系统,可利用场景法