单元测试与集成测试.pptx
《单元测试与集成测试.pptx》由会员分享,可在线阅读,更多相关《单元测试与集成测试.pptx(61页珍藏版)》请在咨信网上搜索。
1、Chapter 5提纲提纲导言导言 单元测试单元测试单元测试考虑事项单元测试考虑事项单元测试规程单元测试规程 单元测试局限性单元测试局限性 集成测试集成测试自顶向下集成自顶向下集成自底向上集成自底向上集成 混合式集成混合式集成 端到端集成测试端到端集成测试 0C202 Software Testing5-1Chapter 5导言导言(1/2)按阶段进行测试是一种基本的测试策略。按阶段进行测试是一种基本的测试策略。单元测试(大量使用白盒测试)。单元测试(大量使用白盒测试)。集成测试(大量使用黑盒测试,白盒测试辅助);集成测试(大量使用黑盒测试,白盒测试辅助);系统测试(软、硬件环境)系统测试(软
2、、硬件环境)确认测试(按照需求确认)确认测试(按照需求确认)0C202 Software Testing5-2Chapter 5提纲提纲导言导言 单元测试单元测试单元测试考虑事项单元测试考虑事项单元测试规程单元测试规程 单元测试局限性单元测试局限性 集成测试集成测试自顶向下集成自顶向下集成自底向上集成自底向上集成 混合式集成混合式集成 端到端集成测试端到端集成测试 0C202 Software Testing5-3Chapter 5单元测试单元测试 单元测试(单元测试(Unit testing)是对最小的软件设)是对最小的软件设计单元(模块或源程序单元)的验证工作。计单元(模块或源程序单元)的
3、验证工作。面向过程的设计:一个单元可能是单独的程面向过程的设计:一个单元可能是单独的程序、函数、过程、网页以及菜单等。序、函数、过程、网页以及菜单等。面向对象的设计面向对象的设计:单元是类,可能是基单元是类,可能是基/父类、父类、抽象类或派生抽象类或派生/子类。子类。0C202 Software Testing5-4Chapter 5单元测试单元测试 使用构件级别的设计规格说明书作为指南,使用构件级别的设计规格说明书作为指南,对重要的控制路径进行测试以发现模块内的对重要的控制路径进行测试以发现模块内的错误。错误。重点放到内部处理逻辑和构件边界内的数据重点放到内部处理逻辑和构件边界内的数据结构。
4、这种测试可以对多个构件并行进行。结构。这种测试可以对多个构件并行进行。通常情况下,由开发者执行测试而不是由最通常情况下,由开发者执行测试而不是由最终用户执行测试,主要使用白盒测试技术,终用户执行测试,主要使用白盒测试技术,并辅助使用黑盒测试技术,如边界值分析法。并辅助使用黑盒测试技术,如边界值分析法。0C202 Software Testing5-5Chapter 5单元测试考虑事项单元测试考虑事项 单元测试对构件的五方面进行测试:单元测试对构件的五方面进行测试:模块或构件接口;模块或构件接口;局部数据结构;局部数据结构;边界条件;边界条件;独立路径;独立路径;处理错误的路径。处理错误的路径。
5、0C202 Software Testing5-6Chapter 5模块或构件接口模块或构件接口对模块接口的测试保证在测试时进出程序对模块接口的测试保证在测试时进出程序单元的数据流是正确的,单元的数据流是正确的,接口名称,传入参数的个数、类型、顺序等是接口名称,传入参数的个数、类型、顺序等是否与模块接口匹配;否与模块接口匹配;模块输出或返回值或类型是否正确。模块输出或返回值或类型是否正确。重点关注模块之间的数据输入与输出,优先开重点关注模块之间的数据输入与输出,优先开展穿越模块接口的数据流的测试。展穿越模块接口的数据流的测试。0C202 Software Testing5-7Chapter 5
6、局部数据结构局部数据结构对局部数据结构的检查保证临时存储的数对局部数据结构的检查保证临时存储的数据在算法执行的整个过程中都能维持其完据在算法执行的整个过程中都能维持其完整性。整性。另外,应该测试局部数据结构,并在单元另外,应该测试局部数据结构,并在单元测试时确认对于全局数据的局部影响执行。测试时确认对于全局数据的局部影响执行。0C202 Software Testing5-8Chapter 5边界条件边界条件保证模块在所限定或约束处理的条件边界上能够保证模块在所限定或约束处理的条件边界上能够正确执行。正确执行。边界条件的测试是利用黑盒测试技术中的边界值边界条件的测试是利用黑盒测试技术中的边界值
7、分析法。分析法。0C202 Software Testing5-9Chapter 5独立路径独立路径 (1/3)覆盖控制结构中的独立路径覆盖控制结构中的独立路径(基本路径基本路径)。关注循环测试。关注循环测试。0C202 Software Testing5-10Chapter 5独立路径独立路径(2/3)计算中常见的错误有:计算中常见的错误有:(1)误解的或者不正确的算术优先级;误解的或者不正确的算术优先级;(2)混合模式的操作;混合模式的操作;(3)不正确的初始化;不正确的初始化;(4)精度不够精确;精度不够精确;(5)表达式的不正确符号表示。表达式的不正确符号表示。0C202 Softwa
8、re Testing5-11Chapter 5独立路径独立路径(3/3)比较和控制流是紧密地耦合在一起的比较和控制流是紧密地耦合在一起的(也就是说,也就是说,控制流的转移是在比较之后发生的控制流的转移是在比较之后发生的),测试用例应,测试用例应当能够发现下列错误:当能够发现下列错误:(1)不同数据类型的比较;不同数据类型的比较;(2)不正确的逻辑操作或优先级;不正确的逻辑操作或优先级;(3)应该相等的地方由于精度的错误而不能相等;应该相等的地方由于精度的错误而不能相等;(4)不正确的比较或者变量;不正确的比较或者变量;(5)不正常的或者不存在的循环中止;不正常的或者不存在的循环中止;(6)当遇
9、到分支循环的时候不能退出;当遇到分支循环的时候不能退出;(7)不适当地修改循环变量。不适当地修改循环变量。0C202 Software Testing5-12Chapter 5处理错误的路径处理错误的路径 (1/2)对所有处理错误的路径进行测试(对所有处理错误的路径进行测试(Try Catch,Throw处理机制)。好的软件设计处理机制)。好的软件设计中错误条件是可以预料的,而且当错误真中错误条件是可以预料的,而且当错误真的发生的时候,错误处理路径被建立,以的发生的时候,错误处理路径被建立,以重定向或者干脆终止处理。重定向或者干脆终止处理。但要避免把错误处理过程加到软件中去,但从但要避免把错误
10、处理过程加到软件中去,但从不进行测试。不进行测试。0C202 Software Testing5-13Chapter 5处理错误的路径处理错误的路径 (2/2)在错误处理部分应当考虑的潜在错误:在错误处理部分应当考虑的潜在错误:(1)对错误描述费解。)对错误描述费解。(2)所报的错误与真正遇到的错误不一致。)所报的错误与真正遇到的错误不一致。(3)在错误处理之前错误条件先引起系统干)在错误处理之前错误条件先引起系统干涉造成系统异常。涉造成系统异常。(4)例外条件处理不正确。)例外条件处理不正确。(5)错误描述没有提供足够的信息来帮助确)错误描述没有提供足够的信息来帮助确定错误发生的位置(程序设
11、计中建立错误日志、定错误发生的位置(程序设计中建立错误日志、运行日志、出错信息表)。运行日志、出错信息表)。0C202 Software Testing5-14Chapter 5单元测试规程单元测试规程 (1/5)单元测试通常看成为是附属于编码步骤。单元测试通常看成为是附属于编码步骤。在源代码级的代码被开发、复审、和语法在源代码级的代码被开发、复审、和语法正确性验证之后,单元测试用例设计就开正确性验证之后,单元测试用例设计就开始了。始了。对设计信息的复审可能能够为建立前面讨对设计信息的复审可能能够为建立前面讨论过的每一类错误的测试用例提供指导,论过的每一类错误的测试用例提供指导,每一个测试用例
12、都应当和一系列的预期结每一个测试用例都应当和一系列的预期结果联系在一起。果联系在一起。0C202 Software Testing5-15Chapter 5单元测试规程单元测试规程 (2/5)开发驱动器(开发驱动器(driver)或)或/和程序桩和程序桩(stub)。在面向对象的程序里,模仿对象(在面向对象的程序里,模仿对象(mock objects)技术取代程序)技术取代程序桩桩(stub)。模仿对象是以一种可控方式来模拟真实对象行为的仿。模仿对象是以一种可控方式来模拟真实对象行为的仿真对象。真对象。(模仿外接数据源)(模仿外接数据源)0C202 Software Testing5-16Ch
13、apter 5单元测试规程单元测试规程 (3/5)驱动器和程序桩都是单元测试中的额外的驱动器和程序桩都是单元测试中的额外的开销,必须开发但又不和最终软件一起交开销,必须开发但又不和最终软件一起交付。付。驱动器和程序桩的简单程度反映了模块设驱动器和程序桩的简单程度反映了模块设计高内聚、低耦合的程度。计高内聚、低耦合的程度。0C202 Software Testing5-17Chapter 5单元测试规程单元测试规程 (4/5)单元测试通常是被自动执行,但可能仍由手工进单元测试通常是被自动执行,但可能仍由手工进行的。行的。自动化方法能有效地实现隔离一个单元并验证其自动化方法能有效地实现隔离一个单元
14、并验证其正确性。正确性。0C202 Software Testing5-18Chapter 5单元测试规程单元测试规程 (5/5)成为程序员创建具有松偶合高内聚代码体成为程序员创建具有松偶合高内聚代码体的一个动力。的一个动力。设计模式、单元测试和重构常结合使用以设计模式、单元测试和重构常结合使用以便形成最理想解决方案。便形成最理想解决方案。0C202 Software Testing5-19Chapter 5单元测试局限性单元测试局限性 单元测试不能捕获程序中的每一个错误。单元测试不能捕获程序中的每一个错误。根据定义,单元测试只测试单元自身的功根据定义,单元测试只测试单元自身的功能。能。因此它
15、不捕获集成错误、性能问题或其它任何因此它不捕获集成错误、性能问题或其它任何系统范围的问题。系统范围的问题。另外,要预料现实中被测程序可能接受到的输另外,要预料现实中被测程序可能接受到的输入的所有特殊情况是一项不易之事。入的所有特殊情况是一项不易之事。对于任何非平凡的软件块要测试所用的输入组对于任何非平凡的软件块要测试所用的输入组合是不现实的。合是不现实的。0C202 Software Testing5-20Chapter 5提纲提纲导言导言 单元测试单元测试单元测试考虑事项单元测试考虑事项单元测试规程单元测试规程 单元测试局限性单元测试局限性 集成测试集成测试自顶向下集成自顶向下集成自底向上集
16、成自底向上集成 混合式集成混合式集成 端到端集成测试端到端集成测试 0C202 Software Testing5-21Chapter 5集成测试集成测试 (1/3)单独的软件模块被结合在一起,作为一个群接受单独的软件模块被结合在一起,作为一个群接受测试。测试。什么时候进行集成测试什么时候进行集成测试?(1)由若干单元或模块要组成一个构件;)由若干单元或模块要组成一个构件;(2)由若干构件组成为一个工件;)由若干构件组成为一个工件;(3)由若干工件组成为一个系统。集成测试被定义为)由若干工件组成为一个系统。集成测试被定义为在单元测试与系统测试之间级别的测试。在单元测试与系统测试之间级别的测试。
17、0C202 Software Testing5-22Chapter 5集成测试集成测试 (2/3)接口连接问题:接口连接问题:数据可能在通过接口的时候丢失;数据可能在通过接口的时候丢失;一个模块可能对另外一个模块产生无法预料的副作用;一个模块可能对另外一个模块产生无法预料的副作用;当子函数被联到一起的时候,可能不能达到期望中的当子函数被联到一起的时候,可能不能达到期望中的功能;功能;累计单个模块中可以接受的不精确性;累计单个模块中可以接受的不精确性;全局数据结构可能也会存在问题。全局数据结构可能也会存在问题。0C202 Software Testing5-23Chapter 5集成测试集成测试
18、 (3/3)集成测试构造程序并实施测试以发现与接集成测试构造程序并实施测试以发现与接口连接有关的错误,口连接有关的错误,目标是把通过了单元测试的模块拿来,构造一目标是把通过了单元测试的模块拿来,构造一个在设计中所描述的程序结构。个在设计中所描述的程序结构。有两种集成测试策略:有两种集成测试策略:瞬时集成测试和增量集成测试。瞬时集成测试和增量集成测试。0C202 Software Testing5-24Chapter 5瞬时集成测试瞬时集成测试 (1/2)经历单元测试阶段,把模块组合成一个最终系统,经历单元测试阶段,把模块组合成一个最终系统,并观察它是否运转正常。并观察它是否运转正常。难于定位错
19、误。难于定位错误。错误修正过程中错误无限循环。错误修正过程中错误无限循环。0C202 Software Testing5-25Chapter 5瞬时集成测试瞬时集成测试 (2/2)开发小程序的时候都会用到瞬时集成测试技术,开发小程序的时候都会用到瞬时集成测试技术,但对大型程序不太适用。但对大型程序不太适用。瞬时集成方法有这样几个缺点:瞬时集成方法有这样几个缺点:(1)对独立组件测试需要驱动程序和树桩程序的支持;)对独立组件测试需要驱动程序和树桩程序的支持;(2)由于组件一次性结合,很难找出错误的原因;)由于组件一次性结合,很难找出错误的原因;(3)不容易辨别接口错误和其他类型的错误。)不容易辨
20、别接口错误和其他类型的错误。所以,我们推荐使用增量集成策略。所以,我们推荐使用增量集成策略。0C202 Software Testing5-26Chapter 5增量集成增量集成程序先分成小的部分进行构造和测试,这程序先分成小的部分进行构造和测试,这个时候错误比较容易分离和修正;接口也个时候错误比较容易分离和修正;接口也更容易进行彻底地测试;而且也可以应用更容易进行彻底地测试;而且也可以应用一种系统化的测试方法。一种系统化的测试方法。增量集成测试会有格外的开销,但会大大减少增量集成测试会有格外的开销,但会大大减少发现和改正错误的时间。发现和改正错误的时间。0C202 Software Test
21、ing5-27Chapter 5 0C202 Software Testing5-28自顶向下的集成集成方式:深度优先、广度优先 Chapter 5自顶向下集成自顶向下集成 在现实中一般是结合使用深度优先、宽度优先进在现实中一般是结合使用深度优先、宽度优先进行测试。行测试。初始阶段所有的模块可能只是提供部分功能,这初始阶段所有的模块可能只是提供部分功能,这可以用宽度优先技术进行测试。可以用宽度优先技术进行测试。当模块越来越精化,模块的功能也越来越全,可当模块越来越精化,模块的功能也越来越全,可以对一个模块进行深度优先测试而同时所有的模以对一个模块进行深度优先测试而同时所有的模块进行宽度优先测试
22、。块进行宽度优先测试。0C202 Software Testing5-29Chapter 5自顶向下集成自顶向下集成 集成过程:集成过程:1.1.主控模块作为测试驱动器,所有的程序桩由直接隶属主控模块作为测试驱动器,所有的程序桩由直接隶属于主控模块的各模块替换。于主控模块的各模块替换。2.2.根据深度或广度优先,子模块的程序桩依次地被替换根据深度或广度优先,子模块的程序桩依次地被替换为真正的模块。为真正的模块。3.3.在每一个模块集成的时候都要进行测试。在每一个模块集成的时候都要进行测试。4.4.在完成了每一次测试之后,又一个程序桩被真正的模在完成了每一次测试之后,又一个程序桩被真正的模块替换
23、。块替换。5.5.可以用回归测试来保证没有引进新的错误。可以用回归测试来保证没有引进新的错误。循环继续进行,直至这个系统结构被构造完成。循环继续进行,直至这个系统结构被构造完成。0C202 Software Testing5-30Chapter 5自顶向下集成自顶向下集成自顶向下的优点:自顶向下的优点:(1)对高层行为进行早期确认:)对高层行为进行早期确认:(2)至多只需一个驱动程序;)至多只需一个驱动程序;(3)每步可以只加一个模块;)每步可以只加一个模块;(4)支持深度优先和宽度优先。)支持深度优先和宽度优先。自顶向下的缺点:自顶向下的缺点:(1)对低层行为确认比较晚;)对低层行为确认比较
24、晚;(2)对缺少的元素需要编写树桩程序;)对缺少的元素需要编写树桩程序;(3)测试案例的输入和输出可能很难明确表示。)测试案例的输入和输出可能很难明确表示。0C202 Software Testing5-31Chapter 5自底向上集成自底向上集成 (1/3)一旦各个独立的模块测试完毕,把它们组合起来一旦各个独立的模块测试完毕,把它们组合起来形成一组模块,称为造件(形成一组模块,称为造件(build)。)。一组造件再由第二个测试装置进行测试。这个过一组造件再由第二个测试装置进行测试。这个过程将继续直到造件中包括整个应用系统。程将继续直到造件中包括整个应用系统。因为自底向上集成,在进行时要求所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单元测试 集成 测试
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。