单元测试工具

SmartRocket Unit

产品概论

SmartRocket Unit作为一款单元测试工具,除了可自动生成、并执行测试驱动及覆盖率分析等基础功能外,其核心功能在于能够智能生成满足语句、分支、MC/DC准则的覆盖率最高达100%的测试用例。通过使用SmartRocket Unit,用户可快速对安全攸关的代码进行单元级别的白盒测试、黑盒测试及回归测试,从而进一步提升单元测试的效率。该工具已通过TÜV 的功能安全认证,符合IEC 61508-3:2010(工业通用)、EN 50128:2011(轨道交通)、ISO 26262-8:2018(汽车电子)等行业功能安全标准对单元测试工具的要求。

欢迎试用

特色功能

  • 简洁高效的用户界面

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

  • 监控分析运行时错误

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

  • 通用化的测试报告

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

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

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

价值优势

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

典型应用

当前SmartRocket Unit已测试航空航天、地铁信号、汽车电子、核电控制及知名开源软件超过500万行,平均语句覆盖率超过85%,能够节省大量的人力物力。大幅提升测试人员的工作效 率,测试效率提升10倍。
  • 探月工程三期

  • 上海地铁信号

  • 车载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%的平均语句覆盖率。