0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么需求可追溯性对于当今的嵌入式系统仍然很重要

星星科技指导员 来源:embedded 作者:Mark Pitchford 2023-04-24 11:00 次阅读

俗话说,“未能构建正确的产品或构建正确的产品”的成本会影响收入和声誉。构建“正确产品”的唯一方法是开发既有效又可追溯到软件的需求。这使开发团队、质量保证 (QA) 和认证机构能够检查软件中的任何功能,通过将其追溯到需求来确定其用途。

挑战在于了解如何在当今动态市场条件和更短的发布时间驱动的快速变化的软件面前保持需求可追溯性。了解双向可追溯性并知道如何维护它可确保产品功能是合理的,反之,没有理由地构建任何东西。

失败的代价

如果客户认为产品功能受到损害,并且如果出现召回或安全漏洞,则不可避免地会造成灾难性的收入或声誉损失。例如,特斯拉今年早些时候因与挡风玻璃除霜相关的软件错误而召回了汽车[1]。在特斯拉的其他召回中,许多与自动驾驶有关,这说明了管理所有可能场景的复杂性,以及快速识别、修复和更新软件以最大限度地降低成本和声誉损害的需求。

Deepanshu Natani 在 Atlassian 社区发表的一篇文章“需求管理中的挑战”写道[2]:

“分析师报告说,多达71%的软件项目失败是因为需求管理不善,使其成为项目失败的最大原因 - 比糟糕的技术,错过最后期限或变更管理惨败更大。

从编写良好的要求开始

每个软件项目的基础都是它的需求。它们应该是精确和明确的,引导软件开发朝着清晰、可测试且可追溯到特定目的的方向发展。

编写要求有几种方法,其中文本规范是最流行的方法。文本可以非常有效,包括使用通俗语言,以便更广泛地理解更接近具体实施计划的技术术语。

由于人类语言本质上是不精确的,容易产生歧义,因此需要高度的严谨性来克服可能的陷阱。将经过验证的规则应用于需求有助于避免问题 - MISRA 编码标准提供了这些规则的示例[3]:

使用段落格式将要求文本与非要求文本区分开来

每个段落仅列出一个要求

使用动词“应”

避免在需求中使用“and”,并将重构视为多个需求

避免使用“除非”或“仅当”等条件,因为它们可能会导致模棱两可的解释

图 1 列出了有效需求的十个属性。

wKgZomRF8xOASwzwAAC-NmfiWSw057.png

[图1.有效要求的十个属性。(资料来源:LDRA)]

确保适当的需求可追溯性

必须实施所有要求。同样,反之亦然——所有源代码(和所有测试)都应该可以追溯到设计,并最终追溯到需求(功能性或非功能性)。

当需求开始发生变化时,挑战就来了。若要快速有效地管理更改的影响,需要修改相关要求或添加新要求,请务必了解如何在代码中反映更改以及验证更新所需的测试中。

图 2 说明了需求和测试之间的典型关系[4]。在这里,系统级需求 (SLR) 应该可追溯到高级需求 (HLR),而高级需求又可追溯到低级需求 (LLR)。HLR 可追溯到高级测试 (HLT),LLR 可追溯到低级别测试 (LLT)。

这种双向可追溯性使团队能够看到从需求规范到构建、测试、更改和返回的可见性(图 2)。

wKgaomRF8LmAHL7nAAEjfITp8lU922.jpg

[图2.不同类型需求之间的典型可追溯性结构。(资料来源:LDRA)]

在不失去可追溯性的情况下管理变更意味着需求和测试的耦合必须自动化 - 这也使得了解测试和需求变更的上游和下游影响变得简单。

验证需求满足情况

证明系统满足要求有助于量化“构建了正确的系统”。这有两种风格:

使用单元测试来证明应用程序组件单独满足其各自的目的

使用集成测试来显示应用程序的各个部分作为一个整体协同工作

