在整个软件开发生命周期和所有开发工件中定义和双向跟踪需求的能力是开发高保证软件不可或缺的方面。在许多情况下,这也是让监管机构认证代码的一部分。它是确保当今关键软件可靠、安全和可靠的关键要素。所有这三个方面,尤其是作为其他两个基础的安全性,必须从头开始构建到代码中。它变得过于复杂,无法像绷带一样固定。
为了完成所有这三个要素,开发人员必须能够清楚地说明系统的功能、安全和安保要求,然后能够验证软件和系统是否满足这些要求。他们需要需求可追溯性,包括将需求从其文档跟踪到执行它的代码的能力,以及从该代码追溯到需求的能力。

曾经有一段时间,可以通过走查等非正式方法来实现可追溯性,但如今的代码已经变得如此庞大和复杂——更不用说至关重要了——以至于这些方法根本不再值得信任。自动化工具既可以测试代码是否存在以执行既定要求,也可以确保此类代码不会受到细微编码错误的影响。第一步是建立双向需求可追溯性,可以跟踪从每个需求的代码到实现该功能的源代码,并且同样能够从该源代码追溯到需求。
通过验证实现软件质量目标所需的工具包括静态和动态分析。静态分析工具使用未编译的源代码来分析它的各种质量方面,例如清晰度、一致性和复杂性,并根据编码规则检查它以符合特定的安全或安全相关编码标准。此外,静态分析可用于建立数据和控制流的基础知识,这对于了解代码中的潜在弱点和漏洞至关重要。也就是说,谁或哪些人或软件实体可以访问哪些数据以及它们如何影响控制?这有助于确定给定的所需功能是否正在获得所需的访问权限,或者未经授权的实体是否也可能正在这样做。
另一方面,动态分析在编译和执行的代码上运行。动态分析利用静态分析过程中产生的信息对编译后的代码进行测试,并与源代码协调,自动生成一套测试。然后可以通过从需求文档派生的手动创建的测试来补充这些测试。这些可以包括功能安全测试,例如通过向设备提供错误数据来获得对设备的控制的模拟尝试。
覆盖分析提供了对代码执行了多少的度量,但更具体地说,通过图形可视化提供了分支/决策覆盖和过程/函数调用覆盖,从而更深入地了解代码对给定刺激的响应。这不仅会告诉您需求是否已得到解决,而且还会告诉您它们是否已正确执行而没有隐藏的危险。需求可追溯性与覆盖分析的结合还可能出现“死代码”或从未执行过的代码区域。这段代码可能会给您带来不便,但如果黑客能够获得访问权限并从中获得控制权,它也可能构成安全威胁。它是无法追踪的代码,因此应该被淘汰。
在整个生命周期和整个开发工件(包括执行代码)中定义和跟踪需求的能力是能够验证代码的不可或缺的方面,并且在许多情况下,对于获得监管机构认证的代码而言。在当今软件日益复杂的世界中,必须使用自动化工具来完成。需求跟踪既支持也支持其他测试活动以构成整体,但它代表了追求其他活动的基础,例如标准合规性、正确编码、单元系统和集成测试等。
审核编辑:郭婷
-
源代码
+关注
关注
96文章
2953浏览量
70644 -
代码
+关注
关注
30文章
4976浏览量
74380
发布评论请先 登录
润和软件AI质检平台以智能化手段破解图文比对难题
嵌入式软件单元测试必要性与专业工具重要性的系统性专业研究报告
半导体供应链信任革命:从可追溯到全链路可信的升级之路
汽车软件质量跃迁的系统性路径:基于ISO 26262标准的单元测试体系重构与中日实践深度对比(2026学术研究报告)
嵌入式软件单元测试中AI自动化与人工检查的协同机制研究:基于专业工具的实证分析
H200的“合规闸口”:高端AI芯片供应链中的可追溯性生命线
东莞MES系统助力企业实现生产过程透明化与可追溯
一文看懂医疗行业密封性检测方案,医疗气囊是如何高效完成气密性测试的
为什么可追溯性是汽车制造的关键
IATF16949 认证保障:合粤车规电容品质全程可追溯
普迪飞 Exensio®数据分析平台 | 助力提升半导体制造的可追溯性
半导体可追溯性和供应链韧性的未来
一体化解决方案Jama Software,如何支持医疗设备开发中的需求管理、风险管理与验证?
Perforce ALM产品简介:一站式需求与测试管理平台(已通过SO 26262认证)
需求可追溯性为彻底的软件测试奠定了基础
评论