CoverageMaster winAMS
(面向Windows开发环境的单元测试工具)
面向嵌入式软件开发的单元测试
“大家都在使用的”覆盖率测量工具

  • 目标行业:汽车/FA/家电/医疗/OA等
  • 目标部门:嵌入式软件开发部门
  • 规  格:ISO 26262 / IEC 61508
课题

嵌入式软件开发中所涉及的课题

  • 由于嵌入式软件开发技术员的经验不足,对软件质量的影响
  • 由于软件重复利用中存在缺陷
  • 导致编码后的单元测试需要大量的人力与时间
解决

单元测试自动化工具
CoverageMaster winAMS可以解决软件的品质问题。

是一款符合ISO 26262 / IEC 61508标准,是可以测量语句、分支、MC/DC、函数调用等代码覆盖率,是面向C/C++语言软件的单元测试工具。对象代码执行编译后通过内置微控制器模拟器进行单元测试。不同于一般单元测试工具的仅对C源代码逻辑级别上的单元测试,还实施了包括嵌入式软件特有的在写入微控制器时所发生的问题点在内的、是微控制器代码最忠实和最可靠的单元测试。(※支持C++ 11/14。详细信息请参考下文)
カバレッジマスターwinAMS
CoverageMaster winAMS的特征

使用实机代码和CSV测试数据的测试流程

展示了使用交叉编译器执行实机代码和创建单元测试数据的流程
  • 特点 1
    执行最真实的基于实机代码的单元测试,推动测试效率
    “CoverageMaster winAMS”直接使用交叉编译器生成的“微控制器代码”,通过微控制器模拟器执行单元测试。不同于一般单元测试工具的仅对C源代码逻辑级别上的单元测试,还实施了包括嵌入式软件特有的在写入微控制器时所发生的问题点在内的、是微控制器代码最忠实和最可靠的单元测试。
  • 特点 2
    全面提供C0、C1、MC/DC Coverage以及软件结合阶段的函数/调用覆盖率的测量支持
    全面支持代码覆盖率测量标准C0(Statement Coverage)、C1(Branch Coverage)、以及功能安全认证所需的MC/DC(Modified Condition Decision Coverage),并且支持功能安全(ISO 26262)规定的结合测试项目中的函数/调用(Function/Call)覆盖率的测量。
  • 特点 3
    结合白盒/黑盒的测试理念,高效生成测试数据
    搭载利用以往的测试业务中总结出的单元测试数据的设计方法从而能高效的设计出功能测试数据的“测试数据分析编辑器”,通过将自动生成的测试数据与需求规格说明书进行对比,可以高效地进行黑盒测试(确认需求规格)和白盒测试(确认代码结构)。
  • 特点 4
    由于函数单元的覆盖率测试数据的创建,测试以及结果确认都在工具内无缝进行
    既能够提高了”测试数据生成器“的数据生成能力,又能够自动生成包含子函数的结合级别的测试数据。同时,在工具内就可以确认自动生成数据没有覆盖到的源代码行,还可以手动添加测试数据,从而实现覆盖率测试工作的进一步效率化。
  • 特点 5
    为了有效进行Back to Back测试,我们已经准备了相应的扩展功能
    拥有『CoverageMaster winAMS MBT扩展功能』就能够高效的实施基于模型开发所需求的Back to Back测试(以下简称BtoB测试)) 在CoverageMaster winAMS的标准功能之上,追加了包括MILS执行操作和报告书作成等7个功能实现了BtoB测试的高效执行。这有助于简化BtoB测试自动执行环境的构建,并有助于减少BtoB测试所需的工作量。
    『CoverageMaster winAMS MBT扩展功能』的有关详情请点此处
CoverageMaster winAMS的功能

