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

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

3天内不再提示

评估篇 | 单元测试评估也能复用到集成测试?脚本帮你高效评估!

北汇信息POLELINK 2022-12-09 11:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群


作者:fox

小编:吃不饱


上次我们分享了单元测试用例的复用,单元测试的用例可以复用到集成测试,那单元测试的评估是否也可以复用到集成测试?答案是可以的。


TPT中提供了多种多样的评估方式,其中的脚本评估使我们复用测试评估成为可能。脚本评估,使用的是基于Python的类Python语言,能够实现筛选评估区间,评估输出,报告定制化等功能,是一种非常灵活,使用起来十分方便的评估方式。

通过脚本评估,在某些模型测试中,我们可以将单元测试的评估,也复用到集成测试中。


01

应用场景一:单元测试的测试评估复用到集成测试


针对上次用例篇中的demo模型,我们可以在单元测试时就使用脚本评估来评估整个模型,这里以Cruise Control介绍使用脚本评估来评估计算模块的方法。


一般情况下,对于计算模块我们使用定值来测试评估,为了保证测试的充分性,需要若干组数据,这会导致我们需要多次重复计算过程来得到预期的输出,以完成评估。这是我们在测试计算模块时的痛点,有没有可能通过一些方法来自动化这部分重复的过程?答案是有的!通过脚本评估,我们可以将需求中的计算逻辑复现,以此来实现计算模块的自动化评估。

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

9ef6ef9e-7743-11ed-b116-dac502259ad0.png

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

图1 集成级模型


1.声明评估变量

在脚本评估中声明需要的评估变量,将部分中间计算量赋值给这些评估变量,以方便在后续计算中使用。

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

9f1c5900-7743-11ed-b116-dac502259ad0.png

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

图2 在脚本评估中声明评估变量


2.复现计算逻辑

TPT的脚本评估中内置了很多计算函数,也支持Python基本库中的数学函数,方便我们去复现整个计算逻辑。通过模型中的计算逻辑,使用脚本复现其计算过程。这里以其中一部分逻辑举例介绍,

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

9f4d1bda-7743-11ed-b116-dac502259ad0.png

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

图3 模型计算逻辑及TPT中复现的逻辑


3.评估

使用一个CruiseControl_output的评估变量,将TPT计算出的Cruise Control单元的理论输出值赋值给CruiseControl_output。

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

9f7a8cfa-7743-11ed-b116-dac502259ad0.png

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

图4 模型理论输出值赋值给CruiseControl_output


4.对输出进行验证

在最后使用TPT.assertAlways和TPT.hose两个函数的组合来实现验证模型实际输出是否和理论输出值相等,这样就能检查模型实际输出和需求是否一致,并且能够评估输入的所有组合。两个函数中前者检查表达式的返回值是否为真,后者检查目标信号和参考信号的值是否一致,若一致则返回值为0。所以使用TPT.assertAlways检查TPT.hose的返回值等于0,即可证明模型输出值和理论输出值相等。

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

9fb59430-7743-11ed-b116-dac502259ad0.png

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

图5评估输出


5.将单元测试的评估复用到集成测试

应用上面的方法,将Vehicle这个单元也使用脚本进行评估。这样在进行集成测试时,单元测试阶段的eng_torque将变成Local量。可以将CruiseControl的脚本评估和Vehicle的脚本评估使用这样的语句进行拼接,即可将单元测试的测试评估,复用集成测试。

1)将两个单元的脚本评估复制到集成测试的工程中。

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

9fdd0196-7743-11ed-b116-dac502259ad0.png

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

图6 将单元测试的脚本评估赋值到集成测试的工程


2)将CruiseControl脚本中的评估输出eng_torque的语句注释掉,因为此时该信号变成了Local。

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

a014d300-7743-11ed-b116-dac502259ad0.png

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

图7 注释CruiseControl中的相关语句


3)对于Vehicle单元,输入信号eng_trq变成Local量,是由Cruise Control单元计算得到的。所以在Vehicle的脚本中,将CruiseControl脚本中计算出的eng_torque的值赋值给eng_trq,即可将两部分脚本评估拼接,完成评估的复用。

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

a0426e64-7743-11ed-b116-dac502259ad0.png

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

图8传递参数


4)运行测试用例得到测试结果。从下图中可以看到用例时间为10s,评估区间也是10s且测试通过。

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

a0689670-7743-11ed-b116-dac502259ad0.png

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

图9 集成测试用例的测试结果



02

应用场景二 自定义脚本库


TPT的脚本评估不仅提供了非常多方便我们评估的内置函数,还支持自定义函数库,方便我们自已定义一些个性化的评估函数。这里以饱和模块为例,简述TPT是如何自定义函数库的。


1.编写自定义函数

首先在一个新建的脚本评估中编写我们要定义的函数(主要是方便控制缩进),TPT脚本评估的语法和Python大体类似。

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

a0950b4c-7743-11ed-b116-dac502259ad0.png

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

图10 编写好自定义函数


2.保存文件并修改文件格式

新建txt文本,将编写好的自定义函数复制到该文件中保存,将文件后缀名修改为.tptpy。

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

a0cea672-7743-11ed-b116-dac502259ad0.png

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

图11 保存自定义函数文件


3.在TPT中加载函数库

1)在Preference/General/Assessment Library中添加自定义函数文件的路径。

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

a0fbd958-7743-11ed-b116-dac502259ad0.png

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

图12在Preference/General/Assessment Library添加自定义函数路径


2)在工程的Assessment Library中激活函数库。这样就可以在工程中使用我们刚刚编辑好的函数库中的函数了。

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