自动化和自动化工具通过将单元和集成测试与其适当的要求联系起来并报告履行情况,而无需耗时的手动工作,从而提供帮助。图 3 说明了需求管理平台中的两个场景[5]:

HLR_100 –绿点表示满足要求,反映了已验证关联的高级测试 (TCI_HLT_100) 和低级别要求(LLR_104 到 LLR_109)的事实。

HLR_101 –红点表示需求未满足,反映低级别需求LLR_103由于低级别测试TCI_LLT_103失败而未满足的事实。

wKgZomRF8ySAA0T7AAKkBltpW4o259.png

[图3.使用自动化工具报告需求履行情况。(资料来源:LDRA)]

在后一种情况下,失败的测试具有关联的测试用例文件,可以使用单元测试工具和关联的回归报告进行回归,以帮助了解测试失败的原因。

确定结构覆盖率

结构覆盖率是嵌入式软件中的一个重要概念,因为它保证了整个代码库已得到一致和充分的执行。作为 ISO 26262、DO-178B 和 IEC 62304 等标准的关键准则,结构覆盖可帮助开发人员检测和删除死代码,而质量保证 (QA) 则使用它来确定缺失的测试用例。在这两种情况下,将此覆盖范围追溯到需求有助于确保每个已实现的组件都有一个原因,并确定尚未实现的要求。

自动化有助于确定结构覆盖率,显示随着基于需求的测试完成而执行代码的哪些部分[6]。图 4 展示了一个测试验证报告,其中显示了不同类型的覆盖指标的结果:

wKgZomRF8L2ALSAcAAD6irPZ7ZM445.jpg

[图4.使用自动化工具报告结构覆盖率(来源:LDRA)]

陈述–在执行应用程序时执行的语句数,占该应用程序中语句总数的百分比。100% 覆盖率意味着所有语句在测试期间至少执行过一次。

分支/决策 –在执行应用程序时执行的分支数占该应用程序中语句总数的百分比。

单声道/直流 –修改条件/决策覆盖率 (MC/DC) 衡量决策陈述中的所有条件是否至少对所有可能的结果进行一次评估,以及所有这些条件是否独立地影响决策的结果。

图 5 显示了这些测试与其相关的低级需求之间的映射,以形成可追溯性矩阵。在此示例中,所有要求 (LLR_*) 均已使用测试 (TCI_LLT_*) 进行验证。这种类型的报告只能通过应用此处讨论的可追溯性原则来实现。

wKgaomRF8L-AMpNmAADEvzMvjO0972.jpg

[图5.一个可追溯性矩阵,显示映射到测试用例的需求验证。(资料来源:LDRA)]

可追溯性确保制造出“正确”的产品

团队绝不能将系统和软件要求降级到货架软件中。随着产品变得越来越复杂,软件更新的频率越来越高,需求可追溯性对于最大限度地降低风险仍然是相关性和必要的。

了解需求实施和测试的方式和位置可确保软件适合用途。在软件更改中保持这种意识可确保开发人员了解对代码和测试的影响,而无需花时间搜索它们。

自动化是动态保持双向需求可追溯性并确保产品“正确构建”的唯一现实方法。没有它,团队将花费太多时间试图手动解决,从而导致成本增加和下游的潜在问题。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 测试
    +关注

    关注

    8

    文章

    5291

    浏览量

    126618
  • 嵌入式
    +关注

    关注

    5082

    文章

    19115

    浏览量

    304944
  • 代码
    +关注

    关注

    30

    文章

    4786

    浏览量

    68549
