Cantata Hybrid是世界上第一个适合Google Test的认证引擎,属于Cantata的一个产品子集,它允许开发人员运行现有的GoogleTest套件,从经过认证的单元测试工具生成测试结果证据和代码覆盖率,从而符合国际功能安全认证的标准,Cantata Hybrid弥合了开源测试和安全关键软件开发之间的鸿沟,使您能够实现现有Google Test的功能安全标准合规,是一个经济有效的替代方案。
Cantata Hybrid是Google Test的认证引擎:独特的安全标准合规Google Test套件
从现有的Google Test生成经过认证的Cantata测试结果,Cantata Hybrid通过使用非Cantata测试套件(如GoogleTest®和GoogleMock®)作为输入源来执行测试。该功能允许生成Cantata测试结果证据,与从认证的单元测试工具获得的代码覆盖率数据无缝结合,以符合所有主要的安全关键标准。Cantata Hybrid弥合了开源测试和安全关键软件开发之间的鸿沟,使您能够实现现有Google Test的功能安全标准合规。
Cantata Hybrid的主要特点:
- 通过ISO 26262, DO-178C/DO-330, IEC 61508等安全标准认证
- 不需要重写测试或学习新的工具
- 测试在主机/目标上运行,覆盖范围高达MC/DC级别
- 经济高效的替代昂贵工具认证方案
- 与其他 QA-Systems 认证的静态和动态测试工具集成
从现有的Google Test中生成经过认证的Cantata测试结果
Cantata Hybrid是Cantata®的一个专门子集,它允许以非Cantata测试套件(即GoogleTest®和GoogleMock®)作为输入来运行测试,从而生成Cantata测试结果证据,以及经过认证的单元测试工具的代码覆盖率。
Cantata核心产品,包括Cantata Hybrid,已通过SGS-TÜV GmbH独立认证,适用于所有主要软件功能安全标准的最高安全完整性等级的使用。
Cantata与GoogleTest的这种混合体为Google Test提供了一个全自动的认证引擎。
Cantata Hybrid不需要用户学习Cantata,也不需要修改他们现有的GTest套件或模拟对象,以及它们的构建和运行方式。
Cantata Hybrid是如何工作的
Cantata Hybrid在命令行中被用于脚本化的批量执行。它利用经过认证的核心组件 Cantata 编译器驱动程序和插桩器(CPPCCD)来设置 Cantata 指令和选项,包括代码覆盖率,以便从 GoogleTest 套件中定义的输入构建测试可执行文件。
针对目标环境的Cantata库的部署与源代码和GooqleTest套件相链接。当这个混合测试可执行文件运行时,它执行GooqleTest套件中的所有GooqleTest和GooqleMock宏,并与它们等效的Cantata测试框架指令并行,收集每个测试实现的Cantata代码覆盖率。
Cantata Hybrid同时运行标准的Google Test和等效的Cantata测试,为每个测试生成结果,同时提供所有测试套件详细和汇总的代码覆盖率结果。覆盖率报告是使用Cantata实用程序(CPPGETCOV)以经过认证的格式生成的。
在主机或目标平台上运行测试
在Cantata Hybrid下的Google Test可以在任何目标平台上运行,其中已经为Cantata提供了针对特定目标的部署(模拟器、模拟器或物理目标板)。当测试exe在目标上运行时,功能和代码覆盖率测试结果被定向回主机以生成测试报告。
在测试中,源代码的副本将使用Cantata测试指令和代码覆盖率,以确保生产代码永远不会因为测试而修改。
为什么要为Google Test使用认证引擎?
✔安全标准要求使用经过认证的工具
所有主要的安全相关标准都要求所有的测试工具都被证明适合于验证安全关键的应用软件。这可以通过工具鉴定或使用预先认证的工具来实现,具体取决于标准。
GoogleTest和GoogleMock是未经认证的开源xUnit风格工具。 Google®不在安全关键软件市场运营,因此不提供工具资格套件或工具认证套件。 大多数商业单元测试供应商,包括QA Systems已经为他们的工具获得了独立的认证(例如Cantata),或者他们在需要的时候支持用户对他们的工具进行认证(例如DO-178C)
✔GTest工具鉴定昂贵
像GoogleTest和GoogleMock这样的开源工具可以由最终用户去认证。然而,与这种做法相关的成本可能非常昂贵和耗时,因为它涉及:
- 定义所使用的所有工具特性的需求
- 进行测试,以证明所有功能符合工具操作环境的要求
- 维护每个工具版本和工具使用环境的资质数据
- 支付独立的第三方机构为您执行上述任务
由于这些原因,大多数安全关键软件的开发人员不去对GoogleTest和GoogleMock做认证,而是选择像CANTATA这样经过认证的测试工具。
✔GTest 工具资质替代方案
一种选择是使用预认证或经过认证的单元测试工具(例如CANTATA)重写现有的 GTests。然而,根据现有的 GTests 数量,这可能是一种昂贵的测试迁移选项。
Cantata Hybrid充当了 Google Tests的自动认证引擎,为GTest和GMock工具的昂贵工具资格提供了一种更具成本效益的替代方案。
Cantata Hybrid是认证的Cantata工具的一个专门子集,它提供了一种独特的方法来执行现有的Google Tests,而无需在认证的Cantata工具中进行任何修改。它产生所有必要的认证测试和代码覆盖结果,以符合安全标准。
Cantata Hybrid主要优势
- 比GoogleTest工具认证便宜:Cantata Hybrid的价格明显低于符合安全标准的GoogleTest和GoogleMock认证的成本。请参阅最后一页以了解许可证的详细信息。
- 无需迁移或修改Google Tests:Cantata Hybrid使用不变的Google Test套件,因此团队可以维护现有的Google Test并开发新的Google Test。
- 无需学习新的测试工具:使用Cantata Hybrid从CLI运行Google Test非常简单。经过认证的测试和代码覆盖率结果会自动生成。
- 不需要经过认证的代码覆盖工具:gcov (GNU覆盖工具)也不是经过认证的代码覆盖工具。Cantata Hybrid覆盖率经过认证,并根据所有标准指标检查100%的代码覆盖率,直至MC/DC。
- 使用标准Cantata进行扩展:当现有的Google Test没有达到100%的代码覆盖率时,标准Cantata(包括AutoTest)可以用与Cantata Hybrid相同的格式报告来填补这些覆盖率缺口。
- 可用于多个平台,Cantata Hybrid没有平台许可限制,并支持以下内容:
- Windows或Linux上的GoogleTest v1.13以上版本;
- g++ 支持到v13.2和Visual Studio支持到2019版本;
- 任何可用于CANTATA目标部署的嵌入式目标环境(为模拟器、仿真器、物理硬件交叉编译);
- Visual Studio代码与CANTATA CTR VSCode扩展。
经过认证的测试和代码覆盖率结果
Cantata Hybrid作为Cantata的一部分,已获得SGS TÜV的独立认证,适用于所有主要功能安全标准的最高安全完整性级别。
覆盖率指标:
>入口点( Entry Points)
>调用返回(Call Returns)
>语句(Statements)
>基本块(Basic Blocks)
>决策(分支)(Decisions (Branches))
>条件(Conditions)
>MC/DC
>循环(Loops)
>关系运算符(Relational Operators)