白盒测试
- 白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。
方法:
- 逻辑覆盖:以程序的内部逻辑结构为基础,分为语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖等。
- 基本路径测试:在程序控制流程的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。
语句覆盖
优点
- 可以很直观地从源代码得到测试用例,无须细分每条判定表达式。
缺点
- 由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件是无法测试的。如在多分支的逻辑运算中无法全面的考虑。语句覆盖是最弱的逻辑覆盖。
分支覆盖
这样就只需要一半
优点
- 判定覆盖具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。
缺点
- 往往大部分的判定语句是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。判定覆盖仍是弱的逻辑覆盖。
条件覆盖
优点
- 增加了对条件判定情况的测试,增加了测试路径。
缺点
- 条件覆盖不一定包含判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。
条件组合覆盖
路径覆盖
黑盒测试
- 测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性
- 只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明
- 又叫做功能测试或数据驱动测试
等价类划分
简单例子
边界值分析
常见的边界值
- 对16-bit 的整数而言 32767 和 -32768 是边界
屏幕上光标在最左上、最右下位置
报表的第一行和最后一行
数组元素的第一个和最后一个
循环的第 0 次、第 1 次和倒数第 2 次、最后一次
例子
- 例如,如果程序的规格说明中规定:“重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……”。作为测试用例,我们应取10及50,还应取10.01,49.99,9.99及50.01等。
- 比如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。
- 例如,某程序的规格说明要求计算出"每月保险金扣除额为0至1165.25元",其测试用例可取0.00及1165.25、还可取-0.01及1165.26等。
- 再如一程序属于情报检索系统,要求每次“最少显示1条、最多显示4条情报摘要”,这时我们应考虑的测试用例包括1和4,还应包括0和5等。
状态测试
案例
静态分析