15 或 20 年前,许多嵌入式系统由一个 8 位处理器和几 KB 内存以及可能有几百行代码组成。今天,汽车、ATM、手机和其他设备中嵌入式系统的爆炸式增长已经极大地改变了这种动态。在以太网上看到多个 32 位和 64 位多核处理器并在这些系统中运行总计数十万行代码的多个应用程序的情况并不少见。
随着这些设备变得越来越复杂,项目团队确认软件需求已经过测试并且测试可以追溯到需求已经成为一个重大负担。在许多情况下,即使进行了广泛的测试,团队也可能不知道他们是否已成功满足所有产品要求。
高度复杂性和对更高系统可靠性的需求也将质量放在首位。较旧的嵌入式系统要么足够简单,要么不够重要,无法花时间查找、跟踪和修复软件缺陷。今天,嵌入式系统中的缺陷与企业应用程序中的缺陷一样普遍,甚至更为重要。由于更高的复杂性,能够通过测试用例和需求追溯缺陷变得更加重要,这样团队就可以提高对问题及其影响的特性的透明度。
当今复杂的嵌入式系统可能有成百上千的需求,以及尽可能多或更多的测试用例。跟踪和执行这些测试用例,并使用这些信息来确保满足要求,成为必须更好地控制其流程的团队真正关心的问题。为了应对这一挑战,团队需要一种自动化的方式来链接工件,以便有关一个工件的数据成为其他工件的信息。应用程序生命周期管理 (ALM) 软件可以提供帮助。
可追溯性的价值
可追溯性是将需求链接到风险、测试用例、缺陷甚至源代码等下游工件的实践。链接支持在相关工件之间进行更改和进度的双向通信。
例如,一旦产品有需求,验证它的人就需要编写测试用例,以确保正在开发的产品满足设计要求。如果测试用例失败,产生的缺陷会记录在问题跟踪系统中。
可追溯性使产品团队和利益相关者能够理解并从产品开发工件之间的关系中获取有价值的信息。通过查看缺陷,可以确定尚未满足哪些要求。团队可以将此信息用作确定产品是否可以发货的重要指南,还可以对缺陷进行分类以首先满足最重要的要求。
但是有效的可追溯性可以为项目做更多的事情。如果安全风险被识别为产品的一部分,则这些风险可以与非功能性需求相关联,然后可以追踪到下游工件。源代码可以追溯到缺陷并返回到需求,从而关闭了设计、开发和测试之间的循环。同样,当缺陷修复被重新检入源代码控制并运行测试以确认修复时,团队和其他产品利益相关者非常清楚地知道相应的要求已经得到满足。
可追溯性还提供了通常无法以任何其他方式获得的基本项目信息。它为测试人员提供了一种易于理解和可报告的产品质量衡量标准。通过了解哪些需求仍未得到满足,以及它们是否记录了针对它们的问题,测试人员可以估计完成产品的剩余时间。最后,可追溯性使团队能够更好地了解剩余的工作,以及剩余工作的产品功能区域。
使用 Microsoft Word 或 Excel 管理需求、测试用例和缺陷已经足够具有挑战性了。但是如果没有真正的跟踪系统,就不可能通过测试用例跟踪需求到缺陷再回到需求。
将可追溯性构建到嵌入式项目中
产品团队如何建立可追溯性?它从需求开始。一旦定义了功能需求,风险分析和缓解就开始了,测试人员生成测试用例,使他们能够确定正在开发的产品是否满足这些需求。
当测试人员运行测试用例时,通过的用例表明相关要求已得到满足。如果测试用例失败,测试人员会记录与这些测试用例相关联的缺陷,并通过链接记录到被测需求。缺陷与相关的测试用例和测试运行相关联,提供了返回测试阶段的链接。
理想情况下,此链接是自动完成的。虽然可以手动创建和维护项目工件之间的链接,但所涉及的工作是详细且持续的。每当需求或测试用例发生变化时,都必须手动重新建立链接。手动创建和维护需求、测试用例和缺陷之间的链接所需的工作量很大,尤其是在几乎每天都必须检查和更新这些链接的情况下。
在大多数项目中,测试人员在不同的测试运行中多次执行测试用例。当初始运行失败时重新运行测试,并且需要验证修复。随着嵌入式软件产品范围的扩大以满足更多要求,测试也会运行更多次以进行回归。
测试也可以手动执行,或者使用测试工具以自动化方式执行。在实践中,大多数团队两者都做。手动测试通常是第一次完成,并使用自动化工具进行记录。除非功能发生重大变化,否则后续测试通常会自动运行。测试结果通过缺陷或成功的测试结果为可追溯性信息提供了基础。两者都可以追溯到需求和其他工件。
通过自动化测试和可追溯性,测试团队有机会在高水平上执行,在产品计划内完成测试,并向产品利益相关者提供有关质量和需求满足的有价值信息。这使得测试与所有利益相关者更加相关,尤其是在产品开发的后期阶段。
理想情况下,这从需求开始,但还必须包含测试管理、缺陷跟踪和源代码管理。对于具有安全影响的产品,还应纳入风险管理和缓解措施。ALM 软件(例如 Seapine Software 的 TestTrack)提供了从设计和开发项目的开始到结束创建、管理和链接工件的能力。图 1 说明了可追溯性矩阵如何帮助团队轻松确定缺陷或需求更改如何影响项目的其他部分。
图 1: Seapine TestTrack 等应用程序生命周期管理解决方案的可追溯性使嵌入式项目团队能够快速轻松地了解缺陷和其他更改如何影响项目。
可追溯性和安全关键项目
可追溯性传统上用于具有数百名工程师和测试人员以及数千个需求的大型开发项目。这主要是商业和军用航空和太空系统领域,在这些领域中,对抗复杂性的信息需求超过了信息成本。这些系统可能需要数年时间才能开发并推向市场,这使得通过可追溯性获得的信息在团队成员离开和新成员到来时特别有价值。
但是通过自动化(例如 ALM 软件提供的自动化),可追溯性的成本和工作量可以降低到对较小的项目和更短的时间表有意义的程度。需求和下游工件之间的自动可追溯性,以及从缺陷到需求的上游追溯,使得识别和沟通开发障碍和问题更快、更透明。
智能手机、汽车系统和智能工业控制设备等项目受益于更好的可追溯性。随着越来越多的测试团队采用自动化 ALM 方法来收集和传播可追溯性信息,产品质量将继续提高,即使系统变得更加复杂。
审核编辑:郭婷
-
处理器
+关注
关注
68文章
19093浏览量
228778 -
智能手机
+关注
关注
66文章
18412浏览量
179666 -
嵌入式
+关注
关注
5057文章
18968浏览量
301858
发布评论请先 登录
相关推荐
评论