单元测试黑盒测试方法Blake-boxTesting-51Testing
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
29
改进的三明治方法
集成测试
30
END
31
12
集成测试
非渐增式模式
13
集成测试
渐增式集成模式与非渐增式集成模式 非渐增式测试模式:先分别测试每个模块,再把所有模块 按设计要求放在一起结合成所要的程序,如大棒模式。 渐增式测试模式:把下一个要测试的模块同已经测试好的 模块结合起来进行测试,测试完以后再把下一个应该测 试的模块结合进来测试。
18
集成测试
自顶向下:宽度优先
A
B C D
•volunteer ??
E
F
19
集成测试
自顶向下:宽度优先
20
集成测试
自底向上
21
集成测试
自底向上
B E A C D F
•volunteer ??
22
集成测试
自底向上
B E A C D F B E d4 d1 d2 d3 B E C F D d5 A C D F
三明治方法
A B E C
集成测试
D F
•volunteer ??
26
三明治方法
集成测试
27
改进的三明治方法
集成测试
改进的三明治集成方法,不仅自两头向中间集成,而且 保证每个模块得到单独的测试,使测试进行得比较彻底 。
28
改进的三明治方法
A B E C
集成测试
D F
•volunteer ??
白盒测试方法(White-box Testing),也称结构测试或
逻辑驱动测试。白盒测试方法是根据模块内部结构了解, 基于内部逻辑结构,针对程序语句、路径、变量状态等来 进行测试,检验程序中的各个分支条件是否得到满足、每 条执行路径是否按预定要求正确的工作。 5
单元测试
驱动程序(driver),对底层或子层模块进行(单元或
14
集成测试
自顶向下
15
非渐增式模式
A B E C D
集成测试
d1 d2 C d3 d4 d5
B
F s1
D
s2 A
E
F
(1)程序结构图
A
B
E
C
D
F
S3
S4
S5
(2)单元测试示意图
16
集成测试
自顶向下:深度优先
A
B C D
•volunteer ??
E
F
17
集成测试
自顶向下:深度优先
桩单元
int stub_add(int a,int b) { if((a==1)&&(b==1)) return 2; if((a==2)&&(b==-1)) return 1; if((a==3)&&(b==0)) return 3; if((a==4)&&(b==1)) return 5; ............. }
内容
•(1)单元测试
驱动程序 桩程序 互动
•(2)集成测试
自顶向下 自底向上 混合策略 三明治方法
1
单元测试
什么是单元测试?
单元测试就是对已实现的软件最小单元进行测试,以保
证构成软件系统的各个单元的质量
单元测试活动中,强调被测试对象的独立性 单元测试应从各个层次来对单元内部算法、外部 功能实现等进行检验,包括对程序代码的评审和 通过运行单元程序来验证其功能特性等内容。
E
F
23
混合策略
集成测试
混合法:对软件结构中较上层,使用的是“自顶向下” 法;对软件结构中较下层,使用的是“自底向上”法, 两者相结合 24
三明治方法
集成测试
采用三明治方法的优点是:它将自顶向下和自底向 上的集成方法有机地结合起来,不需要写桩程序因为在 测试初自底向上集成已经验证了底层模块的正确性。采 用这种方法的主要缺点是:在真正集成之前每一个独立 的模块没有完全测试过。 25
3
单元测试
单元测试的方法
单元测试主要采用白盒测试方法,辅以黑盒测试 方法。白盒测试方法应用于代码评审、单元程序 检验之中,而黑盒测试方法则应用于模块、组件 等大单元的功能测试之中
4
单元测试
黑盒测试 和 白盒测试
黑盒测试方法(Blake-box Testing),是把程序看作一
个不能打开的黑盒子,不考虑程序内部结构和内部特性, 而是考察数据的输入、条件限制和数据输出,完成测试
集成)测试时所编制的调用被测模块的程序,用以模拟被 测模块的上级模块
桩程序(stub),也有人称为存根程序,对顶层或上层
模块进行测试时,所编制的替代下层模块的程序,用以模 拟被测模块工作过程中所调用的模块。
6
单元测试
Test
Aቤተ መጻሕፍቲ ባይዱ
运行
B
C
D
驱动程序 调用
E
F
G
被测模块B 测试结果
桩程序 桩程序
7
单元测试
2
单元测试
单元实现了其特定的功能,如果需要,返回正确的值 单元的运行能够覆盖预先设定的各种逻辑 在单元工作过程中,其内部数据能够保持完整性,包 括全局变量的处理、内部数据的形式、内容及相互关 系等不发生错误 可以接受正确数据,也能处理非法数据,在数据边界 条件上,单元也能够正确工作 该单元的算法合理,性能良好 该单元代码经过扫描,没有发现任何安全性问题
•解释这段代码含义 •volunteer ??
9
单元测试
驱动程序 和 桩程序 示意图
A
B
C
D
E
F
G
Test
•volunteer ??
10
单元测试
驱动程序 和 桩程序 示意图
A
B
C
D
Test
E
F
G
•volunteer ??
11
集成测试
非渐增式模式 采用大棒集成方法,先是对每一个子模块进行测试 (单元测试阶段),然后将所有模块一次性的全部集成 起来进行集成测试 。 因为所有的模块一次集成的,所以很难确定出错的 真正位置、所在的模块、错误的原因。这种方法并不推 荐在任何系统中使用,适合在规模较小的应用系统中使 用。
•解释这段代码含义 •volunteer ??
8
单元测试
驱动单元
void driver(X,Y,Z) { int sum=0; sum=add(X,Y); if(Z==sum) printf("test case CAL_ST_SRS001_001 OK!\n"); else printf("test case CAL_ST_SRS001_001 fail!\n); }
改进的三明治方法
集成测试
30
END
31
12
集成测试
非渐增式模式
13
集成测试
渐增式集成模式与非渐增式集成模式 非渐增式测试模式:先分别测试每个模块,再把所有模块 按设计要求放在一起结合成所要的程序,如大棒模式。 渐增式测试模式:把下一个要测试的模块同已经测试好的 模块结合起来进行测试,测试完以后再把下一个应该测 试的模块结合进来测试。
18
集成测试
自顶向下:宽度优先
A
B C D
•volunteer ??
E
F
19
集成测试
自顶向下:宽度优先
20
集成测试
自底向上
21
集成测试
自底向上
B E A C D F
•volunteer ??
22
集成测试
自底向上
B E A C D F B E d4 d1 d2 d3 B E C F D d5 A C D F
三明治方法
A B E C
集成测试
D F
•volunteer ??
26
三明治方法
集成测试
27
改进的三明治方法
集成测试
改进的三明治集成方法,不仅自两头向中间集成,而且 保证每个模块得到单独的测试,使测试进行得比较彻底 。
28
改进的三明治方法
A B E C
集成测试
D F
•volunteer ??
白盒测试方法(White-box Testing),也称结构测试或
逻辑驱动测试。白盒测试方法是根据模块内部结构了解, 基于内部逻辑结构,针对程序语句、路径、变量状态等来 进行测试,检验程序中的各个分支条件是否得到满足、每 条执行路径是否按预定要求正确的工作。 5
单元测试
驱动程序(driver),对底层或子层模块进行(单元或
14
集成测试
自顶向下
15
非渐增式模式
A B E C D
集成测试
d1 d2 C d3 d4 d5
B
F s1
D
s2 A
E
F
(1)程序结构图
A
B
E
C
D
F
S3
S4
S5
(2)单元测试示意图
16
集成测试
自顶向下:深度优先
A
B C D
•volunteer ??
E
F
17
集成测试
自顶向下:深度优先
桩单元
int stub_add(int a,int b) { if((a==1)&&(b==1)) return 2; if((a==2)&&(b==-1)) return 1; if((a==3)&&(b==0)) return 3; if((a==4)&&(b==1)) return 5; ............. }
内容
•(1)单元测试
驱动程序 桩程序 互动
•(2)集成测试
自顶向下 自底向上 混合策略 三明治方法
1
单元测试
什么是单元测试?
单元测试就是对已实现的软件最小单元进行测试,以保
证构成软件系统的各个单元的质量
单元测试活动中,强调被测试对象的独立性 单元测试应从各个层次来对单元内部算法、外部 功能实现等进行检验,包括对程序代码的评审和 通过运行单元程序来验证其功能特性等内容。
E
F
23
混合策略
集成测试
混合法:对软件结构中较上层,使用的是“自顶向下” 法;对软件结构中较下层,使用的是“自底向上”法, 两者相结合 24
三明治方法
集成测试
采用三明治方法的优点是:它将自顶向下和自底向 上的集成方法有机地结合起来,不需要写桩程序因为在 测试初自底向上集成已经验证了底层模块的正确性。采 用这种方法的主要缺点是:在真正集成之前每一个独立 的模块没有完全测试过。 25
3
单元测试
单元测试的方法
单元测试主要采用白盒测试方法,辅以黑盒测试 方法。白盒测试方法应用于代码评审、单元程序 检验之中,而黑盒测试方法则应用于模块、组件 等大单元的功能测试之中
4
单元测试
黑盒测试 和 白盒测试
黑盒测试方法(Blake-box Testing),是把程序看作一
个不能打开的黑盒子,不考虑程序内部结构和内部特性, 而是考察数据的输入、条件限制和数据输出,完成测试
集成)测试时所编制的调用被测模块的程序,用以模拟被 测模块的上级模块
桩程序(stub),也有人称为存根程序,对顶层或上层
模块进行测试时,所编制的替代下层模块的程序,用以模 拟被测模块工作过程中所调用的模块。
6
单元测试
Test
Aቤተ መጻሕፍቲ ባይዱ
运行
B
C
D
驱动程序 调用
E
F
G
被测模块B 测试结果
桩程序 桩程序
7
单元测试
2
单元测试
单元实现了其特定的功能,如果需要,返回正确的值 单元的运行能够覆盖预先设定的各种逻辑 在单元工作过程中,其内部数据能够保持完整性,包 括全局变量的处理、内部数据的形式、内容及相互关 系等不发生错误 可以接受正确数据,也能处理非法数据,在数据边界 条件上,单元也能够正确工作 该单元的算法合理,性能良好 该单元代码经过扫描,没有发现任何安全性问题
•解释这段代码含义 •volunteer ??
9
单元测试
驱动程序 和 桩程序 示意图
A
B
C
D
E
F
G
Test
•volunteer ??
10
单元测试
驱动程序 和 桩程序 示意图
A
B
C
D
Test
E
F
G
•volunteer ??
11
集成测试
非渐增式模式 采用大棒集成方法,先是对每一个子模块进行测试 (单元测试阶段),然后将所有模块一次性的全部集成 起来进行集成测试 。 因为所有的模块一次集成的,所以很难确定出错的 真正位置、所在的模块、错误的原因。这种方法并不推 荐在任何系统中使用,适合在规模较小的应用系统中使 用。
•解释这段代码含义 •volunteer ??
8
单元测试
驱动单元
void driver(X,Y,Z) { int sum=0; sum=add(X,Y); if(Z==sum) printf("test case CAL_ST_SRS001_001 OK!\n"); else printf("test case CAL_ST_SRS001_001 fail!\n); }