(1) 和 各自活动的原有操作顺序保持不变;
(2) 组合后变为内部接口;
(3) 和 中与交互无关的活动,在保持原有操作序列的基础上任意组合。
的形式描述了两个简单运行序列之间组合的顺序关系,即要求 先于 运行。如图1中user的简单运行序列(start?,msg!,ok?)与comp的简单运行序列(msg?,send!,ack?,ok!)可组合,组合后的结果为:(start?,msg;,send!,ack?,ok;)。 和 的组合是指将集合中所有满足组合要求的简单运行序列进行组合,而得到新的简单运行序列集 。
进行 和 的组装测试时,可将两个构件中包含 的简单运行全部找出来,通过二者的组合即可确定 和 的所有交互路径。因为循环的存在,测试交互的所有路径是不现实的,得到构件交互路径后,在实际测试时可以此为基础,再根据时间和资源等条件确定循环执行的次数,从而完成构件组装的测试。
构件组装一般可分为四种基本类型:顺序、选择、重复和并行,构件组装的一般模型如图2所示。图中给出两个构件组装时情况,多个构件组装时可以通过两两组装来实现。在图2中,假设系统 由构件 与 的组装实现,带箭头的实线1表示 直接调用的 中的操作,虚线2表示了 中需要 提供输入的操作,用 表示,类似的虚线3表示了 ,虚线4表示 直接调用的 操作。我们用 表示 和 的任意组装。
图2中,若线1,3,4为空,只有虚线2,就变成 的全部输出作为 输入时的情况,表示构件 与 的顺序组装;若线2,3为空,1,4之间的条件选择可实现构件 与 的选择组装;1,2,3,4都不为空则表示 与 是并行组装关系;重复组装可通过将一个构件的输出再作为其自身的输入来实现,图中未作说明。
从图1中可以看出,构件组装后系统 的功能一部分由 和 单独实现,另一部分则可要通过二者的交互合作完成。若 与 都已生成简单运行序列集 和 ,则图中线1部分的测试可通过对 中相关部分的测试来实现,线4部分的测试可由 中相关部分的测试来完成。虚线2表示 提供给 的输入,其测试可通过把 和 中与 相关的简单运行序列进行组合来实现,同样虚线3的测试可通过与 相关的简单运行序列组合来完成。由此,得到我们提出的构件集成测试方法。
。
3.3 CT-on-IP算法
对于构件 的某个接口 来说, 可分成与该接口相关和与该接口无关的两部分。
定义9 ( ): 中与接口 相关的测试用例集,即 中每一个操作序列都包含有接口 。
定义10 ( ): = -( ),即 中与接口 无关的操作序列集合。
通过图2的分析可知,若构件 与 可组装, 表示了 中需要 提供输入的简单运行序列, 表示了 中可提供给 输入的简单运行序列,这两个集合的组合表示了与 相关的交互路径;同理, 与 的组合可测试与 相关的交互操作。因此,得到了我们提出的CT-on-IP方法,具体算法见附录二。
3/4 首页 上一页 1 2 3 4 下一页 尾页 |