- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象软件的两种测试方法
第27卷第2期 华 北 电 力 大 学 学 报 Vol.27No.2
2000年4月 JournalofNorthChinaElectricPowerUniversity Apr.2000
文章编号:1007-2691(2000)02-0062-07
面向对象软件的两种测试方法
康腊梅,宋 雨
(华北电力大学电子工程系,河北保定071003)
摘要:介绍了两种测试面向对象软件的方法,针对类的多重继承性进行测试的继承层次测试法 (ILT)和利
用测试图并通过设计辅助类来对面向对象应用程序进行自动侧试的方法。分析了这两种方法的缺陷与不足.
并指出了较Z语言形式化规格说明所具有的优缺点.
关 键 词:面向对象:测试方法;类;继承性
中图分类号:TP311 文献标识码 八
引 言
80年代以来,面向对象的程序设计方法逐渐被人们广泛接受,人们开始大量地使用如抽象、压缩、
继承、覆盖等新概念。虽然面向对象的方法简化了程序的设计和维护等许多方面,但一个程序经编译及
调试通过后,还可能存在着各种各样的错误或缺陷。为了修改和完善程序就需要使用一些方法对其进行
测试,进而将存在的各种问题解决掉。
到目前为止,对面向对象程序测试方法学术界己有一定的研究 ,‘·刀。在文献 1【]中可获得许多对面
向对象软件测试的理论依据,文献 2【]中可了解到6种对面向对象软件度量和评估的方法,但可以看出
对于继承层次的测试研究却很少。本文给出一种针对继承层次进行测试的方法。为了简化类的测试过程,
本文还介绍了一种自动对类测试的方法。
1继承层次的测试
继承是一种类层次的对象之间的转移关系,它简化了面向对象的程序设计。一些系统只允许子类有
一个继承其属性和方法的父类,而有的系统却允许一个子类有多个父类,后者更接近于实际情况,但祖
先类的属性可以通过层次结构中多条路径被其后代所继承,这样,情况就更加复杂。复杂继承在程序设
计和实现阶段容易引起多种错误,若一个子类是父类提炼后得到的,此时人们可能会认为父类已经经过
测试,继承其属性的子类就不需要再测试了,文献 [3]证明了这种直觉是错误的。多重继承引起的错误
并不能单纯依靠这种分而治之的方法解决 (即分别测试父类与子类),这就需要提供一种好的关于继承
层次的测试策略。
1.1继承层次测试算法
1.1.1继承图
收稿日期:1999-07-13.
作者简介:康腊梅 (1977-),女,华北电力大学电子工程系研究生
第2期 康腊梅等:面向对象软件的两种测试方法 63
为了解释这一算法,首先介绍一种基本模型— 继承图。继承图是一种描述重复继承的单向无环图,
在继承图中类用节点表示,用VIE标识,继承图中的边表示继承关系,用一对顶点来标识,如 V〔,VI),
V表示起始节点,V,表示终止节点,一系列顶点序列表示一条非空路径。继承图中没有边指向它的节点
为根节点,没有从该节点出发的边的节点为叶节点。图是不循环的,也就是说不存在含有同一节点两次
或多次的路径。
当图中的一个节点可以通过多条路径从它的一个祖先节点到达自身,则意味着重复继承发生了。
1.1.2 测试思想’7,
由于继承满足转移性属性,祖先类中的错误可能会很自然地传输到后代类中,所以当测试处于继承
层次中的这些类时,拓扑顺序应保存下来。此外,在钡(试所有子类之前还应将其父类测试。
测试层次被分为双层,用工LT(1),...,ILT 的 来标志,N是继承图中最长的继承路径的长度加to
N的值越大,继承层次出错的可能性越大。N层测试定义如下:
ILT(0):一个继承图中的每个类至少要测试一次。
ILT(1):两个相关类的每个序列 (即继承路径=1)需至少测试一次。
ILT(2):三个相关类的每一序列 (即继承路径=2)和这一层的所有继承序列需至少测试一次。
ILT(劝:这一测试层标识ILT层次己被完全测试。
以下解释怎样使用这些继承层次测试一个继承关系中所有的继承路径。首先用广度优先搜索算法遍
历所有的根类 (即没有进入该节点的边,并用序列ROO
文档评论(0)