软件测试技术基础学习笔记之测试方法
上一篇 / 下一篇 2009-01-06 18:26:05 / 个人分类:测试基础知识
51Testing软件测试网(^*^R4oDC3i
51Testing软件测试网4j@0K:m.XueA
51Testing软件测试网_?v-_ jML+Pf_
51Testing软件测试网lTF)Q_{x-H【摘要】这里将学习软件测试的方法及其分类。主要了解内容包括黑盒测试和白盒测试、静态测试和动态测试、人工测试和自动化测试等其他分类的测试方法。51Testing软件测试网%Uj&d Eld7U `r
51Testing软件测试网k7H&uE?y,D51Testing软件测试网m7J)CRh
X|z,q*r.}$]TjS051Testing软件测试网 X?-M#W\Xa
F!yXN q3z0软件测试从不同角度出发,可以有许多不同的分类。
VO+V m2k)Jxx0!adT(|-sVR0回顾之前的测试过程可以知道:51Testing软件测试网9sK{4mIO*^4My
- 测试用例包含预期结果
- 单元测试参照LLD
- 集成测试参照HLD
- 系统测试参照SRS
- 测试前提必须明白测试对象是什么样子的,然后将实际结果和预期进行比较,这样才能发现缺陷。根据利用的被测对象信息的不同,将采用不同的方法来测试。
白盒测试
概念:
- 白盒测试是依据被测软件分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试,可以不顾程序的整体功能实现情况。
- 白盒测试是基于程序结构的逻辑驱动测试。
- 白盒测试还可称为玻璃盒测试、透明盒测试、开放盒测试、结构化测试、逻辑驱动测试等……
进行白盒测试的原因:
- 测试前期进行,达到一定的逻辑覆盖率指标,基本清除软件内部逻辑控制结构上的问题。
- 保证内部逻辑结构达到一定覆盖程度,保证软件代码质量。
- 发现问题后解决问题的成本低。
常用技术:
- 静态分析技术
- 控制流分析
程序元素:程序的一个条件、语句、语句块……
J:aq-e$@;e(gxP0控制流关系(Control Flow Relation):程序元素和它们之间执行次序的联系;51Testing软件测试网0tU9V2~k
控制流图:对应于控制流关系的图;51Testing软件测试网4Chz6L2I9x8`
控制流矩阵:由控制流图得到,反映相邻程序元素先后顺序的关系;
A0_3q*K$Dm$f"l@0步骤:程序元素-->控制流图-->控制流矩阵-->分析找出存在问题
sqRsH:YXa,_^R V0分析发现的问题:①、转向不存在的标号;②、没有用的语句标号;③、程序入口进入后无法到达的语句;④、不能达到停机语句的语句。51Testing软件测试网)H5U2DxA
- 数据流分析:这个方法主要用于代码优化
\Y.o'o*uL0数据的定义:程序中能改变某程序变量V的值,则该语句定义V
H7i[%^7[051Testing软件测试网3e:YQu2b(_k数据的引用:语句的执行引用了内存中变量V的值,则该语句引用变量V
9U"jv{ C$x051Testing软件测试网FU7ex1E步骤:代码-->数据流表-->分析表得出错误-->修正和优化51Testing软件测试网 S"c}|wS,J;R
k*k Q#J9\u0分析出的错误有两种:①、变量未定义但被引用;②、变量定义但未被引用
9hC+? t^:_0
- 信息流分析:导出程序的信息流关系,为软件开发和确认提供了有益的工具。通过下面三个关系得出。
- 输入变量和语句关系
- 语句和输出变量关系
- 输入和输出变量关系
通过分析上面三个表得出
`0g I)`7tk0
- 未定义的输入变量
- 导致输出变量错误的语句
- 输出变量是否会由非法变量导出
- 动态分析技术
- 逻辑覆盖率测试
- 语句覆盖
- 判定覆盖
- 条件覆盖
- 判定——条件覆盖
- 路径覆盖
- ……
- 程序插装:实现逻辑覆盖率的统计。
- 程序中插入的打印语句,从而确定程序路径是否被执行
特点:
- 测试人员需要了解软件的实现
- 可以检测代码中的每条分支和路径
- 揭示隐藏在代码中的错误
- 对代码的测试比较彻底
- 实现代码结构上的优化
- 投入大,成本高
- 不验证规格的正确性
常用白盒测试工具的功能:
- 性能分析
- 追踪
- 内存分析
- 覆盖率
- 测试用例/报告
- 语法分析
黑盒测试
概念:
- 只考虑被测对象的整体特性,不考虑其内部具体实现
- 被测对象包括一个系统、子系统、模块、子模块、函数等
- 基于规格的测试
常见类型:来源于质量模型
- 功能性测试
- 容量测试:检测软件在处理海量数据时的局限性;
- 负载测试:检测系统在短时间内处理巨大数据量或执行许多功能调用的能力;
- 恢复性测试:保证系统崩溃后能够恢复外部数据的能力;
- 标杆测试:考虑软件和硬件的组合;
- 稳定性测试
- 可靠性测试
- 安全性测试
- 外场测试
- 实验室测试
- ……
常见黑盒测试方法:
- 等价类划分法
- 边界值分析法
- 因果图分析法
- 判定表法
- 状态迁移法
- ……
特点:
- 对大代码单元来说效率高于白盒测试
- 测试人员不需要了解实现的细节,包括特定的编程语言
- 从用户角度进行测试
- 有助于暴露任何规格不一致或有歧义的问题
- 没有清晰的和简明的规格,测试用例很难设计
- 不能控制内部执行路径,会有很多内部程序路径没被测试
- 不能直接针对特定的程序段
比较
,@d vJJs@0黑盒测试
)]L4M]n0白盒测试
'Kv&L+l T8yM4`0定义
Wp;G Vs$K0只考虑其整体特性,不考虑其内部具体实现51Testing软件测试网F.N,frvg
根据内部构造设计用例,内部流程进行测试,不考虑整体51Testing软件测试网,Ak)C?%E6G6RU
依据信息51Testing软件测试网ConL"h:l
基于规格的测试