软件测试基础
测试的基本原则
- 测试显示存在缺陷
- 穷尽测试是不可行的
- 测试尽早介入
- 测试集群性
- 杀虫剂悖论
- 测试活动依赖于测试背景
- 不存在缺陷(就是有用)系统是谬论
测试的基本过程
- 测试计划和控制阶段
- 测试分析和设计阶段
- 测试实现和执行阶段
- 评估出口准则和报告
- 测试活动结束
软件生命周期中的测试
软件开发模型
1.V模型(顺序开发模型)
四种测试级别:
1.组件/单元测试
2.集成测试
3.系统测试
4.验收测试
2.迭代-增量开发模型 3.生命周期模型中的测试
测试级别
组件测试/单元测试
测试依据
典型数据类型
集成测试
测试依据 软件和系统设计文档 系统架构 工作流 用例
典型测试对象 子系统 数据库实现 基础结构 接口 系统配置和配置数据
系统测试
测试依据 系统和软件需求规格说明 用例 功能规格说明 风险分析报告
典型测试对象 系统、用户手册和操作手册 系统配置和配置数据
验收测试
典型类型:用户验收测试、操作(验收)测试、合同和法规性验收测试、Alpha和Bata(或现场)测试
测试依据 用户需求 系统需求 用例 业务流程 风险分析报告
典型测试对象
基于完全集成系统的业务流程 操作与维护流程 用户处理过程 结构 报告 配置数据
测试类型
- 功能测试
- 软件非功能特征测试【性能测试、负载测试、压力测试、可用性测试、可维护性测试、可靠性测试和可移植性测试】
- 软件结构/架构测试【白盒测试】
- 与变更相关的测试(再测试和回归测试)
静态技术
静态分析的工具支持
静态分析的的好处:
- 在测试执行之前尽早发现缺陷;
- 通过度量的计算(比如高复杂性测量),早期警示代码和设计可能存在问题的方面;
- 可以发现在动态测试过程不容易发现的一些缺陷;
- 可以发现软件模块之间的相互依赖性和不一致性,例如链接;
- 改进代码和设计的可维护性;
- 在开发过程中学习经验教训,从而预防缺陷。
通过静态分析工具能够发现的典型缺陷如下:
- 引用一个没有定义值的变量;
- 模块和组件之间接口不一致;
- 从未使用的变量;
- 不可达代码或死代码;
- 逻辑上的遗漏与错误(潜在的无限循环);
- 过于复杂的结构;
- 违背编程规则;
- 安全漏洞;
- 代码和软件模型的语法错误。
测试设计技术
基于规格说明或黑盒测试技术
- 等价类划分
- 边界值分析
- 决策表测试
- 状态转换测试
- 用例测试
基于结构的或白盒技术
- 语句覆盖和覆盖率
- 判定覆盖和覆盖率
- 其他的基于结构的技术
|