测试任务分解是在测试前期针对任务进行合理排序的重要基础,就是按照某一标准将测试任务分解成一系列合适粒度的无交叉子任务组。需要注意,任务分解的粒度过大,会导致UTi′,j′间的相互关系过于复杂,即相互间信息交互的次数过多,由于信息交互会导致时间延迟,延长整个测试周期,并且任务执行出错率更高,任务排序的灵活性更差[76];任务分解的粒度过小,UTi′,j′的数目更多,加重了资源匹配的负担,容易引起任务之间的匹配冲突,而且资源匹配同样存在时间延迟,延长测试周期。因此,将测试任务分解成粒度适中、相互独立的子任务组是测试任务分解的基本原则。
1.任务内聚性分析
为了将测试任务分解成多个合适粒度的子任务组,需要保证UTi′,j′的内聚性处在合理范围内。为准确量化任务的内聚性,参考文献[77]和[78]引入任务关联矩阵、约束单元等相关概念并依据测试特点进行改进,建立测试任务内聚度和粒度的度量模型。
1)任务关联矩阵(task associated matrix,TAM)
TAMi′表示测试任务Tai′在执行过程中UTi′,j′之间存在信息交互的N(i′)阶方阵,见式(5-1);其中rk′,l′表示UTi′,k′和UTi′,l′之间的输入输出关系,UTi′,k′→UTi′,l′表示UTi′,k′为UTi′,l′的前序子任务组,k′,l′=1,2,…,N(i′)。TAMi′,j′表示UTi′,j′内部子任务在执行过程中存在信息交互的N(i′,j′)阶方阵,见式(5-2);其中rk′,l′表示STi′,k′和STi′,l′之间的输入输出关系,STi′,k′→STi′,l′表示STi′,k′为STi′,l′的前序子任务,k′,l′=1,2,…,N(i′,j′)。
2)约束单元(IUTC,STi′,k′)
约束单元由输入子任务集合IUTC和共同的单个输出子任务构成,|t|表示UTi′,j′中约束单元的数目。
3)关联系数(correlation)
关联系数表示相邻子任务之间相互关联的程度,即在UTi′,j′执行过程中相邻子任务之间信息交互的量化,见式(5-3)和式(5-4),其中correlationp表示UTi′,j′中第p个子任务的关联系数值,N(i′,j′)表示UTi′,j′中子任务的数目。
4)重用系数(reuse)
重用系数表示UTi′,j′在执行过程中约束单元被重用的量化指标,见式(5-5),其中reusep表示UTi′,j′中第p个子任务的重用系数值。
5)内聚度(cohesion)
内聚度表示测试任务执行过程中UTi′,j′内部聚合程度的量化指标,见式(5-6)。(www.daowen.com)
6)粒度(granularity)
粒度表示任务Tai′分解后所有UTi′,j′规模的大小,反映执行子任务的测试周期和资源的占用情况,见式(5-7),其中N(i′)表示Tai′中子任务组的数目。
测试任务分解后得到的UTi′,j′内聚度越大,其内部子任务之间的信息交互越频繁,耦合性越强;子任务组的粒度越大,测试耗时越长,占用资源越多,数量越少,相互间的关联程度越深。
2.任务耦合性分析
耦合度(coupling):测试任务分解后的UTi′,j′之间信息交互程度的量化指标,表示UTi′,j′之间相互依赖的程度,见式(5-8)和式(5-9);其中couplingi′和couplingi′,j′分别表示Tai′和UTi′,j′的耦合度值。
在任务执行过程中,UTi′,j′之间的信息交互对测试任务执行效率的提高有着重要影响,因此在执行过程中要尽量减少相互间的信息交互量。
3.任务均衡性分析
均衡度(equilibrium):评价测试任务中所有子任务组之间粒度大小差异程度的量化指标,见式(5-10);其中,equilibriumi′表示任务Tai′的均衡度值;ni′,j′,k′表示UTi′,j′占用的第k′种资源的数目;mi′,k′表示任务Tai′占用第k′种资源数目的平均值;N′表示资源种类的数目。
在实际测试过程中,子任务组并行执行,相互间关系复杂的大粒度UTi′,j′决定了整个测试周期的时长,因此需要确保分解后的子任务组在粒度、相互关系、资源占用和执行时间四个方面的均衡。本小节参考文献[46]中针对任务执行时间均衡度的研究,着重分析了测试任务在资源占用上的均衡,其他三个方面的计算与此类似。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。