0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入软件单元测试/集成测试自动化工具

fzm 来源:fzm 作者:fzm 2023-07-11 17:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

CoverageMaster winAMS :适用于嵌入式目标机代码的单元测试/集成测试工具

全面支持嵌入式微机!验证嵌入式C/C++软件 实施以模块为单位的自动化单元测试工具
不需要HookCode直接使用目标机代码进行单元测试
联合静态解析工具[CasePlayer2],提供C0(语句),C1(判定),MC/DC覆盖率报告,优化测试用例制作
已取得第三方认证机构TUVSUD对适用于汽车机能安全ISO26262软件工具的认证

产品概要

[Coverage master winAMS]是以嵌入式软件的函数为单位,实施模块单元测试以及C0/C1/MCDC覆盖率测试(coverage test)的嵌入式软件自动化单元测试工具。目标机源代码通过交叉编译器生成目标机执行代码,通过跟实际处理器同样的模拟处理器环境进行单元测试,不需要对执行代码做任何变动,使高信赖性的模块测试成为可能。在汽车控制软件这样的对安全性要求极高的领域,单元测试已经成为不可缺少的一部分。使用目标机代码进行单元测试也是为了符合汽车行业中ISO26262功能安全认证标准。

产品特长

pYYBAGKsVoyAHixAAAAVJJlbLxE861.jpg

全面支持嵌入式微机!验证嵌入式C/C++软件 实施以模块为单位的自动化单元测试工具

作为能够检验出仅凭系统测试以及整体测试无法发现的[潜在错误]的检测方法,[单元测试]在嵌入式开发领域受到广泛重视。同时,单元测试也是汽车用软件功能安全(ISO26262)领域中要求实施的认证项目之一。

[Coverage master winAMS]直接使用通过交叉编译生成的目标机代码,在模拟处理器环境下进行单元测试。既能实现C语言程序的逻辑上的单元验证,又能够对嵌入式微机组装为产品后可能发生的问题等进行具有高信赖度的白盒(white box)测试。

不需要HookCode使直接使用目标机代码进行单元测试成为可能的业界唯一的工具

有些公司的单元测试工具往往采用在被测试对象的源代码中追加测试用代码或者测试用驱动器的方法,导致测试时所用的代码与组装为产品后的目标机用代码不同。虽然[理论上运行功能应该是相同的],但是从嵌入式开发的角度考虑,这样就如同对交叉编译所生成的经过优化处理的代码进行了加工,无法确保最终产品的质量。Coverage master winAMS是业界唯一的,具有[不需要对被测试对象做任何加工]实施单元测试功能的工具,特别是在安全性要求高的领域中得到很高的评价。

poYBAGKsVqGAXI5WAAB1ZplNu4E316.jpg

不需建立单元测试专用的环境,可以在开发用交叉编译环境进行单元测试

Coverage master winAMS不需要追加任何测试用驱动器或测试用代码,可以直接使用将组装成产品的目标代码进行单元测试。单元测试能够与软件开发使用共同的交叉编译环境,不再需要对测试资源进行专门管理,也不再需要建立其他专用环境。因此,既方便程序资源管理,又能够缩短准备测试环境所需的时间。

符合汽车功能安全标准(ISO26262)[不做加工直接使用目标机代码实施单元测试]这一要求的最佳工具

pYYBAGKsVqKAUQrXAAA0ptE0iTI560.jpg

ISO26262是从IEC61508衍生出来的适用于汽车制造领域的功能安全标准。其中的Part.6-9[软件程序单元测试]包括了关于软件程序的构造覆盖率测试以及有关的规定项目。根据汽车安全标准(ASIL),提出了测试语句覆盖率(statement coverage),分支覆盖率(branch coverage),MC/DC覆盖率的推荐性事项。

其中的另一个推荐性事项是

[尽可能使单元测试的环境与目标环境相同]

