若系统 由 与 的组装得到,算法2计算得到的 是对 与 组装时交互操作的测试模型组合,对 的完全测试还要包括对 和 单独实现功能的测试。因为 和 都已通过单元测试,故在组装测试时不再考虑由二者单独完成的功能。
设 和 中简单运行序列个数的最大值为 ,每个简单运行序列中所涉及的接口数最多为 ,则算法2的时间复杂度为 。需要说明的是,在实际应用时 的值一般会比较小,而且 和 中可组合的简单运行序列个数一般也会小于 ,所以该算法的实际复杂度会远小于 。
4 实例分析
4.1 CT-on-IP过程
本节通过一个实例,对CT-on-IP方法进行分析和说明。现有两个构件ATM和Account,其行为模型如图2和图3所示。ATM和Account要组装成一个银行取款系统,二者均已通过单元测试。我们在两个构件中注入了18个常见的组装错误,应用IT-on-CUTC方法,对这两个构件的组装进行测试。
1. 生成单个构件的简单运行序列
对ATM和Account应用算法1,得到每个构件的简单运行序列,其中ATM共生成8个简单运行序列,而Account生成5个。
2. 确定与组装相关的简单运行序列
=(user info, balance account,ok, fail, exit),因为Account接收ATM输出的user info信息后才能运行,故计算交互路径时只计算 与 的组合即可。
3. 通过简单运行序列的组合得到构件组装的全部交互路径
利用算法2,得到ATM和Account组装的交互路径 。
4. 生成组装测试用例
我们建立了两个有效帐户,设定相应的用户名和密码;然后分析每条交互路径所涉及到的接口操作,利用等价类划分和边界值分析的方法,不同接口之间采取两两覆盖的交互准则,最后得到一组测试用例,具体结果如表1所示。
Table 1 Composition testing results of ATM and Account
表1 ATM与Account的组装测试结果
|
|

|
组装交互路径
|

|

|

|

|

|

|

|
交互路径中的接口数
|
3
|
4
|
4
|
5
|
5
|
6
|
6
|
测试用例数
|
6
|
15
|
15
|
15
|
25
|
25
|
25
|
测试用例总数
|
126
|
发现错误数
|
17(94%)
|
说明:另一个集成错误在在取款次数小于5时不能被检测到
|
4.2 测试结果与分析
为了检验CT-on-IP方法的效果,我们将CT-on-IP方法与通过模型组合进行组装测试的方法进行了对比。先将ATM与Account的模型进行组合,再通过组合后的模型生成组装测试用例时,共生成8条测试路径。对每个序列中的输入接口,我们采取与CT-on-IP方法相同的标准来生成测试数据,所得结果如表2所示:
Table 2 Composition testing results of model combination-based method
表2基于模型组合的组装测试结果
|
|

|
测试路径
|

|

|

|

|

|

|

|

|
中输入接口数
|
2
|
3
|
4
|
4
|
5
|
5
|
6
|
6
|
生成的测试用例数
|
36
|
6
|
15
|
15
|
15
|
25
|
25
|
25
|
测试用例总数
|
162
|
发现错误数
|
17(94%)
|
说明:另一个集成错误在在取款次数小于5时不能被检测到
|
通过表1与表2的对比可知,在采取相同测试数据生成标准的情况下,CT-on-IP方法所生成的组装测试用例共126个,是基于模型组合方法所生成测试用例数162的77.8%,但二者发现的组装错误数相同。
通过进一步分析得知,表2中的 是对ATM中简单运行序列 的测试, 描述了用户身份验证失败场景的测试,此工作属于单元测试工作的重复。基于模型组合的方法实际生成的组装测试用例数为162-36=126个,与CT-on-IP方法所得结果相同。由此可以看出,CT-on-IP方法可以根据构件交互路径生成组装测试用例,不会重复单元测试时的工作。
5 结论
构件组装测试的研究多是借助模型的组合来实现,但是如果要组装的构件由不同的模型描述,则利用各种模型所表达的信息完成组装测试就会非常困难,往往需要大量的转换工作,难以实现有效的测试;另一方面模型组合时容易产生状态空间的爆炸问题而且可能会重复单元测试时的工作。本文提出一种基于交互路径的组装测试方法:CT-on-IP,首先我们提出了简单运行序列的概念,以此来描述单个构件的运行路径;然后介绍了生成构件组装交互路径的方法,详细说明了CT-on-IP方法的过程和实现算法并通过实例对提出的方法进行了验证。该方法计算过程简单,具有一定的通用性,还可以避免模型组合时的相关问题。从而,可以节省组装测试的时间和费用。
关于进一步的研究方向,一是考虑CT-on-IP算法的进一步优化,以更有效的生成组装时的交互路径;二是进行更多不同规模的组装测试试验,以验证本文提出方法的有效性和实用性。
参考文献:
[1]Sajjad Mahmood, Richard Lai,Yong Soo Kim, etc. A survey of component based system quality assurance andassessment[J].Information and Software Technology, 2005 (47): 693–707
[2]Manuel F. Bertoa , Jose M.Troya, Antonio Vallecillo. Measuring the usability of software components[J]. The Journal ofSystems and Software.2006(79) :427–439
[3]廖昕,陈松乔,孙莹.可复用构件组装技术研究[J]. 计算技术与自动化. 2004,23(3):50-52
[4]In-Gyu Kim , Doo-Hwan Bae ,Jang-Eui Hong. A component composition model providing dynamic, flexible, andhierarchical composition of components for supporting software evolution[J]. The Journal of Systemsand Software, 2007 (80) :1797–1816
[5]Jonas Elmqvist and SiminNadjm-Tehrani. Safety-Oriented Design of Component Assembliesusing Safety Interfaces[J]. Electronic Notes inTheoretical Computer Science, 2007, (182):57–72.
4/4 首页 上一页 2 3 4 |