功能安全工具

Functional Safety Tool

产品概论

特色功能

  • 简洁高效的用户界面

    表格化管理使结果及覆盖率情况一目了然。用例管理与覆盖率分析位于同一视图,使其用例及代码覆盖情况、控制流程图结构覆盖情况尽收眼底。

  • 监控分析运行时错误

    通过分析程序语义,自动检测执行过程中的运行时错误,将潜在的程序缺陷及时扼杀在单元测试阶段

  • 通用化的测试报告

    支持美观的Word版测试报告下载,满足用户对测试报告通用要求的基础上,支持用户对测试报告自行修改。

  • 更快更稳的用例生成与执行

    一般被测单元的用例生成时间、及执行时间均在毫米级别。项目平均的一键测试(包含解析源代码、生成用例、执行用例三个过程)时间在7秒左右。

价值优势

  • 二进制文件和源代码扫描双支援

    市面上唯一一款能同时对二进制文件和源代码进行扫描的工具。用户不仅能在编写代码时持续监控代码的安全质量,用户也能在将源代码编译成二进制文件之后,对软件进行最终的安全评鉴。

  • 更全面的格式支持

    市面上八成的SCA源代码扫描工具由于C/ C++语言的特性问题,无法对由C/C++语言所编写的代码进行扫描。在二进制文件方面,九成的SCA二进制文件扫描工具无法对apk格式进行支持。对于以上特殊情况,SmartRocket Scanner都能提供完善的支持。

  • 漏洞修复建议

    在能够为用户扫描出代码漏洞的同时,也能为用户提供代码修复建议,让用户从发现问题到解决问题的过程更加紧密连接,更好的提升问题解决效率。

  • 庞大的漏洞数据库

    通过多年的科研经验与数据积累,能为用户提供更准确、全面的扫描结果。此外,通过长期对知名开源组件的跟踪,我们还拥有许多未被公开的独家漏洞信息,协助SmartRocket Scanner查找出最全面的可能漏洞。

  • 支持语句、分支、MC/DC覆盖准则

    SmartRocket Unit能够针对覆盖准则生成测试用例,支持语句、分支、MC/DC及边界覆盖准则,能够自动执行生成的测试用例并提供筛选项,能够满足D0-178B、ISO26262、EN50128等行业标准苛刻的测试要求。

    采用随机生成或数据字典生成测试用例的工具不含覆盖准则,用例通过随机组合产生,无法支持MC/DC及边界用例的定向生成。

  • 生成精简的测试用例集

    SmartRocket Unit可针对不同的准则生成精简化的用例集,使得用例间没有冗余。其他用例生成工具无覆盖准则之分,通过随机生成或数据字典方式来生成用例往往存在大量冗余。在测试航天某控制软件代码时,SmartRocket Unit仅生成 十多个用例就能够达到语句、分支及MC/DC的100%覆盖的函数,而使用的其他软件工具则给出了数百个测试用例,导致 大量用例的冗余。

  • 全面设计形参、全局变量、桩函数及桩函数形参数据

    SmartRocket Unit能针对形参、全局变量、桩函数及桩函数形参等进行全面设计,自动设计桩返回值及参数输出值等。而随机生成或数据字典生成测试用例工具通常只支持形参、全局变量的数据设计,从而导致无法达到较高的覆盖率。

  • 支持系统函数调用

    在被测代码中,有时我们想要保留系统函数,尤其是memcpy、memset等可能影响覆盖率的内存函数。对随机生成或数据字典生成测试用例的工具而言,该类系统函数无法正确识别,而 SmartRocket Unit 能够自动捕获此类函数的内存变化约束,生成正确的测试用例。 基于前两种生成策略的工具均无法正确覆盖return 0的分支,而SmartRocket Unit中提供了系统函数是否打桩的开关。当 我们开启系统函数不打桩的开关后,SmartRocket Unit就能够正确生成2个用例使得覆盖率达到100%。

  • 自动执行用例,满足预期值检查规范

    SmartRocket Unit生成用例后会自动执行用例,捕获用例的预期值等输出检查信息并自动比对。该检查项满足功能安全认证的要求,检查函数返回值、检查全局变量被修改值、检查形参指针指向内容被修改值等。而其他工具则无此检查项或检查项较为薄弱(例如:只检查函数返回值等),后续还需要大量的人工来补充该部分数据,从而导致效率降低。

  • 功能自动

    用户只需要点击上传按钮输入所要验证的安全需求文档和待验证的系统设计文档,再点击验证按钮即可根据安全需求一键式自动验证系统设计,最后的验证结果自动分类为验证通过,验证未通过和通过推导成功通过的安全需求三种情况。

  • 全面覆盖

    该工具的核心功能——验证功能是采用的形式化验证方法,形式化验证方法使用数学证明来确保系统满足要求,每条属性的真伪结论基于严格的数学证明,证明为真的属性任何情况下进行仿真都不会出错,即覆盖率可以达到100%。

  • 提供反例

    点击选择安全需求验证未通过的每个轨道交通设备,工具不仅会提供该设备的具体每个周期的验证结果(截止到最后出现反例的周期),还会提供该设备的逻辑关系模型图供用户点击该设备的关联设备以进行追溯。

  • 高性能

    基于模型检验的形式化验证方法内核,该工具即使针对大型的联锁系统也只需要花费少量时间即可进行完整的安全验证,快速验证即可快速发现系统设计错误并进行改正,实现良性循环,大大缩短了系统设计的周期。

  • 大容量

    该工具的内核验证功能采用的是基于模型检验的形式化验证方法,模型检验技术已在航空电子,电子设计自动化等行业中得到使用的证明,即可以对超大型系统进行验证,同样我们的工具可以对超大型联锁系统进行验证。

  • 高效安全

    采用先进的虚拟执行技术,扫描覆盖率高、误报率低。清晰易读的漏洞分析报告,丰富的统计、报表、图形展示界面,灵活的部署方式和扫描方式。

  • 定制服务

    基于自主研发的代码扫描引擎,可以根据用户业务及技术特点进行针对性的代码扫描引擎定制服务,进一步提高代码扫描的覆盖率和准确率。

  • 完善的自动化漏洞发现体系

    模糊测试通过尝试逼近覆盖到程序所有执行路径为导向,自动生成测试用例来发现程序中的潜在缺陷。模糊测试还可以作为一种持续化部署流程集成在原有CI/CD/DevOps开发流程中,成为一套完善的自动化漏洞发现体系,以帮助客户高效、快速、方便地寻找 Bug 和漏洞。