CoverageMaster winAMS解决品质问题

  • 功能 01

    "代码覆盖率测量"功能

    • 通过每个函数的测试数据(CSV文件),自动测试函数的覆盖度指标与代码覆盖率。
      ・ C0: Statement Coverage
      ・ C1: Branch Coverage
      ・ MC/DC
      ・函数覆盖率
      ・调用覆盖率
    • 「コードカバレッジ測定」機能
  • 功能 02

    函数单元测试数据自动生成/编辑功能

    • 通过与程序解析工具「CasePlayer2」联动,自动创建用于结构覆盖(C1、MC/DC)测量的测试数据。

      【分析if、switch、for、while等条件分支结构】
      自动创建C1、MC/DC覆盖率100%的测试数据。

      【数据创建视图】
      列出测试函数中包含的条件语句(if语句、switch语句等)。根据条件语句设置的边界值信息,自动创建覆盖率测试所需的数据。
    • 函数单元测试数据自动生成/编辑编辑器功能
  • 功能 03

    测试数据分析编辑功能

    • 使用专用编辑器提高程序规格确认测试数据的创建效率

      ・作为从源代码自动生成数据的补充,创建基于程序规格的数据
      ・从程序的全面覆盖出发,创建自由组合的测试数据

      通过将自动生成的测试数据与需求规格说明书进行对比,可以高效地进行黑盒测试(确认需求规格)和白盒测试(确认代码结构)。
    • 测试数据分析编辑器功能
  • 功能 04

    测试数据生成功能

    • ・基于白盒测试理念,自动创建C1、MC/DC覆盖率的测试数据
      ・自动创建包含子函数的结合级别的测试数据
      ・确认自动生成数据没有覆盖到的源代码行
      ・手动添加测试数据

      通过一个工具实施以上工作,提高覆盖率测试工作的效率。
    • 测试数据生成器功能
  • 功能 05

    与能够高效确认和解析源代码的程序解析工具「CasePlayer2」的联动

    • 可以通过调用访问「CasePlayer2」生成的程序流程图和函数调用结构图,来进行单元测试的源代码分析工作。通过函数所使用外部变量的自动搜索功能,可以提高输入变量的设置效率,还可以防止变量指定遗漏等人为错误。
    • CasePlayer2との連携
  • 功能 06

    能够实现测试执自动化的CLI(Command Line Interface)功能

    • 通过使用测试脚本(Windows标准的批处理命令),来控制和操作CoverageMaster工具,从而方便管理和执行测试。
      该工具无论用于对源代码修改时所实施的回归测试,还是用于嵌入式软件的通用开发测试,还是用于汽车领域AUTOSAR等平台化所导致的同一源代码在多种车型上封装时进行的“重复测试”,这些测试均可完全自动化,无需人工用户界面操作。
    • CLI(Command Line Interface)機能によりテスト実行工程を自動化
  • 功能 07

    “函数覆盖率、调用覆盖率”测量功能

    • 支持结合测试的结构覆盖率测量功能。该工具满足ISO 26262所规定的结合测试(第6-10部分),可以测量源文件中的函数是否已被全面执行的函数覆盖率,以及指定函数内的子函数是否被全面调用的调用覆盖率。

      【函数覆盖率】
      通过给功能组件的顶层函数提供测试数据并驱动该函数,测量组成该功能组件的子函数是否已全面执行。

      【调用覆盖率】
      通过给函数提供测试数据并驱动该函数,测量其内部子函数是否被全面调用。
    • “函数Coverage、Call Coverage”测量功能
  • 功能 08

    支持C++ 11/14,满足新一代车载软件标准规格AUTOSAR-AP的单元测试执行环境的构建要求

    • 为支持AUTOSAR Adaptive Platform软件的单元/结合测试,除了传统的C++03外,我们还支持C++11(ISO/IEC 14882:2011)和C++14(IEC 14882:2014)标准。此外,工具还能够兼容STL和POSIX API的使用环境。

      开发者可以直接利用所创建的测试框架(如Google Test、Google Mock)的结果,并通过与Windows DLL的联动,实现对一般文件的访问,从而实现图像数据的导入。

      AUTOSAR Adaptive Platform软件单元测试工具
      Quality Town for Embedded grade(QTE)
    • 提供对C++ 11/14的支持,并协助构建针对AUTOSAR-AP的单元测试执行环境(工程服务)
  • 功能 09

    与负荷测量工具「PLAS-Qlite」的联动,实现了模拟环境下的性能验证

    • 通过CoverageMaster winAMS所搭载的微控制器模拟器与负荷测量工具「PLAS-Qlite」的联动,实现了模拟环境下的性能验证
    • 与「PLAS-Qlite」的联动

各种功能

代码覆盖率测量 语句覆盖率(C0)、分支覆盖率(C1)、修改条件/判定覆盖率(MC/DC)、函数覆盖率、调用覆盖率
微控制器模拟器 支持Altera、ARM、Cypress、Infineon、JRC、Melexis、NXP、Panasonic、Renesas、Sony、ST Microelectronics、Texas Instruments、Toshiba等多种嵌入式微控制器
(详情请点击下方链接)
自动创建测试数据 通过分析判定分支创建语句覆盖率(C0)、修改条件/判定覆盖率(MC/DC)数据
执行命令语句 通过批处理文件执行测试的功能(CLI = Command Line Interface)
功能安全认证 已获得汽车功能安全标准ISO 26262(TCL1~TCL3)、IEC 61508所签发的工具认证,并向用户发布安全手册(参考工作流程)