当前位置:文档之家› 软件测试与维护

软件测试与维护


7.3.2.白盒法
白盒法小结
类型
说明

语句覆盖
每个可执行语句至少要执行一次
试 弱 判定覆盖
每个判定分支至少执行过一次
的 强

条件覆盖
每一个判定条件中的每一个条件至少获 得过一次可能的值
度 强 判定/条件覆盖 同时满足判定覆盖和条件覆盖的要求
条件组合覆盖 列出判定中所有条件的各种组合值,每 一个可能的条件组合至少被执行一次
23
7.5.1. 集成测试概述
集成测试的内容
集成测试是在单元测试的基础上,将所有的模块按照系统设计的要求 联 合起来进行的测试。
集成测试的对象
经过单元测试之后的程序
集成测试的方法
集成测试和单元测试的不能互相替代的:
- 集成测试关注的是各个模块的接口, 以及各个模块组合之后是否运行正常,
• 最好的测试应该是条件组合覆盖与路径覆盖的结合测试 • 至少应该达到判定/条件覆盖
18
7.3.3.黑盒法
等价类划分法
等价类是指某个输入域的子集和。
• 有效等价类是指对于程序的规格说明来说是合理的,有意义的输入数据集合 • 无效等价类是指对于程序规格说明来说是不合理的,没有意义的数据集合
例:
1
6. 路径覆盖:指程序中所有可能的路径都被至少执行过一次的测试 。
例1的路径覆盖测试用例: (1)A=2, B=0, C=4 (路径:ace) (2)A=3, B=0, C=1 (路径:acd) (3)A=1, B=0, C=2 (路径:abe) (4)A=1, B=1, C=1 (路径:abd)
17
例1的判定/条件覆盖测试用例: (1)A=2,B=0, C=4 (路径: ace) (2)A=1,B=1, C=1 (路径: abd)
5.条件组合覆盖:指列出判定中所有条件的各种组合值,每一个可能的条 件组合至少被执行一次的测试。
例1的条件组合覆盖测试用例: (1)A=2, B=0, C=4 (使得1和5的情况出现,路径:ace) (2)A=2, B=1, C=1 (使得2和6的情况出现,路径:abe) (3)A=1, B=0, C=2 (使得3和7的情况出现,路径:abe) (4)A=1, B=1, C=1 (使得4和8的情况出现,路径:abd)
例:等价类划分中的例子
有效/ 无效
有 效 等 价 类
等价类 0分-59分
测试用例
“0” “1” “50” “58” “59”
说明
最小边界值 比最小边界值稍微大一点 中间任意值 比最大边界值稍微小一点 最大边界值
60分-100 。。。 。。。
“60” 。。。
最小边界值 。。。
20
目录
7.1 概述 7.2 静态测试 7.3 动态测试 7.4 单元测试 7.5 集成测试 7.6 系统测试 7.7 验收测试
建议:对于一个团队中新人比较多的时候推荐 使用会议审查的方法。
12
目录
7.1 概述 7.2 静态测试 7.3 动态测试 7.4 单元测试 7.5 集成测试 7.6 系统测试 7.7 验收测试
13
7.3.1.白盒法与黑盒法的区别与联系
白盒法: 完全了解程序的结构和处理过程的情况下设计测试用例的一种方法。
35
3. 维护的种类
纠错性维护 软件中潜在错误,用户在使用软件时仍将会遇到错误,诊断 和改正这些错误的过程称为纠错性维护。
适应性维护 适应新硬件、操作系统以及支撑软件的升级,对软件进行的 修改和扩充活动称为适应性维护。
完善性维护 为了满足用户新的需求而增加软件功能的活动称为完善性维 护。
- 实施不需要特别条件,容易开展
- 一旦发现错误就知道错误的性质和位置, 不需要查错,因而修改成本低
非常重要并且行之 有效的测试方法!
大公司的经验值: 静态测试检测出的 错误 数可占总错 误数的80%以上
11
7.2.2. 静态测试的方法
静态测试的方法
审查:个人审查 /会议审查(适用于文档和代码) 走查:会议走查(只适用于代码)
实施
8
7.1.3. 测试的原则
常用原则
测试应该“尽早地和不断地进行”。 要清楚地知道完全测试程序是不可能的。 所有的测试都应追溯到用户需求。 将Pareto原则(80%的错误都起源于程序模块中的20%)应用于
软件测试。 为了达到最佳效果,应该由独立的第三方来设计并实施测试。 保证测试用例的完整性和有效性。
大部分是白盒法
- 单元测试关注的是每个单元,每个模 块内部处理。
集成测试的步骤
基本与单元测试相同
24
7.5.2. 集成测试的策略
集成测试的策略
一次性集成方式 渐增式集成方式
集成测试特别提醒: 一般集成测试都是多个人联合进行,所以要求各个测试人员 要及时交流,密切配合,不能有思想上的依赖 。
3. 条件覆盖:指每一个判定条件中的每一个条件至少获得过一次可能的 值的测试 。
例1中在a点条件覆盖测试用例:
(1)A=3,B=0
• 判定覆盖关心整个判定表达式的
(2)A=1,B=1

