APP下载

并行测试系统测试任务分解研究

2014-04-16张司明

科技视界 2014年13期
关键词:自动测试粒度测试

郑 直 张司明

(中国人民解放军空军航空大学 研究生队,吉林 长春 130022)

0 引言

并行测试技术是支持下一代自动测试系统的关键技术之一,相对于传统串行测试系统,其技术特点与优势在于提高了测试系统的吞吐率、提高了测试仪器资源的利用率、缩短了测试执行时间。实现并行测试技术的关键在于测试任务的调度,而并行测试任务的分解则为并行测试任务调度的基础。

1 并行测试任务分解的必要性与可行性

在传统的串行自动测试系统中,测试任务被事先整体规定,然后测试中按照一定的顺序流程运行,测试任务的安排由于不涉及并行性,所以待测任务之间可能无法进行并行测试。因此,将一个总体的复杂测试任务,经过分解形成多项容易被测量的子任务,通过完成子任务测试从而解决复杂测试的思想,对于并行测试系统来说是尤为必要的。

图1 并行测试系统自身特点

并行测试系统本身的特点决定了总体的复杂测试任务分解的可行性:对于并行测试系统本身而言,现阶段的自动测试系统均采用嵌入式计算机控制、模块化的测试仪器资源,这就使得各个资源模块可以根据测试系统的需求同时单独工作,相互之间没有影响;新的接口适配器技术,使得自动测试系统与待测设备间的连接、信号转换更加灵活;计算机多线程与多核处理技术,使得控制软件能够同时控制运行多个测试任务。上述的这些自动测试系统本身的特点,均为经分解后的多项子测试任务能够实现并行技术奠定了基础。

2 并行测试任务分解所遵循的原则

子测试任务的大小能够通过增加或减少测试参数来改变,那么子测试任务的大小即表现为测试任务粒度的粗细。任务粒度能够体现某测试任务集合的层次结构,同时也能体现整体测试任务的规模与数目。任务粒度与任务数量存在反比关系:任务粒度越大,任务数量越小;任务粒度越小,任务数量就越大[1]。反映到并行测试技术上来说,就是任务粒度与子测试任务的并行性和可求解性质是相关联的:通常来说,子测试任务的独立性随着任务粒度大小的增加而增加,但子测试任务的信息接口、交互性、任务之间的并行性却随着子测试任务粒度大小的增加而减少。因此,测试任务分解,要控制适宜的子测试任务粒度。

并行测试任务分解的目的是把复杂测试任务分解为多个简单易处理的子任务,子任务之间尽可能错开资源竞争,从而有效地加快执行速度,缩短测试时间。但是过度的分解将使系统中有大量的任务,经常进行任务的切换,任务与任务之间还需要很多的同步和互斥控制,将大量增加系统服务工作,降低系统的速度和有效性。

因此,在进行任务分解的过程中,必须遵循一定的原则。测试任务分解的原则有以下几点[3]:

(1)独立性:任务应有相对的独立性,任务间的相互协调、通讯工作应少,以减少系统的开销;

(2)层次性:对总体测试任务依次从被测单元、被测参数到具体功能操作进行逐层分解;

(3)均匀性:任务粒度的大小要适中、均匀,避免某一任务的执行时间过长,导致资源负载不均,同时也要避免任务过细,导致系统任务切换开销过大;

(4)相似性:不同的测试任务分解的子任务应尽可能的相似,以便软件设计时可用相同的程序代码实现,提高软件编程效率。

实际工程中可根据被测对象的特点,采用自顶而下逐层分解的策略对测试任务进行分解。被测装备通常会包括多个被测单元,而被测单元一般会有多个参数需要检测,在这一层按被测参数对测试任务进行分解,在各参数的检测中一些参数的检测可能存在相同的初始化操作,可以提取相同的操作,提高系统效率。

3 并行测试任务分解策略方法要点