的规定。如果在与目标环境不同的环境下进行单元测试,必须表明源代码与目标代码的差别,以及目标环境和测试环境的差别。因此,对于那些使用与目标微机不同的电脑进行编译和单元测试的其他公司的工具而言,这个要求很难满足。 还有些公司的单元测试工具虽然包括交叉编译环境及编译功能,而且也能够在与目标环境相同的环境下进行测试,但是所有的测试都需要插入测试用代码,进行再次编译,因此测试也只能在与目标环境不同的环境下实施。

GAIO提供的单元测试工具Coverage master winAMS具有

●采用全面支持嵌入式微机的微机化功能测试平台环境
●不需要插入测试用代码直接使用目标机代码进行测试

的特征,提供符合ISO26262标准要求的必须功能。GAIO提供的Coverage master winAMS是符合ISO26262标准[直接使用整装用代码实施单元测试]这一要求的业界唯一的工具。

关于汽车机能安全ISO26262的对应以及认证的获得

poYBAGKsVqOASj6tAAAk_d1iEZY788.jpg

已取得第三方认证机构TUVSUD对适用于汽车机能安全ISO26262软件工具的认证

2012年6月28日,「Coverage master winAMS / General」测试工具获得由德国TUVSUD第三方认证机构,在汽车机能安全规格的ISO26262软件工具方面的认证,包括日本在内亚洲地区首次获得该项认证。

通过此项认证,说明本公司的单元测试工具「Coverage master winAMS / General」,以及程序分析工具「CasePlayer2」,在静态分析和单元测试领域,是符合所有安全度水准的工具,并由TUVSUD认证机构得到了保障。

ISO 26262对于不同的开发用软件工具在工具置信水平(TCL),都需要开发者提供开发软件工具的认证书。此项认证适用于在工具认证当中,最为复杂的TCL3工具认证标准。因此,导入本公司的单元测试工具之后,不需要对TCL的部分进行认证,进而可以缩减手续跟时间。

主要的单元测试功能

采用SSTManager管理单元测试project

SSTManager是Coverage master winAMS的应用功能,用于管理单元测试project,制作测试数据(test data)。从设定测试环境开始,到报告测试结果为止,均由微机化功能测试平台(ISS)实施综合管理。

采用通用便利的CSV文件管理测试数据的输入输出

Coverage master winAMS不需要插入测试用代码,直接使用目标机代码进行单元测试。采用通用便利的CSV文件管理函数测试时使用的输入输出数据。测试结束后,输出的测试结果和输出的期待值也将以相同的格式显示在CSV文件之中。

C0/C1覆盖率报告的自动化制作功能(标准功能)

根据测试的输入输出数据自动报告相应源代码的C0/C1测试覆盖率结果。包括通过图形(viewer)显示测试数据,以及与其相应的被测试的源代码路径的功能,用于分析测试结果。作为选项功能也包括MC/DC覆盖率测试功能。

pYYBAGKsVqOAKwMAAABTnN2rhPE448.jpg

poYBAGKsVqSAajd-AABcgQxGQz8502.jpg

MC/DC覆盖率的自动化测试功能(选项功能)

pYYBAGKsVqWAdOtpAABlrZg2h8c760.jpg

作为选项功能提供MC/DC覆盖率测试功能。C0/C1覆盖率测试不需要加工即可直接使用目标机代码。然而,MC/DC覆盖率测试对于复合式的条件式,需要自动插入HookCode将复合式的条件式分解,才能对各条件式进行测试。这样就有可能导致测试用代码与目标机用代码的不同。为了验证HookCode的妥当性,在MC/DC覆盖率测试的同时,运行目标机代码,确认运行结果与期待值的一致性。

注:右图举例显示,第2个if句的复合条件式中,[gbc>30]为false时的分支没有被测试到。以C1覆盖率测试来说,它的测试结果是OK;而对于MC/DC覆盖率测试来说,它的结果是NG。

注: MC/DC覆盖率测试功能不支持C++程序。

单元测试的效率化功能

联合程序解析工具CasePlayer2,实现代码参照解析作业的效率化

