软件质量需要静态代码分析和动态测试

召回活动增多、交付延迟、难以按时交付承诺的功能:软件质量不明显。只有通过一致的行动、遵守标准以及使用成熟的测试和质量保证工具,才能开发出好的软件。糟糕的软件会导致金钱损失和企业形象的恶化。嵌入式软件更为关键,因为它主要用于安全关键应用程序。在这里,软件错误可能危及人的生命,因此必须不惜一切代价避免。为此,ISO 26262、IEC 61508 或 DO178-C 等标准对软件的开发和测试质量有严格的要求。

为了保证质量,静态代码分析程序和动态分析(包括单元测试)期间对可执行软件的测试都是必要的。由于这两种方法中的每一种都只发现了现有缺陷的一部分,因此两种互补的方法都是必要的。

在开发早期使用静态分析工具

动态分析需要执行代码,而静态分析则不需要。因此,可以在实施阶段的开发过程早期使用静态分析工具。出于这个原因,静态代码分析对项目的成功做出了巨大贡献——发现错误越早,修复的成本效益就越高。

在不编写测试用例的情况下,静态代码分析工具检查代码的语法、语义、控制流和数据流异常、并发问题以及编程规则。发现了许多错误和安全漏洞。

建议从开发开始就定期对代码进行静态分析 - 最好由个人开发人员在签入他的代码之前进行。当静态代码分析不再指示任何错误时,才将代码提交到进一步的验证步骤(例如代码审查、单元测试或集成测试)是有意义的。通过此程序,可以显着减少交货前最终检查期间的错误消息数量。

静态分析工具在使用 C 和 C++ 等语言的嵌入式系统的开发中特别有用。这些语言为开发人员提供了很大的自由——不幸的是,编写错误的源代码也是如此。诸如空指针异常、缓冲区溢出或全局变量问题之类的错误很常见。静态代码分析可以避免此类错误。   http://bj.dyrs.com.cn/story/202112/1171123?source=wx

动态测试也是必要的

一旦软件可以执行,静态分析就应该辅以动态测试。

动态测试主要用于证明系统的功能正确性。通常,它们会在第一个代码组件可执行后立即执行。这些测试的一个重要部分是代码覆盖率分析,它确保代码的所有(重要)部分都将被测试。

代码覆盖工具,如来自 Verifysoft Technology 的 Testwell CTC++,在源代码中的所有相关点(代码检测)放置计数器,以测量这些代码部分是否在测试运行期间被执行。由于嵌入式系统通常只有有限的内存空间,因此该仪器的开销保持很小很重要。此外,代码覆盖工具对性能的影响应该很小,以避免时间紧迫的系统出现故障。覆盖工具通常集成到开发环境中——代码检测是自动的。测试运行后,覆盖分析器生成报告,允许详细查看哪些功能已执行,哪些未执行。

对于安全关键的软件代码覆盖率是强制性的。标准 DO-178C(航空)、ISO 26262(汽车)、EN 50128(铁路)和通用标准 IEC 61508 规定了高达修改条件判定覆盖率 (MC/DC) 的高代码覆盖水平,以证明所有条件或软件中的决策。

需要静态分析和动态测试才能获得良好的质量

为了保证高质量,静态分析、软件执行期间与代码覆盖率相关的充分测试(动态测试)的组合是必要的。我们的家用电器项目的实际例子说明了为什么需要使用这两种方法以及为什么只使用一种测试或分析技术可能会导致致命的后果。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值