UnitTesting单元测试详解课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《UnitTesting单元测试详解课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UnitTesting 单元测试 详解 课件
- 资源描述:
-
1、思路5W1H1D: What Why When Who Ways How Demo?(二期)什么是单元测试概念: 单元测试是对最小的可测试软件元素(单元)实施的测试,它所测试的 内容包括内部结构(如逻辑和数据流)以及单元的功能和可观测的行为。 什么是单元(1)可测试的、最小的、不可再分的程序模块。(2)有明确的功能、规格定义。(3)有明确的接口定义,清晰地与同一程序的其他单元划分开来。举例:如C语言中单元可以是一个函数,C+这样的面向对象的语言中,基本单元是类,Java里单元也指一个类,图形化的软件中可以指一个窗口或一个菜单等。进行单元测试的重要性时间方面:如果认真的做好了单元测试,在系统集成
2、联调时非常顺利,会节约很多时间,反之不做单元测试或简单随便做,在集成时总会遇到一些简单问题就花了很长时间去查找,时间成本更大!1:3:12时间单位!测试效果:单元测试的效果是非常明显的。首先,单元测试做好,集成测试和系统测试时就很顺利。其次,单元测试易发现一些深层次的问题,同时还会发现一些很容易发现而在集成测试和系统测试很难发现的问题。再次,单元测试证明代码做了什么,如何做的,是否做了不该做的事情。测试成本:不同阶段(单元,集成,系统测试)发现问题,定位问题和解决问题成本。”半年开发,三年维护,终生改BUG。”虫虫和天上的星星一样多。”产品质量:单元测试的好与坏直接影响到产品的质量,代码中的一
3、个小错误就导致了整个产品的质量降低一个指标或者导致更严重的后果,做好单元测试这种情况是可以完全避免的。(理由有些牵强。)单元测试的优点(了解)它是一种验证行为测试,为以后的开发提供支缓。为后期开发中增加功能或更改程序结构,甚至为代码的重构提供了保障,可以自由的对程序进行改进。它是一种设计行为编写单元测试,从调用者角度观察、思考,特别是先写测试(test-first),把程序设计成易于调用和可测试的,即迫使我们解除软件中的耦合。另外还可以使编码人员在编码时产生预测试,将程序的缺陷降低到最小。它是一种编写文档的行为单元测试是一种无价的文档,它是展示函数或类如何使用的最佳文档。这份文档是可编译、可运
4、行的,并且它保持最新,永远与代码同步。它具有回归性自动化的单元测试避免了代码出现回归,编写完成之后,可以随时随地的快速运行测试。何时开始单元测试什么时候测试?单元测试越早越好,早到什么程度?极限编程(Extreme Programming,或简称XP)讲究TDD,即测试驱动开发,先编写测试代码,再进行开发。在实际的工作中,可以不必过分强调先什么后什么,重要的是高效和感觉舒适。从经验来看,先编写产品函数的框架,然后编写测试函数,针对产品函数的功能编写测试用例,然后编写产品函数的代码,每写一个功能点都运行测试,随时补充测试用例。所谓先编写产品函数的框架,是指先编写函数空的实现,有返回值的直接返回一
5、个合适值,编译通过后再编写测试代码,这时,函数名、参数表、返回类型都应该确定下来了,所编写的测试代码以后需修改的可能性比较小。谁来做单元测试谁来做单元测试执行者:开发人员或者白盒测试人员维护一个专门单元测试的测试团队成本太高,或者是有某些专门白盒测试人员,让其去熟悉开发架构和业务实现方式进行测试开发,设计测试用例和编写测试代码进行单元测试也得不偿失。无论由哪个部门做单元测试,都要面对一些问题,但开发部门所面对的问题可以借助工具来解决,而由测试部门进行单元测试,要么无法真正实施,要么代价昂贵。业内选择:更多的是由开发人员来完成单元测试的内容单元测试又称模块测试,属于白盒测试(不局限于白盒测试方法
6、),是最小单位的测试。单元测试既可以是白盒测试也可以是黑盒测试。白盒测试主要是检查程序的内部结构、逻辑、循环和路径。黑盒测试注重对程序功能方面的要求,它只用到程序的规格说明,没有用到程序的内部结构。单元测试针对程序单元非一个独立可运行的程序,因此,在考虑测试模块时,同时要考虑到它和外界其他模块的联系,用一些辅助模块去模拟与被测模块关联。这些模块分为两种:驱动模块和桩模块。桩和驱动模块由来 单元测试针对程序单元非一个独立可运行的程序,因此,在考虑测试模块时,同时要考虑到它和外界其他模块的联系,用一些辅助模块去模拟与被测模块关联。这些模块分为两种:驱动模块和桩模块。驱动模块:相当于所测模块的主程序
7、。它接收测试数据,把这些测试数据传送给被测模块,最后再输出实测结果。桩模块:由被测模块调用,用以代替由被测单元所调用的模块的功能,返回适当的数据或进行适当的操作使被测单元能继续运行下去,同时还要进行一定的数据处理,如打印入口和返回等,以便检验被测模块与其下级模块的接口。假设把任务分给了7个人,每个人负责实现一个模块。小张负责B模块,他完成了B编码,现在需要开阵单元测试工作,先分析结构图: 1、由于B模块不是最顶层模块,所以它不包含main函数(A模块包含main函数),也就不能独立运行。2、B模块调用了D模块和E模块,而目前D模块和E模块都还没有开发好,那么想让B模块通过编译器的编译也是不可能
8、的。那么怎样才能测试B模块呢?需要做:1、写两个模块Sd和Se分别代替D模块和E模块(函数名、返回值、传递的参数相同),这样B模块就可以通过编译了。Sd模块和Se模块就是桩模块。2、写一个模块Da用来代替A模块,里面包含main函数,可以在main函数中调用B模块,让B模块运行起来。Da模块就是驱动模块。实例单元测试-测试方法和用例设计方法单元测试的方法可以是白盒测试也可以是黑盒测试:1,什么是白盒,什么是黑盒?2,白盒测试用例设计方法?3,黑盒测试用例设计方法?(规范(规格)导出、等价类划分、边界值分析法、错误推测法和因果图分析方法。)不做详细介绍,可以参阅网上资料了解。白盒测试&黑盒测试黑
展开阅读全文