基于面向对象软件测试技术分析.pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  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文档。上传文档
查看更多

基于面向对象的软件测试技术分析

【摘要】本文通过分析面向对象软件测试的技术特点,针对几

种常用的测试方法进行探讨,并以某网上购物系统为例对软件测试

方法的实现进行分析,以期通过本文的阐述有效提升程序员的软件

测试技能,促进软件测试技术发展。

【关键词】面向对象;软件测试;编码;程序

1.面向对象软件测试的技术特点

从程序的组织结构方面来讲,传统测试技术不完全适用于面向对

象软件的测试。传统程序的测试过程是选定一组数据,交给待测程

序处理,通过比较实际执行结果和预期执行结果,判断程序是否含

有错误。因此,传统软件测试技术与过程式程序中数据和操作分离

的特点相适应。而面向对象软件不是把程序看成是工作在数据上的

一系列过程或函数的集合,而是把程序看作是相互协作而又彼此独

立的对象的集合,在面向对象程序中,对象是一组属性以及这组属

性上的专用操作的封装体,每个对象就像一个传统意义上的小程

序,有自己的数据、操作、功能和目的。

而在面向对象的系统中,系统的功能体现在对象间的协作上,相

同的功能可能驻留在不同的对象中,操作序列是由对象问的消息传

递决定的。不同对象有自己的不同状态,而且同一对象在不同的状

态下对消息的响应可能完全不同。

为实现某一特定的功能,有可能要激活调用属于不同对象类的多

个方法(c++中的成员函数),形成方法的启用链。显然,基于功能

分解的自顶向下或自底向上的集成测试策略并不适用于以面向对

象方法构造的软件。

面向对象软件语言特有的一些概念和机制,如数据抽象、继承、

多态、动态绑定和消息传递都对测试有着深刻的影响。其中有的因

素使测试复杂化,导致测试工作量加大,有的因素有助于测试过程

中重用已有的测试资源,从而有利于减少测试的工作量,有的因素

两方面兼而有之。但总的来讲,在这些因素的共同作用下,测试面

向对象比测试传统软件更加困难。

2.面向对象软件测试的常用方法

2.1基于类流图的测试

类流图是一种用来表示类的行为特性,且在结构上与传统控制流

图相似的有向图。假设对于一个给定的类c,o代表它的方法集,那

么它的类流图g中的结点分别表示o中的每一个方法,有向边

(o1,o2)表示方法o2可在方法o1之后被调用,事实上也就是方法

o1的后置条件满足方法o2的前置条件。有了类流图,类的方法序

列就可以很方便地由对图的遍历得到,其覆盖准则也包括点覆盖、

边覆盖、路径覆盖等。某些有向边旁标有判断条件,类似于流程图

中的逻辑条件,可以用来确定变量的取值。

以上两种方法都可以推广到类簇测试中。通过方法序列规范或类

流图,可以很方便地为被测类生成消息序列,但它们的缺陷均在于

没有考虑被测类的状态,鉴于状态检查在类测试中的重要地位,它

们通常不被看作主流的测试方法。

2.2基于状态的测试

基于状态的测试是以状态机模型或某些模型化规约为基础的测

试。测试时按照一定的覆盖准则对状态转换图进行遍历,以产生消

息序列,并依据状态图检查每一消息序列是否使被测象达到了规

定的状态。

基于状态的测试充分考虑了对象的消息序列和状态,且按照一定

的覆盖标准产生测试用例,是一种较为有效的面向对象的类级和簇

级测试方法,也是目前研究和使用得较多的。不过状态机是一种较

为复杂的动态模型,比较难于生成。

2.3基于uml的测试

uml(unifiedmodelinglanguage)是一种图形化建模语言,它为

面向对象软件提供了一整套强大的建模工具,同时也可以作为测试

的依据。下面介绍几种已被应用于面向对象软件测试的uml模型:

(1)类图:类图描述了组成面向对象程序的各个类之间的关系,

包括联系、聚集、重数、子类型和递归包含等。采用类图可以检查

类之间的这些关系是否得到了正确的实现。例如对于重数关系的检

验,通过为具有重数关系的两个类分别创建一定数目的实例对象来

检验关系实现的正确性;再如,对两个具有“拥有”关系的类,

可通过检察其中一个类是否对另一个类的对象被更新或删除作出

正确的反应来判断其关系实现的正确性。

(2)顺序图:顺序图用来描述对象之间动态的交互关系,着重

体现对象间消息传递的时间顺序,因此它可以作为类簇测试的依

据。顺序图可以转换为流程图,这种流程图表示了对象间消息传递

的顺序,与程序流程图在形式上极为类似,也包括了

文档评论(0)

147****6405 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档