利用CasePlayer2生成的流程图表以及模块构造图(调用函数的构造图)与源代码的连接(link)功能,使单元测试用源代码的解析工作效率化。

能够自动检索被测试函数的外部变量,使测试条件设定效率化

联合程序解析工具CasePlayer2,自动检索被测试函数所使用的外部变量。缩短了以往必须对源代码进行搜索找出输入条件的变量所需的工作。而且,能够防止人工操作导致的类似变量指定遗漏的的错误。

poYBAGKsVqaAQiOFAAAzx789sGg373.jpg

pYYBAGKsVqeAA45gAABIHkFbGVQ136.jpg

根据代码解析自动化制作C0,C1,MC/DC覆盖率测试计划

联合程序解析工具CasePlayer2,自动化制作符合覆盖率测试要求的条件分支if,switch,for,while等的测试数据。可以将被测试函数中含有的条件式(if以及switch等)在数据制成图形(Viewer)上列表显示。点击其中的条件,工具将自动开始检索与之相关的变量,进而从所设置的条件的境界值中自动生成覆盖率测试所需要的数据。

为了达到C1/MCDC覆盖率,测试时需要对各函数的数据进行组合。利用CasePlayer2提供的解析结果,分析条件式的net构造,在重复性限制在最小限度下生成C1/MCDC覆盖率测试用数据。

pYYBAGKsVqiALSWLAADI3B4dq-U861.jpg

支持MPU

CoverageMaster winAMS Supported Processor List(English)

动作环境