a12e4564-7743-11ed-b116-dac502259ad0.png

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

图13 在工程Assessment Library中激活函数库


3)在脚本评估中使用“自定义函数的文件名+.+函数名称”的语法即可调用刚刚自定义好的函数。

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

a1660436-7743-11ed-b116-dac502259ad0.png

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

图14 在脚本评估中是自定义函数


4)使用示例。

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

a18e3bd6-7743-11ed-b116-dac502259ad0.png

9ee95f8c-7743-11ed-b116-dac502259ad0.gif

图15 使用示例及结果

03

总结


本文主要介绍了测试评估从单元测试复用到集成测试和自定义脚本库,这两者同样能帮助我们提升测试时的效率。通过用例复用和评估复用不难发现,TPT在做模型测试时具备巨大的优势,可以通过多种方式提高测试的速度和效率,减少重复的工作。并且TPT支持测试的多个阶段——MiL,SiL,PiL等,能够将同一工程复用到不同的测试阶段,这同样也能提高我们测试的效率!感兴趣的小伙伴快动起来吧!

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

    关注

    0

    文章

    27

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    TPS40071 Buck Controller评估模块:高效同步降压转换器的设计与测试

    TPS40071 Buck Controller评估模块:高效同步降压转换器的设计与测试 在电子设计领域,高效的电源转换一直是工程师们追求的目标。德州仪器(Texas Instrume
    的头像 发表于 04-23 16:25 33次阅读

    ISL97519AIUZEVALZ评估板:高效升压调节器评估利器

    ISL97519AIUZEVALZ评估板:高效升压调节器评估利器 在电子设计领域,评估板是工程师们验证和测试芯片性能的重要工具。今天,我们就
    的头像 发表于 04-13 13:40 116次阅读

    ISL97516IUZEVALZ评估板:高效升压调节器评估利器

    ISL97516IUZEVALZ评估板:高效升压调节器评估利器 在电子工程师的日常工作中,评估测试各种电子元件是不可或缺的环节。今天,我们
    的头像 发表于 04-13 13:40 84次阅读

    ISL9105EVAL1Z评估板:高效降压调节器评估利器

    ISL9105EVAL1Z评估板:高效降压调节器评估利器 在电子设计领域,对于电源管理芯片的评估测试是确保产品性能稳定的关键环节。今天,我
    的头像 发表于 04-13 12:40 192次阅读

    ISL9104/ISL9104A评估板:高效降压调节器的测试利器

    ISL9104/ISL9104A评估板:高效降压调节器的测试利器 在电子设计领域,对于电源管理芯片的测试评估是确保产品性能的关键环节。今天
    的头像 发表于 04-13 12:40 246次阅读

    MAX17065评估套件:高效OLED驱动评估的理想之选

    MAX17065评估套件是一块经过全面组装和测试的表面贴装印刷电路板(PCB),专门用于评估高效的MAX17065有机发光二极管(
    的头像 发表于 04-02 15:45 124次阅读

    MAX15118评估套件:高效18A降压调节器评估利器

    MAX15118评估套件:高效18A降压调节器评估利器 在电子设计领域,对于高效电源管理芯片的测试评估
    的头像 发表于 04-02 14:30 156次阅读

    ADP5135CP - EVALZ评估板使用指南:开启微电源管理单元评估之旅

    ADP5135CP - EVALZ评估板使用指南:开启微电源管理单元评估之旅 在电子设计领域,微电源管理单元(Micro PMU)的性能评估
    的头像 发表于 03-31 11:45 173次阅读

    探索ADP5133评估板:功能、使用与性能测试

    探索ADP5133评估板:功能、使用与性能测试 在电子设计领域,电源管理单元(PMU)的性能对整个系统的稳定性和效率起着关键作用。ADP5133作为一款备受关注的微PMU,其评估板EV
    的头像 发表于 03-31 11:30 167次阅读

    C语言单元测试在嵌入式软件开发中的作用及专业工具的应用

    ,提高整体系统的稳定性和可靠性 嵌入式C语言单元测试面临的特殊挑战包括: 硬件依赖性强,测试环境搭建复杂 实时性要求高,测试不能影响系统性能 资源受限,测试代码需要
    发表于 12-18 11:46

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

    引言 嵌入软件单元测试是确保嵌入式系统质量和可靠性的关键环节。嵌入式系统广泛应用于汽车电子、工业控制、医疗设备等关键领域,其软件直接操控硬件,任何微小的错误都可能导致严重后果。单元测试
    的头像 发表于 12-01 14:31 852次阅读

    【道生物联TKB-623评估板试用】+ 初步认识道生物联TKB-623评估

    串接电流表测试芯片功耗 配合工具,实现示例代码功能的编译下载和调试 产品框图 产品参数 道生物联TKB-623评估板总体来说值得购买和去测试,道生物联TKB-623评估板应用范围非
    发表于 11-07 22:51

    【道生物联TKB-623评估板试用】TKB-623评估板双机通讯测试_程序开发

    TKB-623评估板的基础使用,非常的简单,直接用Type-C连接到电脑,就会自动有串口生成,可以用来和开发板通信。 另外,TKB-623评估板上的RX、TX引脚,可以用USB2TTL连接到电脑来
    发表于 10-18 23:54

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

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

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

    时间从10ms逐渐增至50ms,TAF在单元测试阶段即捕捉到该趋势。 ‌第三部分:单元测试工具链选型与winAMS的核心价值****‌ ‌工具选型评估体系‌ 车企需从以下维度评估
    发表于 05-12 15:59