当前位置:文档之家› 软件测试策略与过程ppt课件

软件测试策略与过程ppt课件


不正式 互审
记录员
用户代表
走读
▪通过运行被测程序,检
查运行结果与预期结果的
差异,并分析运行效率和
健壮性等性能 正式
运行程序
审查会议
2.2 软件测试方法 – 测试分类
按是否需查看代码分类 黑盒测试 白盒测试
客户需求
输入
输出 事件驱动
功能测试 数据测试
结构测试 逻辑测试
2.2 软件测试方法 – 测试分类
为代码覆盖设计用例
满足特定覆盖标准
2.3 软件测试的阶段
二、集成测试
什么是集成测试
集成测试是在单元测试的基础上,将所有模块按 照概要设计要求组装成为子系统或系统所进行的 测试
集成测试关注的重点
模块接口的数据交换 各子功能组合起来能否达到预期要求的父功能 模块间是否有不利影响 全局数据结构 单个模块的误差是否会累积放大
2.3 软件测试的阶段
二、 集成测试
4. 优点 (1)可以并行测试所有模块。 (2)需要的测试用例数目少。 (3)测试方法简单、易行。
5. 缺点 (1)由于不可避免存在模块间接口、全局数据结构等 方面的问题,所以一次运行成功的可能性不大。 (2)如果一次集成的模块数量多,集成测试后可能会 出现大量的错误。另外,修改了一处错误之后,很 可能新增更多的新错误,新旧错误混杂,给程序的 错误定位与修改带来很大的麻烦。 (3)即使集成测试通过,也会遗漏很多错误。
第2章 软件测试方法与过程
第2章 软件测试策略与过程
1 软件测试的复杂性与经济性


2
软件测试方法

3

