几十年来,标准化一直是测试组织的理想目标。业界也在不断摸索产品开发过程标准化的趋势,NI国防和航空航天市场总监 Nicholas Butler给出了几点洞察:
✔ 早期的标准化主要集中在硬件抽象上,但现代技术则是建立在软件之上;
✔ 迭代式软件开发流程可以更快地为客户提供更好的产品;
✔ 测试组织必须采用标准化的迭代式软件开发方法,以保持竞争力。
紧跟开发过程标准化的趋势
1961年,美国无线电公司(RCA)的D.B.Dobson和L.L.Wolff发表了《电子测试设备的标准化》(Standardization of Electronic Test Equipment. )。该文章介绍了多用途导弹系统测试设备在研究和原型验证阶段所使用的原理、标准和技术。
大多数早期技术标准化工作的目标是减少整个组织中不同测试解决方案所使用的测试设备的种类。 RCA已经实现的一个关键目标是设计和部署一套模块化硬件。模块化硬件可增加设备复用,提高测试解决方案的集成度,减少组件过时以及简化技术更换流程。由于国防和航空航天工业的各种产品和资产设备服役周期最长可达50年,因此可维护且可复用的测试系统将给该行业的测试团队带来诸多益处。
由于严苛的安全要求和快节奏的变化,现代测试组织需要做的远不只是硬件标准化。他们现在非常重视软件层及其开发过程。测试工程团队必须开始采用和标准化迭代式软件开发方法,以跟上产品开发团队的步伐以及在快速现代化的行业中维持项目进度。
软件是标准化的核心
RCA的论文介绍了多个功能组件和导弹计划中识别共享输入和输出以定义其模块化硬件系统要求的过程。识别和分离过程是抽象的基础,而这两者是可以同时完成的。大规模仪器标准化和商业现成技术的普及促使许多行业的测试机构开始采用VXI、PXI、PXIe和AXIe等模块化硬件标准。标准模块化硬件平台可将电源、冷却和用户界面等冗余元件抽象为单个系统内的独立元素。
在《国防系统软件设计和采购报告》中,美国国防科学委员会(DSB)表示,“我们的武器系统具有的许多功能都来自于系统软件,而不是硬件。这种从硬件功能向软件功能的转变正在迅速普及。”现代仪器越来越多地包括处理器和FPGA等软件定义的组件。为了充分利用这些现代测试解决方案,通过软件定义测量系统不仅有益而且非常有必要。
领先的测试软件工程团队正在开发抽象化的测试软件,与抽象化的硬件相比,抽象化软件提供了更多好处。抽象化软件平台包括执行特定功能的层。这允许团队单独修复和升级每个模块,同时通过保持相同的输入和输出来隔离其他层。
霍尼韦尔航空航天公司总工程师Mark Keith表示:“由于我们有数十项传统业务,软件标准化需要解决每个团队存在的历史问题。[抽象]的目的是在更换过时的硬件时最小化或避免软件修改。”
现代测试软件开发
按照当今市场发布新产品和功能的速度,仅仅正确构建测试软件架构是远远不够的。测试软件组织必须采用更灵活的方法来更快速地向制造部门和客户交付产品。为了提供所有所需的功能,现代软件工程团队开始采用Agile等连续迭代式软件开发方法。
正如DSB报告中所述,“迭代式开发的主要好处是能够快速连续地捕获错误,轻松集成新代码,并在整个应用程序开发过程中获得用户反馈。”迭代式软件开发已经成为一个业界标准的做法,这种做法“将帮助[国防部(DoD)]应对当今动荡的安全环境,因为在这种环境下,威胁的变化速度已经超过瀑布式开发所能处理的速度。”
“以当今技术变化的速度,30年给人的感觉像是很久很久。有时候,现在最好的方法并不能兼容过去最好的方法。“ -Mark Keith,霍尼韦尔航空航天公司总工程师
标准化迭代式开发
标准化的价值不断增加
迭代式软件开发需要能够相互密切配合的团队,而且与硬件平台和软件架构抽象类似,还包含共享和重复的概念和任务。
负责代码库的团队必须就源代码控制、单元测试框架、代码分析、工作管理和部署所需的工具达成一致并进行标准化。另外一个日益增加的担忧是网络安全。DSB指出,“每天检查软件系统的代码库可以有效地控制所需的变更数量,使其符合通用的网络规则。”
美国国防部监察长在《F-22现代化合同战略》报告中指出:“根据计划办公室官员表示,相对美国对手,国防部正面临着失去其技术优势的风险,亟需找到创新的方式来让战士更快速利用新技术。”国防和航空航天的测试团队正在努力将更好的技术更快地推向市场,而且该行业不是唯一一个正在这样做的行业。迭代式开发是加速技术开发的一种可靠方法。
虽然测试工程团队一直专注于硬件标准化和分层软件架构,但研发组织已经将焦点转向迭代式产品开发。标准化的各个方面对于测试组织都是非常重要而且有价值的,但标准化流程也必须进行完善,以便配合当今的工程做法。采用Agile软件开发方法的测试组织已经准备好利用这个即将到来的机会。