典型应用

  • 探月工程三期

  • 上海地铁信号

  • 车载ECU系统

  • 轨道交通

  • 航空航天

  • 轨道交通

  • 汽车电子

  • 航空航天

  • 轨道交通

  • 汽车电子

  • 航空航天

    卫星控制软件是卫星控制系统的核心,其功能复杂,单元测试覆盖率要求高,手工测试用例编写成本大,且容易出错。使用SmartRocket Unit能够自动生成满足语句覆盖、分支覆盖、MC/DC覆盖的单元测试用例,并自动进行测试执行,能够提高软件测试效率和软件产品质量。在某航天单位 15 万行代码测试中,SmartRocket Unit获得了超过90%的平均语句覆 盖率。

  • 地铁信号

    地铁信号系统是地铁控制的中枢,在地铁信号系统测试中,需要根据不同的SIL等级来进行相应的单元测试。传统测试中,测试用例编写依靠人力实现,对于MC/DC覆盖率有严苛要求的软件代码测试,必然会耗费大量的人力及时间。

    使用SmartRocket Unit工具能够解决该问题,可大大减少人力成本及时间成本。在某地铁信号单位的20万行代码测试中,SmartRocket Unit获得了平均超过85%的语句覆盖率,用例生成效果显著。

  • 汽车电子

    汽车电子行业遵从ISO26262标准,对于需要达到ASIL-D安全等级的工程,同样需要耗费大量的人力及时间来编写用例。 SmartRocket Unit生成的用例能够无缝应用于汽车电子行业,从而帮助测试人员快速达到语句/分支、MC/DC的代码覆盖率要求。在某汽车电子单位10万行代码测试中,SmartRocket Unit获得了超过85%的平均语句覆盖率。