当前位置: 华文世界 > 数码

软件密集型系统的测试技术介绍

2024-02-17数码

在小组工作的早期,很明显,软件是系统实现其性能目标的关键途径。因此,我们认识到需要特别关注软件密集型系统,并更好地了解如何在各军种的软件密集型系统上进行操作测试。据报道,在过去三年中,超过90%的陆军初始作战测试和评估由于软件未准备就绪而下滑(美国陆军物资系统分析活动,1995年)。自 1970 年代以来,在运行测试中发现的软件问题对主要国防采购系统的成本、进度和性能产生了不利影响。在某些情况下,在系统生产并投入使用后,已经发现了明显的性能缺陷。研究结果表明,软件密集型系统通常不能满足用户要求,因为系统在其软件完全成熟之前就被认证为已准备好进行操作测试。

已经确定了限制有效软件测试和评估的几个障碍。其中一个障碍是,国防部在采购过程中没有足够早地承认或解决软件对系统操作要求的重要性。有一种看法认为,软件是次要的,可以稍后修复。有效测试和评估软件的其他障碍包括:(1) 国防部尚未开发、实施或标准化用于衡量或预测武器系统成本、进度和性能风险的决策工具和流程;(2) 国防部尚未制定测试和评估政策,为软件成熟度提供一致的指导;(3) 国防部没有充分定义和管理软件要求。尽管国防部已经仔细研究了开发和测试高质量软件以及部署软件密集型系统需要做些什么,但它并没有有效地实施长期存在的建议。另一方面,尽管缺乏国防部范围内的协调战略,但各个军种都试图改进其软件开发流程(美国总会计办公室,1993 年)。

鉴于上述担忧,该小组成立了一个工作组,重点关注作为软件产品或具有重要软件内容的系统的防御系统。该小组的目标是制定统计方法,以支持关于软

软件密集型防御系统。其概念是,这些方法将通过迭代使用促进通过操作测试的技术,相对快速且廉价地识别不合适的系统。与这些方法相关的清单也有助于开发人员了解他们的系统何时准备好进行操作测试。

本章的其余部分论述了统计方法在软件密集型系统运行测试中的潜在作用,并描述了该小组迄今为止的活动和计划在这一领域开展的未来工作。

统计方法的作用

该小组认为,在软件密集型系统的测试和评估中使用统计方法将发挥重要作用。认识到并非每个场景都可以测试的事实,我们制定了以下一组问题,以了解软件密集型系统操作测试的当前实践以及可能应用统计方法的领域:

如何描述要测试的场景和使用环境的总体特征?

如何从总体中选择要测试的场景?

如何知道何时停止测试?停止标准是什么?

如何从测试期间获得的信息推广到未测试的场景群体?

如何计划测试资源的最佳使用,并随着测试的展开调整测试计划?

这些问题与理解实验设计问题时提出的问题非常相似。然而,软件系统的样本量通常比硬件系统的样本量大得多,因此这些问题的答案可能会导致不同的过程。

该小组认为,通过集中精力研究复杂的未来系统,将实现其在这一领域作出重大贡献的最大潜力,因为在针对尚未通过各种开发或运行测试阶段的系统方面有可能产生更大的影响。目前的范式似乎是自下而上的,软件从令人眼花缭乱的各种方法、工具和文化中涌现出来,每个操作测试项目都必须努力寻找资金、时间和方法来测试和评估软件,以达到将其投入现场使用所需的程度。目前,软件密集型系统的操作测试受到损害,因为其方法被允许由软件开发实践驱动。软件开发社区的记录并不能保证采用他们的操作测试方法。软件的本质是,它可以变得不必要地复杂,超出任何评估和可测试性的阈值。

然而,该小组认为,正在向一种新的、自上而下的范式转变,这种范式是由操作测试定义中阐明的「预期用途」概念驱动的。为了实现这一想法,有必要规定某些标准,如果满足这些标准,将支持软件(或包含该软件的系统)适合现场使用的决定。这些标准可能包括实验、测试和其他评估手段。标准,包括成本、时间表和方法,必须以技术细节规定,这反过来又成为设计和开发过程的要求和约束。虽然这些限制不会限制软件的潜力,但它们可能会引起开发方法、进度和预算的变化,使它们在开发通过操作测试的系统时更加有效和现实。软件可以被设计成满足明确定义的评估和测试标准。