改善测试吞吐量的八项免费技术

不需要关注那些降低测试成本的新款测试平台,您也可以改善测试系统的性能,而不必增加您的设备投资。

  绝大多数改善测试吞吐量的技巧和技术关注新款产品与设备,这需要您进行初始资本投资以实现您所期望的结果。然而,本文总结了八项由测试开发人员测试、实现和提供的免费的软件优化技术。虽然部分技巧指明了所使用的软件,但是,所有技术都足够通用以扩展至任一款自动化测试系统软件。

  开始前的快速技巧

  在进行任何软件修改前,首先对您的系统进行基准测试以明确潜在的障碍和耗时的测试。基准测试可以帮助找到改善测试吞吐量的方面。而且,在某些情况下,测试开发人员需要在执行速率和模块化之间进行折中。在您开始前了解您的高层目标,从而您可以在面对矛盾时进行正确决策。

  为了最大限度降低对于测试应用软件的可能大小和复杂度的担心,通过从一个架构的角度审视您的应用,限定您的努力。图1展示了一个常用软件架构的简化视图——测试管理、应用开发和驱动层软件——这将作为本文的基础。

  图1. 测试软件优化需要关注的三层:测试管理、应用开发、及驱动级软件。

  测试管理软件

  1.最大化硬件效率——您可以通过描述仪器的使用和运行时间,缩短测试时间并提高吞吐量。资源描述帮助识别关键的测试系统通路,它需要最多的执行时间和仪器资源。在描述了该系统之后,确定单项测试所耗费的总测试时间和仪器使用的百分比。利用这一信息,您可以做出合理的决策,例如添加仪器或考虑基于共享仪器的并行测试技术。 NI TestStand测试管理软件包含一个 资源使用描述工具以满足这一需要1。该资源使用描述工具实时展示了仪器与其它资源的使用情况,如图2所示。若您没有使用NI TestStand软件,您可以为您的测试代码的执行标记时戳,然后进行必要的计算。

  2.利用并行机制减少UUT测试时间——甚至在测试单个受测单元(UUT)时,您或许能够并行测试该单元的多个部分,以降低测试时间。首先,为了并行测试单个 UUT,您需要识别出独立的UUT组件并描述您的仪器使用情况。然后,您可以在您的测试管理软件中开发子序列以测试独立组件。为了实现真正的并行操作,每个测试序列必须运行于一个新的线程或执行中。

  图2. 分析测试系统资源能够提高吞吐率,有助于理解仪器的使用及潜在的困难。

应用开发软件

  3.最大化代码模块的运行时间——识别出在您的测试代码中添加并行处理的方式。例如,将测试逻辑和I/O等较高优先级的任务与数据录入和用户界面更新等较低优先级的任务相分离。使用流水线、任务并行机制和数据并行机制等并行设计技术,以实现性能的最大化,如图3所示。3多核处理器显著地改善了并行测试的性能。若您采用NI LabVIEW作为您的应用开发环境(ADE),LabVIEW会自动地识别代码中的并行机制,并将执行分发至多个处理核,而不必改变代码。

  4.利用优化的编译器改善执行速率——许多ADE提供了多个编译选择。例如,利用来自Intel、Microsoft和Borland的优化的编译器(不论所采用的开发工具),您可以创建速率优化的和大小优化的发布的执行程序和DLL。NI LabWindows??/CVI软件提供了这样的编译器灵活性,以改善执行速率和吞吐量。

  5.通过关闭调试功能在更少的时间内完成更多的工作——调试是测试系统开发的一个重要方面,但它显著地降低了生产环境下测试执行的速率。例如,关闭测试执行软件中的子序列跟踪功能改善了执行性能。虽然这一选项剔除了实时步进跟踪的功能,但它改善了测试吞吐量。2而且,确保从您所开发的应用中剔除执行断点。

  6.利用自动化工具减少代码分析时间——自动化测试应用可以产生大型的软件项目,这些项目需要大量的评审时间以改善性能。充分利用那些可以通过自动化代码分析以发现设计缺陷和限制为您提供帮助的工具。预先花费少量时间了解软件工程工具,最终可以为您节省许多令人挫败的时间。

  驱动层软件

  7.利用新的驱动程序升级系统性能——制造商们定期发布新的设备驱动程序版本,以提供缺陷修复、支持64-位操作系统和多线程等技术并添加对新硬件的支持。不论您的硬件使用了多久,升级您的驱动程序,会提高系统对于升级系统性能的技术的兼容性。在程序升级时,在一台开发用机器上尝试新的驱动程序与您的代码,以确认兼容性。

  8.利用仪器驱动程序减少总线的限制——除了简化与传统仪器的通信,可互换的虚拟仪器(IVI)驱动程序提供了高级的功能特性,其中包括状态缓存、多线程、仪器仿真和范围自动校验,以改善性能。状态缓存实现了一个监测仪器当前状态的引擎,以最小化跨总线传输的命令的数量。减少不必要的数据传输可以帮助改善测试吞吐量。

  图3. 采用并行循环及流水线任务设计并行测试,通过提高执行速度来提升系统吞吐率。

  进行前瞻性投资

  每个测试系统都是独一无二的,因而,当您寻求改善您的具体系统时,应当有创造性。如果软件优化不可行,花时间了解可以改善未来测试开发工作的新测试技术,如软件定义的仪器系统、并行处理和无线与协议感知的测试。8学习新东西永远不会太迟,而且未雨绸缪也永远不会太迟。

 

posted @ 2009-07-02 09:36  广陵散仙(www.cnblogs.com/junzhongxu/)  阅读(236)  评论(0编辑  收藏  举报