【软件测试】黑盒及白盒的测试方法
黑盒测试方法
等价类划分法、边界值分析法、因果图法、场景法、正交实验设计法、判定表驱动分析法、错误推测法、功能图分析法、状态迁移
等价类划分方法
使用有代表性的数据来测试程序;着重考虑输入条件
把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
有效等价类
指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合;-- 检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类
指除了有效等价类外的其他数据的集合
软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。
示例:登录用户名 只可包含字母,数字 且长度不能超过20个字符
有效:字母;数字;字母+数字;长度0<n<=20
无效:汉字;特殊字符;长度n=0 或n>20
边界值分析方法
边界值分析方法是对等价类方法的补充;就是对输入或输出的边界值进行测试的一种黑盒测试方法;着重考虑输入条件
与等价类的区别
1) 边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
2) 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
常见的边界值
对16-bit的整数而言32767和-32768是边界
屏幕上光标在最左上、最右下位置
报表的第一行和最后一行
数组元素的第一个和最后一个
循环的第0次、第1次和倒数第2次、最后一次
错误推测方法
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。
列举出程序中所有可能有的错误和容易发生错误的特殊情况。
因果图方法
采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例
四种关系:恒等,与,或,非
约束:即输入状态相互之间还可能存在某些依赖关系
方法:
(1)找出所有输入条件和输出条件,并编号
(2)分析输入条件之间的关系,是互斥还是可以同时满足。
(3)画出输入条件的排列组合情况。
(4)编写测试用例。
流程图
针对整个系统业务功能流程
方法:
(1)详细了解需求。
(2)根据需求说明或界面原型,找出业务流程的各个页面以及流转关系。
(3)画出业务流图,或路径图。
(4)编写测试用例,覆盖所有的路径分支。
判定表驱动分析方法
因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。
功能图分析方法
由状态迁移图和逻辑功能模型构成;
功能图由状态迁移图和布尔函数组成。状态迁移图用状态和迁移来描述,一个状态指出数据输入的位置(或时间),而迁移则指明状态的改变,同时要依靠判定表或因果图表示的逻辑功能。
正交试验
因子:所有参与试验的影响试验结果的条件称为因子
水平:影响试验因子的取值或输入称为水平
研究多因素多水平的一种试验设计方法
直接对比法
直观分析法
状态迁移
关注被测对象的状态变化,在需求规格说明书中是否有不可达到的状态和非法的状态,是否产生非法的状态转移
白盒测试方法
代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异
静态测试
不用运行程序的测试;
指静态分析的关键功能是检查软件的表示和描述是否一致,有无冲突或者歧义。
动态测试
需要执行代码,通过运行程序找到问题;
指当软件系统在模拟的或真实的环境中执行之前、之中和之后,对软件系统行为的分析
在动态分析技术中,最重要的技术是路径和分支测试。
覆盖标准:逻辑覆盖、循环覆盖和基本路径测试
逻辑覆盖包括 语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、修改条件判断覆盖、路径覆盖>
语句覆盖: 每条语句至少执行一次。
判定覆盖: 每个判定的每个分支至少执行一次。
条件覆盖: 每个判定的每个条件应取到各种可能的值。
判定/条件覆盖: 同时满足判定覆盖条件覆盖。
条件组合覆盖: 每个判定中各条件的每一种组合至少出现一次。
修改条件判断覆盖:每一个判断的所有可能结果都出现过、每一个判断中所有条件的所有可能结果都出现过、每一个进入点及结束点都执行过、判断中每一个条件都可以独立的影响判断的结果。
路径覆盖: 使程序中每一条可能的路径至少执行一次。
如果万事开头难 那请结局一定圆满 @ Phoenixy
-------------------------------------------------------------------------------------