• 条件覆盖关心判定表达式中的每

条件的值
16
7.3.2.白盒法
4.判定/条件覆盖 :同时满足判定覆盖和条件覆盖的测试。
40
修改程序
在分析理解原有程序并确认程序的错误点之后,就可以对 程序进行修改了。修改时应注意以下几点:
黑盒法: 不考虑程序的内部结构和处理过程,仅仅根据程序的功能来设计测试 用例的一种方法。
A 只有黑盒测试 可检出的bug
B 白/黑盒测试 都可检出的
bug
C 只有白盒测试 可检出的bug
D 白/黑盒测试都 不可检出的bug
14
7.3.2.白盒法
白盒法的技术指标:覆盖率
白盒法的例子程序和对应流程图
9
目录
7.1 概述 7.2 静态测试 7.3 动态测试 7.4 单元测试 7.5 集成测试 7.6 系统测试
静态测试的概念
- 静态测试是指不执行程序,对文档以及代码进行的测试。 - 静态测试的对象是文档和程序。
静态测试的特点
- 主要由人手工方式进行,可以充分发挥人主动性
39
排查方法
排查故障的工作内容一般包含如下内容: - 过去履历的确认,检索同样的现象、确认是否已经回
答过了; - 再现测试,是否发生同样现象; - 从用户处采集到的数据以及软件日志文件的解析; - 用户的失误、其它程序的问题的排除; - 代码解析(找不到原因、无法再现时的手段); - 回避措施的研究。
2
3
4
0分
60分
100分
有效/无效
等价类
测试用例
有效等价类
0分-59分
“50”
60分-100
“78”
无效等价类
0分以下
“-23”
100分以上
“156”
非整数
“63.5”
非数字的输入 “ab”
输入为空
“”
19
7.3.3.黑盒法
边界值分析法
经验表明处理边界情况时程序最容易发生错误,要特别注意重点测试。
例1:源程序
void sample(int A, int B, float C) {
if ( (A >1) && (B = =0) ) {
C = C / A; } if ( (A = =2) || (C >1) ) {
C = C +1; } }
a
A>1 & B=0
b No
A=2 or C>1
No
d
Yes
7
7.1.2. 测试的过程
测试工作的流程
软件开发
需求分析 概要设计 详细设计
编码
需求分析审查 概要设计审查
系统测试设计 集成测试设计
系统测试实施 集成测试实施
详细设计审查
单元测试设计
单元测试实施
代码审查 静态测试
动态测试
软件测试 = 静态测试 + 动态测试
设计阶段
测试阶段
验收 验收测试
设计 验收测试
通俗说法: 找出一段程序或者一份软件文档中问题的工作 ,就叫做软件测试。
测试的对象
- 文档 - 程序
5
7.1.1. 测试的概念
测试的目的
能够证明软件正常工作 发现错误
常见误区:
发现错误是 软件测试的唯一目的
以提高软件质量,进行质量控制
6
7.1.2. 测试的过程
测试工作的主要内容
理解软件产品的功能要求和设计内容,并对其 进行测试,检查软件是否与用户需求一致、是否与 设计一致,写出相应测试结果报告。
下面以纠正性维护为例,讨论软件维护的 工作。
38
纠错型维护的工作内容
收到故障报告后应该收集获得以下信息,以确认故障的问 题点:
- 发生时间; - 软件模块名、软件版本; - 操作系统版本; - 现象和内容:发生时的现象、事前的操作内容、发生后
的操作,再现性的有无性等; - 故障发生时其他运行的软件情况; - 硬件、网络的状况; - 软件的日志文件。
软件测试与维护
1
本讲内容
● 软件测试 ● 软件维护
2
一 软件测试
3
1 概述 2 静态测试 3 动态测试 4 单元测试 5 集成测试 6 系统测试 7 验收测试
4
7.1.1. 测试的概念
测试的定义
IEEE给出的软件测试定义: 软件测试使用人工的或自动的手段来运行或检测某个系统的
过程, 其目的在于检验它是否满足约定的需求或是比较预期结果 与实际结果之间的差别。
相关主题