随着设备日益复杂化,测试团队面临的产品上市时间压力也越来越大,这使得高效的测试策略比以往任何时候都更加重要。测试工程师不仅要为后续产品开发新的测试系统,而且还需要维护之前的测试系统,可谓挑战重重。本文将探讨测试工程师面临的重大挑战,并解释测试框架如何通过提高工作效率、减少返工和维护工作来助您轻松应对挑战。最后,本文还会介绍NI TestStand作为构建和维护测试框架的现成即用解决方案,可为您带来的额外优势,包括降低风险、提高开发灵活性和实现高级功能。
测试工程师的首要任务是确保向最终客户交付可正常运行的产品。但随着产品越来越复杂,测试也同样如此。以灯泡为例,智能灯泡拥有内置的Wi-Fi和蓝牙功能,有时甚至还有扬声器。这意味着在过去几年中,测试团队的测试工作增加了电力电子、无线连接和声学测试。
图1:产品的高级功能会延长开发时间,导致可用的测试开发时间变少。
图1说明了每个阶段预计需花费的时间与实际花费时间之间的差异。由于截止期限不变,早期阶段的任何延迟都会导致测试开发时间缩短,这意味着测试工程师需要在更短的时间内测试更多的功能。当测试开发时间被挪用之后,测试工程师不得不处于被动之中,无法积极主动地采取措施,因为他们根本没有时间考虑如何有效地解决这个问题。
用更少的时间进行更多的测试,这个趋势已经存在数年。这个趋势常常被人忽视,因为响应式开发造成的额外时间成本不容易被观察到。响应式开发的一个显著缺点是缺乏灵活性,这可能会使测试工程师需要花费时间去寻找如何将新功能添加到冗杂、死板的测试系统中,导致工作效率降低。到了一定程度,在同一个测试系统上继续进行开发的效率就会变得十分低下,然后工程师不得不重新开始,花费时间重建与之前相同的功能。
这不仅会导致大量的返工,而且还会增加需要维护的测试系统数量。维护阶段也存在相应的挑战,特别是当构建测试系统的工程师在没有充分文档记录的情况下离职时。他们的离职也可能导致整个系统需要重建。
摆脱这种响应式循环的一种方法是构建测试框架。测试框架是一种高级软件应用程序,基于自动的测试序列进行开发、执行、部署和报表生成等操作。
图2:NI客户将TestStand集成到其组织中后节省的时间百分比。
查看构建或购买指南,了解更多信息。
当组织利用这种类型的框架时,他们可以节省高达75%的开发时间,并减少67%的维护时间。
如果对一组测试系统进行比较,会发现每个系统都存在一些共同的元素和一些独特的元素。这些共同的元素一经确认后,将成为测试团队复用模型的基础。例如,大多数测试系统都需要一个用户界面;但是,界面的各个方面必须迎合各自用户的偏好和能力。
共同元素:
测试管理软件
独特元素:
测试开发软件
列表1:测试系统的共同和独特元素分解范例
为了避免不断重新构建测试系统,必须先确定所有的共同元素,然后将它们放入一个所有测试系统均可复用的框架中。框架不仅要能够支持共同元素,还必须足够灵活,以支持现在和未来的独特元素。
在所有测试团队都基于一个统一的测试框架进行标准化之后,就可以更轻松地共享代码。共享既适用于共同元素,也适用于独特元素。
图3:控制板卡有三种不同型号,显著的区别是第二款板卡添加了蓝牙功能,第三款板卡添加了Wi-Fi功能。
三种板卡型号如图3所示。虽然型号2和型号3中增加的功能可能会在几年后添加,但板卡测试的基本原理是不变的。如果您的测试团队采用响应式策略,可能需要开发三次相同的基础测试系统。这种方法不仅增加了前期测试系统的成本,还影响了长期的维护成本。
当工程师将时间花在他们最擅长的事情上时,会达到出色的工作效率。但工程师往往被迫在其他任务上花费大量时间,如构建用户界面或生成报表。如果能够为所有测试系统创建一个公共框架,就能更快速地开发新的测试系统。当所有标准组件都构建好之后,测试工程师就可以专注于构建设备测试所需的功能,从而缩短新产品上市所需的时间。
维护阶段是测试系统生命周期中最长的一个阶段。维护包括添加新的测试、维护软件或操作系统升级的兼容性或修复检测到的错误。测试执行程序解决方案的维护甚至延伸到文档领域。测试系统开发阶段制定的各种决策将决定维护阶段的耗时或难度。
构建测试框架的难题之一是找到有能力且有时间来做这件事的人。这就是为什么NI开发了TestStand这一现成即用且可自定义的测试执行程序来助您完成所有的测试操作。TestStand为所有测试系统提供了一个通用框架,可简化未来测试系统的开发。在构建了所有标准组件之后,测试工程师就可以专注于开发特有的测试功能,提高工作效率,快速将产品推广上市。
测试工程师所擅长的编程语言各不相同,让他们能够使用所擅长的语言来开发测试步骤是非常重要的。TestStand不受语言限制,这意味着测试组织可以使用各种语言编程(包括Python、C/C++和. NET),并将它们都添加到同一个框架中配合使用。
开发测试管理解决方案只是任务的第一步。软件并非是一次性开发而成的,而是需要后期持续维护。软件必须加以维护才能满足以下目标:
这种维护工作非常重要,而且通常需要花费数月的开发时间。另一方面,NI会定期更新NI TestStand等可立即运行的测试执行程序,以保持竞争力及其适用性。此策略使您能够以较低的成本利用最新技术(并修复漏洞和添加新功能)。阅读测试执行软件 - 构建还是购买?指南,了解更多信息。
在构建自定义测试执行程序时,最明显的相关成本是实现测试执行程序所有功能的前期开发成本。下表概述了与测试框架相关的一些功能。该表显示了从头开始实现每个功能所需的预估时间,并将其与使用NI TestStand实现相同功能所需的时间进行了比较。
图4:NI与测试专家携手合作,旨在确保TestStand能够轻松实现标准功能。
查看构建还是购买指南,了解更多信息。
在某个时间段,测试团队可能并不需要用到所有功能,但这并不意味着在未来也用不到。
在本节中,我们将讨论一些可以在TestStand中轻松添加的实用功能,例如并行执行、报表生成、数据库连接、用户界面和调试/部署工具。
图5:这张图显示了TestStand的流水线序列及资源自动调度功能,可支持同时测试多个UUT(待测设备)。
提高测试吞吐量的一种方法是在多台设备上同时执行测试。当我们了解开发可并行执行的软件所需花费的时间后,就会清楚为何测试团队在非必要时不会开发该功能。原因在于并行执行需要大量的开发工作,因此当组织意识到需要并行执行时,往往为时已晚。借助TestStand,开发并行系统将变得非常轻松,因为它免除了大部分工作,使并行系统具有非常高的成本效益。
在构建测试系统时,就需要考虑如何处理测试结果。这就是为什么TestStand会具有能够简化数据库连接和报表生成的内置功能。在TestStand中生成自定义报表是一项常见的任务,TestStand提供了许多功能来自定义报表的内容、功能和样式。
尽管测试报表能够让人一目了然地了解测试结果是通过还是失败,但却不便于轮询一个或多个测试台的历史测试结果。相反,NI TestStand可以立即快速地将测试结果记录到几乎所有开放式数据库连接(ODBC)系统中,例如Oracle、SQL Server或MySQL。
使用TestStand的内置功能可缩短调试测试代码的时间。TestStand提供的工具可让您监测整个序列的测试值以及执行中的暂停断点,让您能够进一步研究测试代码片段。
图6:部署涉及使用部署工具或服务器打包所有必要的测试系统组件,然后将打包后的内容分发到目标测试台。
您还可以使用可自动执行生成安装程序和分发的工具来简化将测试代码部署到生产机器的方式。
操作界面是操作人员用来与测试系统进行交互的显示界面。开发自定义操作界面可能需要投入大量的时间,尤其是在考虑可用性和一致性的情况下。TestStand提供了简单的操作界面,用于在部署的系统上配置和执行测试。您还可以在多个编程环境中开发自定义用户界面,以便更好地控制操作人员与测试系统的交互方式。
共同元素: 测试管理软件
| 独特元素: 测试开发软件
|