视频长度为 24:03

破解嵌入式软件质量难题: C/C++代码静态分析技术

来自系列: 破解嵌入式软件质量难题

概述

嵌入式软件的开发由于受到微处理器、RAM/ROM、IO等硬件环境的影响,其调试、问题定位和测试验证都很难像桌面/服务器软件开发那样便捷,当我们在集成阶段遇到一些棘手的问题,经常是食不甘味夜不能寐。

以测试用例驱动的单元测试,或者以代码规范和常见错误检查为目标的一些人工或工具检查验证手段,能帮助我们解决一部分问题,譬如充分的单元测试/回归测试至少能确保基本功能的正确性,对编码规范的检查或多或少能消除一些低级错误。

结果如何?现实案例不断打击程序员和管理者,该做的都做了,遗漏在所难免,如果在系统验证阶段未能发现,产品发布出去,面临的必然是召回和巨大的损失。

嵌入式软件质量难题里,尤其是在复杂算法或业务逻辑代码中,常常有以下情形中的一种或多种:

  • 单元测试不仅要打桩,还要写测试用例,(不涉及功能安全的情况下)常常只到函数覆盖
  • 防御式编程带来过度设计,不仅消耗有限的硬件资源,还进一步降低了测试的覆盖率
  • 测试发现访问越界或资源泄漏,极难定位
  • 普通工具的分析报告给出大量报警,真假难辨
  • 测试发现数值计算错误(溢出/除零等),解决了n处,还有没有遗漏,完全没信心

保证交付的产品稳定、可靠、安全是嵌入式设备开发企业的始终追求,其中涉及到包括诸如研发流程、周期、成本、认证等制约,如何在有限条件下,破解嵌入式软件质量的难题是软件开发与测试团队必须应对的挑战。

本次线上技术研讨会将以C/C++代码静态分析技术为出发点,带您了解各种运行时错误,介绍如何快速查找和消除代码bug,甚至证明你的代码零缺陷的多种高级操作。

研讨会将通过演讲和演示的形式,带领大家全面了解Polyspace的强大功能,为打造高安全完整性系统保驾护航,使得零缺陷嵌入式代码成为可能。

亮点包括

  • C/C++软件质量保证
  • 软件缺陷、运行时错误
  • 编码规范、功能安全、信息安全
  • 基于抽象解释的形式化验证
  • 生成用于安全认证的证物

关于演示者

周拥华,MathWorks中国技术经理,熟悉产品研发与工程实践,在电力(许继)、通信(华为)和轨道交通(GE)等领域有二十多年的系统仿真分析、系统架构设计、软件产品开发及研发项目与团队管理经验

录制日期: 2020 年 6 月 30 日