天下武功,唯快不破。在保证安全的基础上尽可能提高测试效率也是T/R组件测试领域不变的追求和目标。当然,提高测试效率的方法有很多,例如提高测试仪器仪表的性能(提高扫描速度和增加测试功能等)、简化连接和校准过程以及优化测试程序和工艺等。还有没有其它办法呢?那就是并行测试,这也是当今自动测试技术领域发展的重要趋势和方向之一。
所谓并行测试就是充分利用测试仪器和测试通道等资源,按照一定的调度规划同时执行多个测试任务,从而提高测试效率。目前T/R组件测试大多采用串行顺序测试的模式,即执行完一个测试任务,再启动另一个测试任务,直至完成测试。这相当于要求几个人累计完成1千米的跑步,现在采用的是接力跑模式,为什么不能根据每个人的能力一起跑呢?岂不是更快?多T/R组件并行测试模式就是在同一时刻,不同的T/R组件以多线程的方式执行不同的测试任务,测试任务之间所需的仪器和通道并不冲突。
1、并行测试难点
不同于数字和低频测试仪器,当今射频微波测试仪器自身的测试通道还比较少,一般也只能完成某一类性能参数的测试。在此基础上,多T/R组件并行测试实现还是一个比较棘手的问题。概况来讲,主要包括如下几个方面的问题:
(1)测试资源竞争和死锁问题
测试资源竞争问题:在执行过程中多个测试任务需要同时访问一个资源所引起的问题,例如都需要矢量网络分析仪怎么处理?
死锁问题:多个测试任务互相等待对方释放自己所需资源,从而导致这些测试都无法继续运行的问题。
(2)多线程测试任务管理问题
并行测试是多线程执行模式,这就出现了如何对这些测试任务进行全生命周期有效管理的问题。如何按照次序启动测试?如何暂停测试?如何继续测试?如何中止测试?如何同步测试?如何将进度跨线程报告给主界面线程?这就好比自己干管好自己就行了,但是一个团队干活就有团队管理和建设的问题。
(3)并行测试任务调度规划生成问题
当然,可以依靠人工拍脑袋的方式生成并行测试任务调度规划,但是,测试任务发生变化怎么办?测试对象发生变化怎么办?如果都靠拍脑袋不是不行,但是很难,这就产生了并行测试任务调度规划自动生成这一难题。同时,还需要解决相关的测试效率选优算法和评价体系等问题。
(4)系统建模问题
并行测试系统具有复杂的网状特征,系统建模除了要描述包含哪些UUT、哪些测试任务、测试任务和仪器之间的耦合关系等之外,更重要的是要描述清楚并行测试任务之间的控制相关性和时序相关性。
(5)信号链路动态建立问题
再好的车也得跑在平坦舒适的路上方能彰显其性能的卓越和不凡。并行测试不但要提供“路”,而且需要提供“多车道路”,更需要根据车型提供“个性化道路”。由于并行任务调度规划并不是固定的,在测试运行之前,软件无法确定测试任务的执行次序,从而也就无法确定测试通道的打通次序。那么,只能在测试任务运行时,根据UUT端口和被测参数来动态建立信号链路,并打通相应的通道。
2、并行测试解决思路
并行测试技术是对传统串行测试技术的突破和超越,思维方式与解决途径都发生了较大的变革,在大幅度提高测试效率的同时也带来了较多的挑战,下面逐一介绍解决思路。
(1)测试资源竞争和死锁问题解决思路
概括起来讲,测试资源竞争问题解决思路就是八个字“用时申请,用后归还”。原有的软件平台对于测试资源的管理相当于把测试资源放到一个没有锁的房间里,大家也知道这房间里有什么资源,谁想用就可以拿走,不还也没人管,其它需要资源的人干着急。而在并行测试软件平台里,这个房间有了变化,不但上了锁,而且增加了一名管理员,给谁用,什么时候给?给什么资源?都是这名管理员决定的,而且用完必须归还,不还强制拿回来,这当然就可以有效地管理系统中各仪器的运行状态,使得多个测试任务可以有序的访问仪器,避免同时访问同一仪器,从而造成仪器的状态紊乱。