网站大量收购独家精品文档,联系QQ:2885784924

第5章特定环境及应用测试〔关于面向对象测试〕.pptVIP

第5章特定环境及应用测试〔关于面向对象测试〕.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章特定环境及应用测试〔关于面向对象测试〕

5.4 面向对象软件的测试 P113 面向对象的基本概念 面向对象的一些基本概念:类、属性、方法、对象、封装、继承、多态等。 类:具有相同属性和相同行为的对象的集合。如“车”。子类,如汽车、自行车等。 属性:每一类有不同属性特征,如汽车有轮子、发动机驱动、用汽油等。 方法:每一类又有不同的方法动作,如汽车有启动、加速、减速、拐弯、停止等。 对象——每一类可实例化为多个对象。 封装:将类的部分属性或全部属性屏蔽起来,其他类不能直接访问,如将类设为private. 继承:指子类从父类那里继承了全部属性和方法。 多态:指子类在继承父类方法时,有可能赋予自身的含义而把父类方法覆盖掉。 如java的特点:面向对象、跨平台、健壮、多线程、分布式。 面向对象的软件测试与传统软件测试 面向对象技术所独有的封装、继承、多态等特点给测试带来一系列新的问题,增加了测试的难度。与传统的面向过程的程序设计相比,面向对象程序设计产生错误的可能性增大,或者使得传统软件测试中的重点不再那么突出,使原来测试经验和实践证明的次要方面成为了主要问题。 例如:函数 y = Function(x) 如果该函数写在传统的面向过程的程序中,通常考虑的是函数Function()本身的行为特点。但若写在面向对象的程序中,就不得不同时考虑基类函数Base::Function() 的行为和继承类函数Derived::Function()的行为。 面向对象的软件测试与传统软件测试 面向对象技术的特点给测试带来的新问题具体表现为: (1)封装把数据及对数据的操作封装在一起,限制了对象属性对外的透明性和外界对它的操作权限,在某种程度上避免了对数据的非法操作,有效防止了故障的扩散。但同时,封装机制也给测试数据的生成、测试路径的选取以及测试结构的分析带来了困难。 (2)继承实现了共享父类中定义的数据和操作,同时也可定义新的特征。子类是在新的环境中存在,所以父类的正确性不能保证子类的正确性。继承使代码的重用率得到了提高,但同时也使故障的传播几率增加。 (3)多态和动态绑定增加了系统运行中可能的执行路径,而且给面向对象软件带来了严重的不确定性,给测试覆盖率的活动带来新的困难。 面向对象的软件测试与传统软件测试 (4)与传统软件相比,面向对象软件具有更复杂的依赖关系,一个类将不可避免的依赖于其它的类,从而增加了面向对象软件测试的难度。 传统软件中存在的依赖关系有:变量间的数据依赖;模块间的调用依赖;变量与其类型间的定义依赖;模块与其变量间的功能依赖。 面向对象软件除了存在上述依赖关系外,还存在以下的依赖关系:类与类间的依赖;类与操作间的依赖;类与消息间的依赖;类与变量间的依赖;操作与变量间的依赖;操作与消息间的依赖;操作与操作间的依赖。 面向对象软件测试模型 面向对象的程序结构不再是传统的功能模块结构,对每个开发阶段都有不同以往的要求和结果,已经不可能用功能细化的观点来检测面向对象分析和设计的结果。因此,传统的测试模型对面向对象软件已经不再适用。 面向对象的软件开发模型将开发过程定义为面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)三个阶段。针对这种开发模型,应该建立一种新的测试模型。 面向对象软件测试模型(续) 面向对象测试的概述 分为以下几种: 面向对象分析的测试(OOA Test) 面向对象设计的测试(OOD Test) OOA Test和OOD Test是对分析结果和设计结果的测试,主要是检查验证“系统需求说明书”、“概要设计”等需求设计文档,采用静态分析方法,分析系统的构架是否合理,各个类的设计是否合理,有无多余或缺少的类,以及每个类中的属性和方法设计是否合理,有无多余或缺少的属性和方法等。 面向对象编码的测试(OOP Test) OOP Test 主要针对编程风格和程序代码实现进行测试。OOP Test分为单元测试和集成测试。面向对象单元测试针对程序内部具体单一功能的模块进行测试,比如在C++程序中主要就是对类成员函数的测试。面向对象集成测试主要对系统内部的相互服务进行测试,如成员函数间的相互作用、类间的消息传递等。面向对象系统测试是基于面向对象集成测试的最后阶段的测试,主要以用户需求为测试标准。 面向对象的单元测试 传统的单元测试是针对程序的最小模块如函数。沿用单元测试的概念,面向对象单元测试实际测试类成员函数。单独的看待类的成员函数,传统的测试方法都可使用,如等价类划分法、因果图法、边值分析法、逻辑覆盖法、路径分析法等等。 面向对象编程的特性使得对成员函数的测试又不完全等同于传统的函数测试。尤其是继承特性和多态特性,使子类继承或重载的父类成员函数出现了传统测试中未遇见的问题。要考虑如下两个问题: (

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档