软件测试第二章单元测试1研究报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
边界条件测试:
主要检查临界数据是否正确处理。 (1)普通合法数据是否正确处理; (2)普通非法数据是否正确处理; (3)边界内最接近边界的(合法/非法)
Байду номын сангаас数据是否正确处理。
2020/8/9
7
3.1单元测试概述
独立路径测试
在单元测试中,最主要的测试是 针对路径的测试。测试用例必须 能够发现由于计算错误、不正确 的判定或不正常的控制流而产生 的错误。
2020/8/9
17
3.3 单元测试的执行过程
静态测试是指测试不运行的部分——只是 检查和审阅。
动态测试是指通常意义上的测试——运行 和使用软件。
单元测试的依据是详细设计和概要设计!
2020/8/9
18
3.3 单元测试的执行过程
静态测试
不运行程序,通过程序员本人或其它 人员执行人工检查,主要检查: 代码风格和规则检查 程序设计和结构的检查 业务逻辑检查
2020/8/9
22
静态测试
详细设计静态测试(p.25) 代码静态测试 (p.26)
2020/8/9
23
动态测试
动态测试
黑盒测试 白盒测试
2020/8/9
24
3.4 基于JUnit的单元测试
详细见实验指导书
2020/8/9
25
作业
1。简述单元测试的步骤
2。什么是驱动模块和桩模块?为下面的函数构造一个 驱动模块,并至少设计5条测试用例。
2020/8/9
8
3.1单元测试概述
常见的错误有:
死代码 错误的计算优先级; 精度错误,包括比较运算错误、赋值错
误; 表达式的不正确符号,包括
>,>=,=,==,!=; 循环变量的使用错误,包括错误赋值。
2020/8/9
9
3.1单元测试概述
出错处理
测试出错处理的重点是模块在工作中发生 了错误,其中的出错处理设施是否有效。
(1)驱动模块(Drive) 用来模拟被测 试模块的上一级模块,相当于被测模 块的主程序。它接收数据,将相关数 据传送给被测模块,启动被测模块, 并打印出相应的结果。
(2)桩模块(Stub) 用来模拟被测模 块工作过程中所调用的模块。它们一 般只进行很少的数据处理。
2020/8/9
13
1.单元测试
/*计算两个整数的除法运算,将结果转换为单一精度输 出*/
float divide(int a,int b)
{ float c;
if(b==0)
printf(“除数不能为0!”);
return 0;
c=(float )a/b;
return c;
} 2020/8/9
26
11
3.2 单元测试的执行过程
单元测试的执行过程
单元测试常常是和代码编写工作同时 进行的,在完成了程序编写、复查和 语法正确性验证后,就应进行单元测 试用例设计。
在单元测试时,如果模块不是独立的 程序,需要设置一些辅助测试模块。 辅助测试模块有两种:
2020/8/9
12
3.2 单元测试的执行过程
模块接口
这是对模块接口进行的测试,检查进 出程序单元的数据流是否正确。模块 接口测试必须在任何其它测试之前进 行。
2020/8/9
3
3.1单元测试概述
局部数据结构
在模块工作过程中,必须测试模块内 部的数据能否保持完整性,包括内部 数据的内容、形式及相互关系不发生 错误。
2020/8/9
5
2020/8/9
14
3.2 单元测试的执行过程
驱动模块和桩模块都是额外的开销,虽然 在单元测试中必须编写,但并不需要作为 最终的产品提供给用户。
2020/8/9
15
单元测试
void main (void) {
#include <stdio.h> void iszero(int m) {
if(m!=0) printf(“%d”,m);
参与者主要是公司技术领导或权威公 司及外部专家,主要适用于需求规格 和概要设计的评审。
2020/8/9
21
静态测试
(3)审查
遵循严格的过程,人员经过培训,检 查过程有标准,检查针对实际的产品 或半成品,目的是发现存在的错误。
参加人员:公司内部设计、开发、测 试、质量等部门中的工作性相关的员 工组成。
第2章: 单元测试
主讲: 林跃进
2020/8/9
1
3.1单元测试概述
定义:单元测试又称程序模块测试,是检验程 序的最小的单位测试。
单元测试的主要任务:
单元测试针对每个程序的模块,主要 测试5个方面的问题:
模块接口、局部数据结构、边界条件、 独立的路径、错误处理
2020/8/9
2
3.1单元测试概述
对于局部数据结构,应该在单元测试中注意发 现以下几类错误:
(1)变量从来没有被使用,包括可 能别的地方使用了外部变量或函 数。
(2)变量没有初始化。 (3)错误的类型转换。 (4)数组越界。 (5) 变量或函数名称拼写错误,包
括使用了外部变量或者函数。
2020/8/9
6
3.1单元测试概述
检验程序中的出错处理可能面对的情况有:
2020/8/9
10
3.1单元测试概述
(1)是否检查错误出现,包括资源使用 前后、其它模块使用前后;
(2)出现错误是否进行处理,包括抛出 错误、通知用户、进行记录。
(3)错误处理是否有效,包括在系统干 预前处理、报告和记录的错误都应真 实详细。
2020/8/9
同行评审:走读、小组评审、审 查。(p.23)
2020/8/9
19
静态测试
(1)走读
一般检查代码,也可以是检查设计文 档。
一般是项目内部的其它开发人员,不 涉及公司高层或外部专家。
2020/8/9
20
静态测试
(2)小组评审
由一个正式的组织对产品进行评价。 确认任何与需求规格、设计规格或标 准不一致的地方或者在检查后给出可 替换的建议。
else printf(“%d”,1); }
int a[5]; int i=0; printf(“输入5个整数:\n”); for(i=0;i<=4;i++) {
scanf(“%d”,&a[i]); iszero(a[i]); }
}
2020/8/9
16
3.3 单元测试的执行过程
在代码编写完成后的单元测试工作主 要分为两个步骤:人工静态检查(静 态测试)和动态执行跟踪(动态测 试)。
主要检查临界数据是否正确处理。 (1)普通合法数据是否正确处理; (2)普通非法数据是否正确处理; (3)边界内最接近边界的(合法/非法)
Байду номын сангаас数据是否正确处理。
2020/8/9
7
3.1单元测试概述
独立路径测试
在单元测试中,最主要的测试是 针对路径的测试。测试用例必须 能够发现由于计算错误、不正确 的判定或不正常的控制流而产生 的错误。
2020/8/9
17
3.3 单元测试的执行过程
静态测试是指测试不运行的部分——只是 检查和审阅。
动态测试是指通常意义上的测试——运行 和使用软件。
单元测试的依据是详细设计和概要设计!
2020/8/9
18
3.3 单元测试的执行过程
静态测试
不运行程序,通过程序员本人或其它 人员执行人工检查,主要检查: 代码风格和规则检查 程序设计和结构的检查 业务逻辑检查
2020/8/9
22
静态测试
详细设计静态测试(p.25) 代码静态测试 (p.26)
2020/8/9
23
动态测试
动态测试
黑盒测试 白盒测试
2020/8/9
24
3.4 基于JUnit的单元测试
详细见实验指导书
2020/8/9
25
作业
1。简述单元测试的步骤
2。什么是驱动模块和桩模块?为下面的函数构造一个 驱动模块,并至少设计5条测试用例。
2020/8/9
8
3.1单元测试概述
常见的错误有:
死代码 错误的计算优先级; 精度错误,包括比较运算错误、赋值错
误; 表达式的不正确符号,包括
>,>=,=,==,!=; 循环变量的使用错误,包括错误赋值。
2020/8/9
9
3.1单元测试概述
出错处理
测试出错处理的重点是模块在工作中发生 了错误,其中的出错处理设施是否有效。
(1)驱动模块(Drive) 用来模拟被测 试模块的上一级模块,相当于被测模 块的主程序。它接收数据,将相关数 据传送给被测模块,启动被测模块, 并打印出相应的结果。
(2)桩模块(Stub) 用来模拟被测模 块工作过程中所调用的模块。它们一 般只进行很少的数据处理。
2020/8/9
13
1.单元测试
/*计算两个整数的除法运算,将结果转换为单一精度输 出*/
float divide(int a,int b)
{ float c;
if(b==0)
printf(“除数不能为0!”);
return 0;
c=(float )a/b;
return c;
} 2020/8/9
26
11
3.2 单元测试的执行过程
单元测试的执行过程
单元测试常常是和代码编写工作同时 进行的,在完成了程序编写、复查和 语法正确性验证后,就应进行单元测 试用例设计。
在单元测试时,如果模块不是独立的 程序,需要设置一些辅助测试模块。 辅助测试模块有两种:
2020/8/9
12
3.2 单元测试的执行过程
模块接口
这是对模块接口进行的测试,检查进 出程序单元的数据流是否正确。模块 接口测试必须在任何其它测试之前进 行。
2020/8/9
3
3.1单元测试概述
局部数据结构
在模块工作过程中,必须测试模块内 部的数据能否保持完整性,包括内部 数据的内容、形式及相互关系不发生 错误。
2020/8/9
5
2020/8/9
14
3.2 单元测试的执行过程
驱动模块和桩模块都是额外的开销,虽然 在单元测试中必须编写,但并不需要作为 最终的产品提供给用户。
2020/8/9
15
单元测试
void main (void) {
#include <stdio.h> void iszero(int m) {
if(m!=0) printf(“%d”,m);
参与者主要是公司技术领导或权威公 司及外部专家,主要适用于需求规格 和概要设计的评审。
2020/8/9
21
静态测试
(3)审查
遵循严格的过程,人员经过培训,检 查过程有标准,检查针对实际的产品 或半成品,目的是发现存在的错误。
参加人员:公司内部设计、开发、测 试、质量等部门中的工作性相关的员 工组成。
第2章: 单元测试
主讲: 林跃进
2020/8/9
1
3.1单元测试概述
定义:单元测试又称程序模块测试,是检验程 序的最小的单位测试。
单元测试的主要任务:
单元测试针对每个程序的模块,主要 测试5个方面的问题:
模块接口、局部数据结构、边界条件、 独立的路径、错误处理
2020/8/9
2
3.1单元测试概述
对于局部数据结构,应该在单元测试中注意发 现以下几类错误:
(1)变量从来没有被使用,包括可 能别的地方使用了外部变量或函 数。
(2)变量没有初始化。 (3)错误的类型转换。 (4)数组越界。 (5) 变量或函数名称拼写错误,包
括使用了外部变量或者函数。
2020/8/9
6
3.1单元测试概述
检验程序中的出错处理可能面对的情况有:
2020/8/9
10
3.1单元测试概述
(1)是否检查错误出现,包括资源使用 前后、其它模块使用前后;
(2)出现错误是否进行处理,包括抛出 错误、通知用户、进行记录。
(3)错误处理是否有效,包括在系统干 预前处理、报告和记录的错误都应真 实详细。
2020/8/9
同行评审:走读、小组评审、审 查。(p.23)
2020/8/9
19
静态测试
(1)走读
一般检查代码,也可以是检查设计文 档。
一般是项目内部的其它开发人员,不 涉及公司高层或外部专家。
2020/8/9
20
静态测试
(2)小组评审
由一个正式的组织对产品进行评价。 确认任何与需求规格、设计规格或标 准不一致的地方或者在检查后给出可 替换的建议。
else printf(“%d”,1); }
int a[5]; int i=0; printf(“输入5个整数:\n”); for(i=0;i<=4;i++) {
scanf(“%d”,&a[i]); iszero(a[i]); }
}
2020/8/9
16
3.3 单元测试的执行过程
在代码编写完成后的单元测试工作主 要分为两个步骤:人工静态检查(静 态测试)和动态执行跟踪(动态测 试)。