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

下载本文档

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

文档简介

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

温馨提示

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

评论

0/150

提交评论