类的集成测试级别研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

则表示 c 存在和 的单 向关联 。 。 从图 1 以看 出, B是 A的子类且 可 类
和类 E存在着关联 , 显然 B依赖类 A和类 E, 对类 B的测试要放在对类 A和类 E的 测试之后进行。但是从图 1 中并不能容易 地看出类 的测试级别 , 尤其是考虑 了多态 性的情况 , 因此需要 首先进行类 的依赖分 析 。 引 根据 3 种关系的定义可以定义 3 条依
文章编号 : 6 1 72 2 0 ) . 14 7 17 . 4 (0 6 0 0 9 . 1 2 0
类 的 集成 测试 级 别 研 究
何 涛 孙跃勇2 ,
(. 1上海大学计算机学院, 上海 20 7 ;. 00 22 复旦大学计算机科 学与工程 系, 上海 2 03 ) 0 4 3
成测试时就不得不考虑这些类之间的关系[l 1 。
1 类之 间的关 系
在面向对象的系统中类之间最常见的关系是继承(n e t c)聚集 ( grgt n 、 Ihr a e 、 in A geao )关联 ( s c t n 。 i A s i i ) o ao
() 1继承指的是子类可以共享父类( 或祖先类) 属性和操作。父类中定义 了其所有子类 的公共属性和操作 , 在 子类中除了定义 自己特有的属性和操作外 , 还可以对父类( 或祖先类 ) 中的操作重新定义其实现方法。
摘要 : 为了减少类测试 中集成 测试 的桩模块 的数量 , 分析 了类之间的依赖关 系 , 提出确定类 的静态测 试级别 和
动态测试级别的算法 。
关 键 词 : 向对 象; ; 面 类 集成测试
文献标识 码 : A 中图分类号 : P 1 T 32
集成测试的 目的是通过测试来发现和接 口有关 的错误 , 即把通过了单元测试的模块组装起来测试。在面 向 对象的软件中, 类是基本的测试单元 , 在多个类之间可能存在多种不 同的关系 , 如关联 、 聚集和继 承等 , 在进行集
继承指出类之间的“ 一般一特殊关系” “ ,特殊” 类与“ 一般 ” 类之间的关系是“ — 的关系 , ia s” 例如汽车是特殊类 , 交通工具是一般类 , 则汽车是一种交通工具。 Ca eie … … } ls h l sV c {
Cas a: ul hc { … } l r pbi Veie … sC c l
2 类 的依 赖分析
类之间的继承 、 关联和聚集关 系使得在整个类图中存在着依赖关 系[ 比如 C r 引, a 要依 赖 Veie还要依赖 hc , l
E g e Tr; n i 和 i 由于多态性的存在 , n e 使得依赖关系更为复杂 , 如果类 E gn 还有子类 S b ni , 由于可能存在 ni e u E g e则 n
动态绑定 , r a C 还可能潜在地依赖 S b n i 。 uE gn e
收 稿 日期 :o 50 —1 2 o .33
维普资讯
第2期
何涛等 : 类的集成测试级别研 究
ห้องสมุดไป่ตู้
15 9
为 了表述方便 , 在表示类之 间的关 系 的边上加上标识来 区分各种 不同 的关 系。 如果从类 C 到类 的边上标识为 I则表 。 , 明C 是 C l 2的子类 ; 如果从 类 C 到类 C 1 2 的边上标识为 A 则表示 是 C 的聚集 g l 类; 如果从类 C 到类 的边上标识为 A l s
以上C +代码表明类 C r + a 继承了类 V h l的属性和操作。类 C r eie c a 和类 V h l之间是继承 的关系。 eie c () 2 A由 B 组成或者说 B是 A的一部分 。这就是通常所说 的继承或者在 UML中所说的整体 一部分关 系和 聚合 一 组成。整体 一 部分关系意味着结构粒度的多级别 。例如 : 一个给定类 的行为就可以作为其本身的语境 , 并 按照更小粒度 的协作类进行设计 。这些低级别的协作类构成 了高级别 的协作类 的聚合 。例如 , 一个 A M 对象 T
具有 r d cr(( e —ad )读卡) a 的责任。假如将这个操作看成它 自己的语境 , 并且使用许多用例来确定读 卡的时候会 涉
及到什么 , 那么就很快能发现涉及到许多其它类 , 例如读卡器 、 监视器 、 键盘等。这些就是 A M 的低级别 聚合 T 类。类似的, 假如现在关注 r d ps od ) e — as r(这个行为 , a w 它是读卡器聚合对象 的责任( A M 是一个整体不 同) 与 T , 就可以发现粒度更细的类 , 例如卡接收器或者卡弹 出器、 磁条 阅读器 、 注册等 , 所有读卡器的低级类反 过来 也是 A M 的低级别类 。因此 , T 聚合可能是多级别的。 () 3 关联表示类的实例之间存在的某种关系, A的实 例映射到 B的实例 , 这种关系叫关联 。作为一个结构特
赖 规则 。
图 1 U 类图 ML
规则 I如果存在类 c 继承了 或和 : l
存在单向关联 , C 依赖 c ; 则 l a 规则 I: I如果从 到 C 存在一条标识为 A 的边 , 1 g 则表示 c 是 的聚集类 , C 依赖 。 I 即 l
维普资讯
第 2 卷第 2 l 期
20 0 6年 4月

都 信




院 学

Vo. 121NO. 2
Ap .2 0 r 06
J URNA HE O L OF C NGI NI RS T (F I F M A oN TE HN DGY ) U VE I Y ) N OR U TI C OL
性, 关联是同一个类的两个实例之间的映射 ( 一元关联 )或者是 A类 的实例与 B类 的实例之 间的映射 ( 元 关 , -
联)或者是类的实例与类的集合的实例的映射( 元关联) , n 。当 n大于 2的时候 , 元关联就会非 常复杂 , n 而且通 常不可能直接实现。因此 , 当设计中包含高于二元的关联时 , 这种设计通常需要重新评估 2。
相关文档
最新文档