软件测试第二章单元测试1.ppt_第1页
软件测试第二章单元测试1.ppt_第2页
软件测试第二章单元测试1.ppt_第3页
软件测试第二章单元测试1.ppt_第4页
软件测试第二章单元测试1.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

温馨提示

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

评论

0/150

提交评论