软件测试第二章单元测试

上传人:ch****o 文档编号:253242178 上传时间:2024-12-09 格式:PPT 页数:26 大小:464.50KB
收藏 版权申诉 举报 下载
软件测试第二章单元测试_第1页
第1页 / 共26页
软件测试第二章单元测试_第2页
第2页 / 共26页
软件测试第二章单元测试_第3页
第3页 / 共26页
资源描述:

《软件测试第二章单元测试》由会员分享,可在线阅读,更多相关《软件测试第二章单元测试(26页珍藏版)》请在装配图网上搜索。

1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,*,第,2,章:单元测试,主讲,:,林跃进,2024/12/9,1,3.1单元测试概述,定义:单元测试又称程序模块测试,是检验程序的最小的单位测试。,单元测试的主要任务,:,单元测试针对每个程序的模块,主要测试,5,个方面的问题:,模块接口、局部数据结构、边界条件、独立的路径、错误处理,2024/12/9,2,3.1单元测试概述,模块接口,这是对模块接口进行

2、的测试,检查进出程序单元的数据流是否正确。模块接口测试必须在任何其它测试之前进行。,2024/12/9,3,3.1单元测试概述,模块接口测试至少需要如下的测试项目:,(1),调用所测模块时的输入参数与模块的形式参数在个数、类型、顺序上是否一致;,(2),所测模块调用子模块时,它输入给子模块的参数与子模块中的形式参数在个数、类型、顺序上是否一致;,(3),是否会修改只是作为输入值的形式参数,(4),调用标准函数的参数在个数、类型、顺序上是否正确;,(5),全局变量的定义在各模块中是否一致。,2024/12/9,4,3.1单元测试概述,局部数据结构,在模块工作过程中,必须测试模块内部的数据能否保持

3、完整性,包括内部数据的内容、形式及相互关系不发生错误。,2024/12/9,5,对于局部数据结构,应该在单元测试中注意发现以下几类错误:,(1),变量从来没有被使用,包括可能别的地方使用了外部变量或函数。,(2),变量没有初始化。,(3),错误的类型转换。,(4),数组越界。,(5),变量或函数名称拼写错误,包括使用了外部变量或者函数。,2024/12/9,6,3.1单元测试概述,边界条件测试:,主要检查临界数据是否正确处理。,(,1,)普通合法数据是否正确处理;,(,2,)普通非法数据是否正确处理;,(,3,)边界内最接近边界的(合法,/,非法)数据是否正确处理。,2024/12/9,7,3

4、.1单元测试概述,独立路径测试,在单元测试中,最主要的测试是针对路径的测试。测试用例必须能够发现由于计算错误、不正确的判定或不正常的控制流而产生的错误。,2024/12/9,8,3.1单元测试概述,常见的错误有:,死代码,错误的计算优先级;,精度错误,包括比较运算错误、赋值错误;,表达式的不正确符号,包括,=,=,=,!=,;,循环变量的使用错误,包括错误赋值。,2024/12/9,9,3.1单元测试概述,出错处理,测试出错处理的重点是模块在工作中发生了错误,其中的出错处理设施是否有效。,检验程序中的出错处理可能面对的情况有:,2024/12/9,10,3.1单元测试概述,(1),是否检查错误

5、出现,包括资源使用前后、其它模块使用前后;,(2),出现错误是否进行处理,包括抛出错误、通知用户、进行记录。,(3),错误处理是否有效,包括在系统干预前处理、报告和记录的错误都应真实详细。,2024/12/9,11,3.2 单元测试的执行过程,单元测试的执行过程,单元测试常常是和代码编写工作同时进行的,在完成了程序编写、复查和语法正确性验证后,就应进行单元测试用例设计。,在单元测试时,如果模块不是独立的程序,需要设置一些,辅助测试模块,。辅助测试模块有两种:,2024/12/9,12,3.2 单元测试的执行过程,(,1,),驱动模块,(Drive),用来模拟被测试模块的上一级模块,相当于被测模

6、块的主程序。它接收数据,将相关数据传送给被测模块,启动被测模块,并打印出相应的结果。,(,2,),桩模块,(Stub),用来模拟被测模块工作过程中所调用的模块。它们一般只进行很少的数据处理。,2024/12/9,13,1.单元测试,2024/12/9,14,3.2 单元测试的执行过程,驱动模块和桩模块都是额外的开销,虽然在单元测试中必须编写,,但并不需要作为最终的产品提供给用户。,2024/12/9,15,单元测试,#include,void iszero(int m),if(m!=0),printf(“%d”,m);,else printf(“%d”,1);,void main(void),

7、int a5;,int i=0;,printf(“,输入,5,个整数,:n,”);,for(i=0;i=4;i+),scanf(“%d”,iszero(ai);,2024/12/9,16,3.3 单元测试的执行过程,在代码编写完成后的单元测试工作主要分为两个步骤:人工静态检查(静态测试)和动态执行跟踪(动态测试)。,2024/12/9,17,3.3 单元测试的执行过程,静态测试是指测试不运行的部分,只是检查和审阅。,动态测试是指通常意义上的测试,运行和使用软件。,单元测试的依据是详细设计和概要设计!,2024/12/9,18,3.3 单元测试的执行过程,静态测试,不运行程序,通过程序员本人或其

8、它人员执行人工检查,主要检查:,代码风格和规则检查,程序设计和结构的检查,业务逻辑检查,同行评审:走读、小组评审、审查。(,p.23,),2024/12/9,19,静态测试,(,1,)走读,一般检查代码,也可以是检查设计文档。,一般是项目内部的其它开发人员,不涉及公司高层或外部专家。,2024/12/9,20,静态测试,(,2,)小组评审,由一个正式的组织对产品进行评价。确认任何与需求规格、设计规格或标准不一致的地方或者在检查后给出可替换的建议。,参与者主要是公司技术领导或权威公司及外部专家,主要适用于需求规格和概要设计的评审。,2024/12/9,21,静态测试,(,3,)审查,遵循严格的过

9、程,人员经过培训,检查过程有标准,检查针对实际的产品或半成品,目的是发现存在的错误。,参加人员:公司内部设计、开发、测试、质量等部门中的工作性相关的员工组成。,2024/12/9,22,静态测试,详细设计静态测试(,p.25,),代码静态测试(,p.26,),2024/12/9,23,动态测试,动态测试,黑盒测试,白盒测试,2024/12/9,24,3.4 基于JUnit的单元测试,详细见实验指导书,2024/12/9,25,作业,1,。简述单元测试的步骤,2,。什么是驱动模块和桩模块?为下面的函数构造一个驱动模块,并至少设计,5,条测试用例。,/*,计算两个整数的除法运算,将结果转换为单一精度输出*,/,float divide(int a,int b),float c;,if(b=0),printf(“,除数不能为,0,!”,);,return 0;,c=(float)a/b;,return c;,2024/12/9,26,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  sobing.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!