・操作PC/OS
・IBM PC/AT兼容机
・Pentium(相当) 2GHz以上的CPU
・存储器 512MB以上(推荐值)
・显示器分辨率 XGA(1024*768)以上(推荐值)
・Windows XP, Windows Vista, Windows 7(32bit/64bit)(※Windows 95/98/Me/NT/2000未支持)

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 测试
    +关注

    关注

    8

    文章

    6027

    浏览量

    130706
  • 嵌入式
    +关注

    关注

    5186

    文章

    20145

    浏览量

    328733
  • 自动化
    +关注

    关注

    30

    文章

    5886

    浏览量

    89194
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入软件单元测试的全面研究与实践

    作为软件开发过程中最早进行的测试活动,能够有效隔离代码片段,验证其功能是否符合设计预期,从而在早期阶段发现潜在缺陷,提升代码质量。本文将系统探讨嵌入软件
    的头像 发表于 12-01 14:31 157次阅读

    新能源汽车质量保证体系与传统汽车单元测试规范的融合研究

    摘要 随着新能源汽车产业的快速发展,其质量保证体系面临前所未有的挑战。本文探讨了将传统汽车成熟的单元测试规范应用于新能源汽车领域的可行性,重点分析了ISO 26262标准体系在新能源汽车电子控制系统
    的头像 发表于 11-07 10:10 91次阅读

    单元测试专业工具在新能源开发中的作用研究

    单元测试的历史由来与发展 单元测试的概念可以追溯到20世纪60年代,伴随着计算机科学和软件工程学科的发展而逐步形成。早期的计算机科学研究(20世纪60年代)中,程序员意识到仅依靠手工调试和集成
    的头像 发表于 11-03 16:03 306次阅读

    嵌入式C/C++回归测试四大最佳实践(附自动化测试工具TESSY使用教程)

    嵌入式开发中,一次微小的代码改动都可能引发“蝴蝶效应”,如何守护系统的稳健?推荐专业的自动化测试工具#TESSY,源自戴姆勒-奔驰,是嵌入式C/C++
    的头像 发表于 10-31 14:21 182次阅读
    <b class='flag-5'>嵌入</b>式C/C++回归<b class='flag-5'>测试</b>四大最佳实践(附<b class='flag-5'>自动化</b><b class='flag-5'>测试工具</b>TESSY使用教程)

    嵌入软件测试与专业测试工具的必要性深度解析

    ‌:单元测试集成测试、系统测试等不同阶段可能需要不同的工具组合16。 ‌软件特性‌:实时性要
    发表于 09-28 17:42

    边聊安全 | 软件单元测试的设计方法

    上海磐时PANSHI“磐时,做汽车企业的安全智库”软件单元测试的设计方法写在前面:软件单元测试的设计是一个系统化的过程,旨在验证代码的最小可测试
    的头像 发表于 09-05 16:18 4248次阅读
    边聊安全 | <b class='flag-5'>软件</b><b class='flag-5'>单元测试</b>的设计方法

    电源模块的短路保护如何通过自动化测试软件完成测试

    搭建 自动化测试软件运行于特定测试系统架构之上。以国产化测试平台ATECLOUD电源模块进行重复短路测试
    的头像 发表于 09-03 19:10 560次阅读
    电源模块的短路保护如何通过<b class='flag-5'>自动化</b><b class='flag-5'>测试</b><b class='flag-5'>软件</b>完成<b class='flag-5'>测试</b>

    HarmonyOSAI编程单元测试用例

    根据选中的ArkTS方法名称,CodeGenie支持自动生成对应单元测试用例,提升测试覆盖率。 在ArkTS文档中,光标放置于方法名称上或框选完整的待测试方法代码块,右键选择CodeG
    发表于 08-27 14:33

    单元测试工具TESSY现已支持ABIX HiperSIM,助力MELEXIS MLX16 汽车嵌入式系统的软件验证

    TESSY现已支持ABIX HiperSIM,为基于MELEXIS MLX16架构的汽车嵌入式系统提供高效、可靠的软件验证解决方案。自动化测试+高保真仿真,助力提升
    的头像 发表于 07-17 13:39 663次阅读
    <b class='flag-5'>单元测试工具</b>TESSY现已支持ABIX HiperSIM,助力MELEXIS MLX16 汽车<b class='flag-5'>嵌入</b>式系统的<b class='flag-5'>软件</b>验证

    新能源车软件单元测试深度解析:自动驾驶系统视角

    分析: ‌支持MC/DC(修正条件/判定覆盖)等安全关键指标。 ‌ 自动化程度: ‌测试用例生成、执行、报告的全流程自动化。 ‌ 多核支持: ‌并行测试加速,如某
    发表于 05-12 15:59

    新能源车背后的隐形守护者:软件单元测试的生死较量‌

    。这个教科书级的避让动作背后,是超过8000万行代码的精密协作,而确保这些代码绝对可靠的秘密武器,正是我们今天要揭秘的软件单元测试。 ‌一、代码世界的显微镜:单元测试为何重要‌ 如果把整车软件
    的头像 发表于 05-12 11:00 436次阅读

    单元测试嵌入软件中的关键作用及winAMS工具的卓越贡献

    1. 单元测试概述 ‌定义与核心目标‌ 单元测试软件开发过程中针对程序模块(如函数、类或组件)的最小可测试单元进行的验证活动。其核心目标在
    的头像 发表于 04-11 14:31 753次阅读

    嵌入软件单元测试的必要性、核心方法及工具深度解析

    一、为什么嵌入软件必须重视单元测试? ‌嵌入式系统的特殊性‌ 在汽车 ECU、医疗设备控制器等场景中,软件直接操控硬件,‌单比特错误可能导
    的头像 发表于 03-21 14:53 949次阅读

    通用自动化测试软件 - TAE

    INTEWORK-TAE(Test Automation Executor) 是一款通用的测试用例自动化执行框架,用于汽车电子自动化测试,可支持仿真( MIL/SIL/HIL)、故障注
    的头像 发表于 01-02 13:42 1286次阅读
    通用<b class='flag-5'>自动化</b><b class='flag-5'>测试</b><b class='flag-5'>软件</b> - TAE

    嵌入式系统开发中的测试方法 嵌入式系统开发与AI结合应用

    嵌入式系统开发中的测试方法 嵌入式系统开发是一个复杂的过程,涉及到硬件和软件的紧密结合。测试是确保系统可靠性和性能的关键步骤。以下是一些常用
    的头像 发表于 12-09 10:22 2030次阅读