在弄清并行测试任务分解要遵循的原则后,要明确子测试任务之间可能存在某种关联。那么,分解后的子测试任务之间是否可以进行并行测试,如果不能进行并行测试,子测试任务之间的执行优先顺序又是怎样的。子测试任务之间的相互关联,决定了上述问题。

在讨论并行测试任务分解策略方法要点与方案之前,先对测试任务之间的关联引入形式化定义[3]:

定义3.1 设t1和t2为两个测试任务,I1和O1分别为t1的输入变量集和输出变量集,I2和O2分别为t2的输入变量集和输出变量集,若I1与 O2,I2与 O1,O1与 O2之间均无交集,则称 t1与 t2数据相关;否则,称之为数据无关。

定义3.2 设t1和t2为两个测试任务,若t1的测试能够决定t2是否测试,则称t2控制相关于t1;否则,称之为控制无关。

定义3.3 设t1和t2为两个测试任务,R1和R2分别是t1和t2占用的资源集,若R1和R2无交集,则称t1和t2资源相关;否则,称之为资源无关。

定义 3.4 设 t1,t2,…,tm为测试项目中的各项测试任务,若 t1,t2,…,tm按所有可能的任意顺序测试的结果相同即t1,t2,…,tm任务优先级相同,且 t1,t2,…,tm资源相关,则称 t1,t2,…,tm是可并行测试的。

对上述定义作出说明:对于测试任务t1和t2,若其满足数据相关,那么t1和t2是不能够进行并行测试的,但反过来,若t1和t2数据无关,不能肯定t1和t2能够进行并行测试。例如,两个测试任务中可能含有中间测试变量或任务,使得t1和t2虽然数据相关条件,但实际只能依次测试。同理,对于测试任务t1和t2间满足控制相关也存在相应不能同一时刻进行并行测试的问题。

在明确测试任务之间所能存在的相互关系后,便可以根据这些相互关系,对一个总体复杂测试任务进行分解。由于随着被测设备的不同,一个总体任务能被分解的程度、依据就不同,因此,没有一种具体有明确步骤的详细方法,能通用所有自动测试系统的测试任务分解。通常总体分解方法要点如下:

(1)详细了解被测设备特点,明确被测设备的测试需求,明确各个被测单元以及各被测单元所需测量参数;

(2)根据被测设备中的某些具体带有测试时序要求的测试任务,从总体上即采用自顶向下逐层分解的方法对各个被测任务划分层级网络,明确哪些测试目标任务经层级划分后是复合任务,哪些是不可在分的测试任务;

(3)分析初步划分后的测试任务,看是否有哪些被测参数可以进行层次的调整,是否能够合并成新的测试任务。例如,某些参数的检测可能存在相同的初始化操作,可以对这些操作进行提取公因式,提高系统效率;

(4)经细化、合并、调整顺序后,完成任务分解,形成测试任务集合。

4 总结

并行测试系统测试任务分解是并行测试系统实现并行测试任务调度这个NP-HARD难题的前提,遵循怎样的分解原则和分解测量方法要点对总体测试任务进行分解,对分解后子测试任务的粒度有着影响。根据本文提出的分解策略方法要点进行并行测试任务分解,能够较好的控制子任务粒度,为后续并行测试任务调度打下基础。

[1]何玉安.基于本体的制造网格任务管理关键技术研究[D].上海:上海大学,2008.

[2]卓家靖,孟晨.并行测试系统的任务分解和任务过程模型[J].电子测量技术,2008,8,31(8):109-112.

[3]肖明清.自动测试概论[M].北京:国防工业出版社,2012,8:108-109.

猜你喜欢

自动测试粒度测试
粉末粒度对纯Re坯显微组织与力学性能的影响
基于矩阵的多粒度粗糙集粒度约简方法
幽默大测试
“摄问”测试
“摄问”测试
“摄问”测试
JXG-50S型相敏轨道电路接收器自动测试台
可并行测试的电磁兼容自动测试系统的实现
关于某型雷达自动测试系统的几点认识和建议
基于粒度矩阵的程度多粒度粗糙集粒度约简