软件测试方法
-
- 1.基于直觉与经验的方法
- 2.基于输入域的方法
- 3.基于组合与优化的方法
- 4.基于逻辑与覆盖的方法
- 5.基于故障的方法
- 6.基于模型的方法
- 7.基于形式的方法
1.基于直觉与经验的方法
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例
-
ALAC测试法
ALAC(Act-like-a-customer)测试方法是一种基于客户使用产品的知识开发出来的测试方法,它的出发点是著名的Pareto 80/20规律。
因果图法
-
多种输入条件的组合,产生多种结果设计测试用例
-
- 分析软件规格说明文档描述的哪些是原因(输入条件),哪些是结果(输出条件),给每个原因和结果赋予一个标示符
- 找出原因与结果,原因与原因之间的对应关系,划出因果图
- 在因果图上标上哪些不可能发生的因果关系,表明约束或限制条件
- 根据因果图,创建判定表,将复杂的逻辑关系和多种条件组合很具体明确的表示出来
- 把判定表的每一行作为依据设计测试用例
-
- 恒等-关系:果 j 取决于因 i。因出现,则果也出现
- 非-关系:只有当因 i 不存在时,果 j 才出现
- 或-关系:如果因 i1 或因 i2 或……因 in 存在时,结果 j 才出现
- 与-关系:只有当因 i1 与因 i2与……因 in 同时存在时,结果 j 才出现
两两组合法
- 大部分缺陷是在两个变量取值冲突的测试时被发现的
- 不仅仅是在所有的组合情况下才会发现所有的测试缺陷
- 这个是“Pairwise Testing”基本原理,不要测试所有的组合,测试所有的“Pairwise ”即可
正交试验法
- 确定影响功能的因子与状态
- 选择一个合适的正交表
- 利用正交表构造测试数据集
4.基于逻辑与覆盖的方法
-
逻辑覆盖法
以程序或系统的内部逻辑结构为基础,分为语句覆盖、判定覆盖、判定-条件覆盖、条件组合覆盖等
-
语句覆盖法的基本思想是设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次
-
能够发现的问题
-
-
判定覆盖法的基本思想是设计若干用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足
-
判定条件覆盖是判定和条件覆盖设计方法的交集,即设计足够的测试用例,使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次
-
-
路径测试法
在程序或业务控制流程的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例
-
- 依据代码绘制流程图
- 确定流程图的圈复杂度
- 确定线性独立路径的基本集合
- 设计测试用例覆盖每条基本路径
-
-
对比
5.基于故障的方法
-
分类
- 故障模型
- 安全漏洞模型
- 性能模型
- 并发故障模型
- 不良习惯模型
- 代码国际化模型
- 易诱骗代码模型
-
步骤
- 预处理/预编译
- 词法分析(Lexical Analysis)
- 语法分析( Parsing) 和语义处理( Semantic Analysis)
- 抽象语法树生成
- 控制流图生成
- IP 扫描
- 人工确认
6.基于模型的方法
通过构建能够正确描述被测软件系统功能特性的模型,然后基于这个模型产生测试用例并执行这些测试用例的过程
-
功能图方法
-
- 每个程序的功能通常由静态说明和动态说明组成
- 静态说明描述了输入条件和输出条件之间的对应关系
- 动态说明描述了输入数据的次序或者转移的次序
- 功能图法就是为了解决动态说明问题的一种测试用例的设计方法
- 功能图由状态迁移图(state transition diagram,STD)和逻辑功能模型(logic function model, LFM)构成
- 功能图法是综合运用黑盒方法和白盒方法来设计测试用例,即整体上选用白盒方法——路径覆盖、分支和条件覆盖等,而局部上选用的是黑盒方法——决策表或因果图方法
- 每个程序的功能通常由静态说明和动态说明组成
-
- 从功能逻辑模型(决策表或因果图)导出局部测试用例,覆盖各个状态的各种输入数据的组合
- 从状态迁移图导出整体的测试用例,以覆盖系统(程序)控制的逻辑路径
-
-
模糊测试方法
- 模糊测试(Fuzz testing)方法,简单的说,就是构造大量的变异数据作为系统的输入,从而检验系统在各种数据情况下是否会出现问题
- 模糊测试方法可模拟黑客对系统发动攻击测试,完成安全性测试,并能应用于服务器的容错性测试
7.基于形式的方法
-
基本概述
- 形式化方法是基于数学的方法(数学表示、精确的数学语义)来描述目标软件系统属性的一种技术
- 形式化方法可应用在软件规格和验证之上,包括软件系统的精确建模和软件规格特性的具体描述,即可以看作是面向模型的形式化方法和面向属性的形式化方法
- 形式化验证,就是根据某些形式规范或属性,使用形式逻辑方法证明其正确性或非正确性
-
具体方法
- 基于模型的方法
- 代数方法
- 过程代数方法
- 基于逻辑的方法
- 基于 络的方法
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!