软件测试阶段
4
其它测试类型
第2章 软件测试策略与过程
软件测试流程
ISO 软 件 质 量软 度件 量质 模量 型
质量特性 功能性 可靠性 可使用性
效率 可维护性
可移植性
质量子特性
适合性 准确性 互操作性 依从性 安全性 成熟性 容错性 易恢复性
二、 集成测试
3. 具体方法 举例来说,假设要对某个系统的部分功能(包括4 个模块)进行测试,其功能分解如图:
A
B
C
D
2.3 软件测试的阶段
二、 集成测试
测试过程
Test AUnit Test A
B
D
Test(A;B;C;D)
A C
System Test (A,B,C,D)
Unit Test B
Test B
修复
2.1 软件测试的复杂性与经济性
对待缺陷的基本原则
缺陷的群集现象 缺陷有免疫力 缺陷关联和依赖
测试结果的处理原则
对缺陷进行复查和确认 测试结果的全面检查 出错统计和分析 妥善保存测试过程文档
其他, 6% 代码, 15%
设计, 25%
规格说明书, 54%
软件缺陷构成
2.1 软件测试的复杂性与经济性
Unit Test C Unit TestTDest C
Test D
Tests
◆ Test A(with stubs for B and C) ◆ Test B(with driver for A and stub for D) ◆ Test C(with driver for A) ◆ Test D(with driver for B) ◆ Test(A;B;C;D)
易理解性 易学习性 易操作性
时间特性 资源特性
易分析性 稳定性 易变更性 易测试性
适应性 易安装性 遵循性 易替换性
度量
度 量 由 使 用 单 位 自 行 决 定
2.1 软件测试的复杂性与经济性
软件测试复杂性
测试 无法对程序进行完全的测试
缺陷
测试无法保证被测程序中无 遗留错误
不能修复所有的软件故障
2.3 软件测试的阶段
二、 集成测试
大爆炸集成 1. 目的
尽可能缩短测试时间,使用最少的测试用例验证系统。 2. 定义
大爆炸集成也称为一次性组装或整体拼装,这种集成测 试策略的做法就是把所有通过单元测试的模块一次性集 成到一起进行测试,不考虑组件之间的互相依赖性及可 能存在的风险。
2.3 软件测试的阶段
二、 集成测试
三明治集成(混合集成)
1.目的 综合利用自顶向下和自底向上两种集成测试策略的优 点
2.定义 三明治集成是一种混合增殖式测试策略,综合了自顶 向下和自底向上两种集成方法,把系统划分成三层, 中间一层为目标层,目标层上采用自顶向下集成,目 标层下采用自底向上集成。
2.3 软件测试的阶段
二、 集成测试
自底向上集成
1. 定义
自底向上集成是从系统层次结构图的最底层模块开始按照 层次结构图,逐层向上进行组装和集成测试的方式。 2.方法
.从最底层的模块开始组装; .编制驱动程序,协调测试用例的输入与输出; .测试集成后的构件; .使用实际模块代替驱动程序,按程序结构向上组装测试 后的构件; .重复上面的第二步,直到系统的最顶层模块被加入到系 统中为止。
2.2 软件测试方法 – 测试分类
人工测试和自动化测试 人工测试是人为测试和手工测试的统称。
人为测试的主要方法有桌前检查 (desk checking) ,代码审 查( code review )和走查( walkthrough )。经验表明, 使用这种方法能够有效地发现 30% 到 70% 的逻辑设计和编 码错误。
手工测试指的是在测试过程中,按测试计划一步一步执行程 序,得出测试结果并进行分析的测试行为。
自动化测试指的是利用测试工具来执行测试,并进行 测试结果分析的测试行为。
2.2 软件测试方法 – 测试分类
按测试执行时是否需人工干预分类
手工测试 自动测试
人工测试是人为测试和手工测试的统称。
人为测试的主要方法有桌前检查 (desk checking) ,代码 审查( code review )和走查( walkthrough )。经验 表明,使用这种方法能够有效地发现 30% 到 70% 的逻辑 设计和编码错误。
2.3 软件测试的阶段
二、 集成测试
自顶向下集成 自顶向下的集成测试就是按照系统层次结构图,以主
程序模块为中心,从顶层控制(主控模块)开始,自上 而下按照深度优先或者广度优先策略,对各个模块一边 组装一边进行测试。 采用同设计顺序一样的思路对被测系统进行测试,来验 证系统的稳定性。
2.3 软件测试的阶段
软件测试业务分类
测试阶段或层次
验收测试
系统测试
集成测试
单元测试
功能测试 强壮性测试 性能测试
适用性测试 安全性测试 可靠性测试
白盒测试
方法 黑盒测试
目标/特性
2.2 软件测试方法 – 测试分类
静态测试和动态测试
不运行程序,仅通过
分析或检查等其主他持手人
段达到检测的目的。
内审员
作者
技术专业人员
列席人员
2.3 软件测试的阶段
一、单元测试
单元测试用例设计思路
为系统运行设计测试用例
证明单元至少在某种正常情况下能够运行了。
为正向测试设计用例
验证设计说明书所对应的功能或性能指标是否实现。
为逆向测试设计用例
验证被测软件单元有没有做它不应该做的事情。
为满足特殊需求设计测试用例
验证系统性能、安全性、保密性等。
二、 集成测试
Sandwich Testing Strategy
B
Test E
Bottom Layer Tests
Test F Test B
E
Test B, E, F
Test G
Test D,G
A C
F
Layer I
D
Layer II
G
Layer III
Test A, B, C, D,
E, F, G
Test D
Top Layer Tests
Test A Test C
Test A, B, C, D
2.3 软件测试的阶段
二、 集成测试 Bottom-up Integration
Test E Test F
Test B, E, F Test C
A
B
C
E
F
Layer I
D
Layer II
G
Layer III
Test A, B, C, D,
E, F, G
Test G
Test D,G
2.3 软件测试的阶段
二、 集成测试
Top-down Integration Testing
A
B
C
Layer I
D
Layer II
E
F
G
Layer III
Test A Layer I
Test A, B, C, D Layer I + II
Test A, B, C, D,
E, F, G
All Layers
2.3 软件测试的阶段
自顶向下集成Top down integration (from higher levels no test drivers are needed)
自底向上集成Bottom up integration (from lower levels No test stubs necessary)
三明治集成Sandwich testing (combination of bottom-up and top-down)
经济性
最佳的测试量
测试发现缺陷需 要投入(时间和 成本)
遗留缺陷有风险
2.1 软件测试的复杂性与经济性
测试原则
软件测试应追溯到用户需求 应尽早和不断地测试 穷尽测试是不可能的 具有良好的测试态度
相关主题