宏观的测试方法
- 黑盒测试:测试应用程序的功能,而不是其内部结构或运作。测试者不需具备应用程序的代码、内部结构和编程语言的专门知识。测试者只需知道什么是系统应该做的事,即当键入一个特定的输入,可得到一定的输出。测试案例是依应用系统应该做的功能,照规范、规格或要求等设计。测试者选择有效输入和无效输入来验证是否正确的输出。此测试方法可适合大部分的软件测试,例如集成测试和系统测试。
- 白盒测试:测试应用程序的内部逻辑,而不是测试应用程序的功能(即黑盒测试)。在白盒测试时,以编程语言的角度来设计测试案例。测试者输入数据验证数据流在程序中的流动路径,并确定适当的输出,类似测试电路中的节点。
- 灰盒测试:介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。
黑盒测试的几种方法
- 等价类(包括无效等价类和有效等价类:选择适当的数据子集,来代表整个数据集。通过降低测试的数目去实现“合理的”覆盖更多的可能数据.以发现更多的软件缺陷)
- 边界值(不是从一个等价类中任选一个例子作为代表,而是将测试边界情况作为重点目标,选取正好等于、刚刚大于或刚刚小于边界值的测试数据)
- 场景法(通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果。场景法一般包含基本流和备用流,从一个流程开始.通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景)
- 错误推断法:根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。在没有需求文档和产品说明书的情况下可进行这种测试。
- 因果图
- 判定表
白盒测试的六种覆盖
- 语句覆盖:使得程序中每条语句至少被执行一次
- 判断覆盖:使得程序中判断语句的每个分支至少执行一次
- 条件覆盖:使得判断中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值
- 判定/条件覆盖:使得判定中每个条件的所有结果至少出现一次,每个判定本身所有结果也至少出现一次
- 组合覆盖:使得每个判定中条件结果的所有组合至少出现一次
- 路径覆盖:覆盖程序中的所有路径
附:
边界值法具体解析
- 宗旨:边界上的点一定要取,开区间取内侧值,闭区间取外侧值(开区间的范围不包括边界,上点是在范围之外的,所以需要再测一个在范围之内,又离上点最近的点,这个值就是范围内离上点最近的点);
- 根据域测试方法可以把测试域划分为上点(边界上的点)、离点(离边界最近的点-开内闭外)、内点(边界内的点);
- 例如:对于1<x<10,边界值取1,2,9,10;对于1≤x<10,边界值取0,1,9,10;对于1≤x≤10,边界值取0,1,10,11
|