收藏 人收藏

    评论

    相关推荐

    嵌入式系统的未来趋势有哪些?

    会更加注重能源效率。低功耗设计和节能技术会成为关键,以延长设备的电池寿命或降低能源成本。这对于可穿戴设备、便携医疗设备等对续航能力有较高要求的产品尤为重要。 4. 多模块与集成化 在未来的
    发表于 09-12 15:42

    嵌入式发展前景 嵌入式系统行业对人才的需求

      众人都说嵌入式系统开发在2017年迎来了自己的兴旺之年,可很多人都在人云亦云,真正对嵌入式系统行业对人才的需求也是一知半解。本文创客学院
    发表于 06-23 11:04

    嵌入式发展前景 嵌入式系统行业对人才的需求

      众人都说嵌入式系统开发在2017年迎来了自己的兴旺之年,可很多人都在人云亦云,真正对嵌入式系统行业对人才的需求也是一知半解。本文创客学院
    发表于 07-03 18:46

    嵌入式系统产品的可靠

    和工业工厂自动化某些应用,超过严格的故障时间(FIT)率(平均故障间隔(MTBF)的相对概念)是完全不能接受的。 对于当今复杂的系统,工程师不仅要着眼于满足成本和性能目标的嵌入式解决
    发表于 08-30 14:43

    如何提升嵌入式系统的VxWorks安全

    实时嵌入式系统与网络的结合以及高可信覆盖网络的发展使得嵌入式实时操作系统的安全性问题日益突出。提高实时嵌入式
    发表于 10-30 06:03

    可靠是军用嵌入式系统重要因素是什么

    可靠是军用嵌入式系统重要因素军用嵌入式系统的可靠
    发表于 04-23 06:24

    如何满足嵌入式系统的灵活需求

    嵌入式程序开发基本概念如何满足嵌入式系统的灵活需求开发高效程序的技巧是什么
    发表于 04-28 06:07

    Linux对嵌入式重要性

    的,现在好多非嵌入式科班出身的求职者都投入到了嵌入式这个行业的学习当中,那么现在由小编简单的为您分析一下嵌入式工程师是如何炼成的呢。入门嵌入式工程师针
    发表于 10-27 07:00

    嵌入式软件的重要性

    效率的重要工作。目前,装备嵌入式软件的自动化测试,更多的还是依赖代码级别的白盒测试工具;黑盒动态测试还主要是根据不同的装备需求,研发配套的工装系统,测试效率和测试深度都有很大缺陷。主要
    发表于 10-27 06:59

    嵌入式系统重要特征是什么

    嵌入式系统的几个重要特征:1.系统内核小。由于嵌入式系统一般是应用于小型电子装置的,
    发表于 11-09 06:01

    嵌入式行业发展状况_嵌入式行业人才需求_嵌入式系统就业前景分析

    本文主要是对嵌入式系统就业前景分析,首先介绍了嵌入式行业发展状况及人才需求,其次阐述了嵌入式系统
    的头像 发表于 05-17 17:27 2.4w次阅读

    制造业MES的可追溯是怎样的?MES功能对可追溯有什么要求?

    着市场竞争越来越激烈,制造企业需要在产品召回、提高质量、降低成本等各个方面进行提升。而这些方面的提升和改进,需要获取企业生产过程中的各种可追溯数据。可追溯是MES系统的一个
    发表于 09-13 08:00 5次下载
    制造业MES的<b class='flag-5'>可追溯</b><b class='flag-5'>性</b>是怎样的?MES功能对<b class='flag-5'>可追溯</b><b class='flag-5'>性</b>有什么要求?

    食品的可追溯怎样来完善

    区块链具有独特的功能和特性,对食品可追溯特别有吸引力。
    发表于 08-05 09:59 1617次阅读

    确保红外测温的准确/可追溯

    计量可追溯至关重要,因为准确的温度测量会影响工厂安全、工艺效率、材料强度、产品质量、设备寿命等。
    的头像 发表于 08-29 08:07 1059次阅读
    确保红外测温的准确<b class='flag-5'>性</b>/<b class='flag-5'>可追溯</b><b class='flag-5'>性</b>

    RAM测试是什么?嵌入式系统开发中RAM测试的重要性

    嵌入式系统在众多关键应用中发挥着至关重要的作用,涵盖汽车和航空航天工业到医疗设备和工业控制系统领域。随着嵌入式
    发表于 07-28 11:11 2378次阅读