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

    文章

    16

    浏览量

    8188
收藏 人收藏

    评论

    相关推荐

    如何进行RF PA Ruggedness的测试评估呢?

    关于PA ruggedness设计测试问题,先介绍一下原理,如何进行ruggedness的测试评估
    的头像 发表于 03-27 10:19 260次阅读
    如何进行RF PA Ruggedness的<b class='flag-5'>测试</b>和<b class='flag-5'>评估</b>呢?

    TLT507-EVM-评估测试手册

    TLT507-EVM-评估测试手册
    的头像 发表于 01-26 09:27 285次阅读
    TLT507-EVM-<b class='flag-5'>评估</b>板<b class='flag-5'>测试</b>手册

    Tessy—嵌入式软件单元测试/集成测试工具

    搭建测试环境、执行测试评估测试结果并生成测试报告。目前Tessy被广泛应用在汽车电子客户中,在V模型开发中,Tessy主要应用在单元测试
    的头像 发表于 01-15 14:39 250次阅读
    Tessy—嵌入式软件<b class='flag-5'>单元测试</b>/<b class='flag-5'>集成</b><b class='flag-5'>测试</b>工具

    高速ADC的特征测试和生产测试方法评估笔记

    电子发烧友网站提供《高速ADC的特征测试和生产测试方法评估笔记.pdf》资料免费下载
    发表于 11-27 10:28 1次下载
    高速ADC的特征<b class='flag-5'>测试</b>和生产<b class='flag-5'>测试</b>方法<b class='flag-5'>评估</b>笔记

    了解高速DAC测试评估

    电子发烧友网站提供《了解高速DAC测试评估.pdf》资料免费下载
    发表于 11-22 15:07 0次下载
    了解高速DAC<b class='flag-5'>测试</b>和<b class='flag-5'>评估</b>

    软件单元测试真的有必要吗?(下)

    本篇将深入讨论单元测试过程中,如何在保质保量完成测试任务的同时,缩减时间成本、提高测试效率,并分享目前行业内的实践经验以及相关自动化测试工具。
    的头像 发表于 11-17 15:18 290次阅读
    软件<b class='flag-5'>单元测试</b>真的有必要吗?(下)

    关于模拟仿真测试可信度评估方法的研究(上)——评估框架

    引言 随着智能网联汽车技术及产业的快速发展,预期功能安全等新的安全风险也日益凸显,传统的测试手段已无法满足对自动驾驶功能测试与验证的需求。模拟仿真测试技术以其高效率、低成本、高安全、高
    的头像 发表于 11-16 20:10 652次阅读
    关于模拟仿真<b class='flag-5'>测试</b>可信度<b class='flag-5'>评估</b>方法的研究(上)——<b class='flag-5'>评估</b>框架

    软件单元测试真的有必要吗?(上)

    本文着重探讨单元测试的重要性及其正面临的困境,并介绍功能安全标准中罗列的单元测试方法。
    的头像 发表于 11-03 14:58 295次阅读
    软件<b class='flag-5'>单元测试</b>真的有必要吗?(上)

    如何将大模型应用到效能评估系统中去

    如何将大模型应用到效能评估系统中去 智慧华盛恒辉效能评估系统大数据的应用效能评估系统及其评估方法,以应用基础数据和应用运行数据为基础,从数据
    的头像 发表于 09-27 16:16 273次阅读

    什么是可测试性设计 可测试评估详解

    可测性设计(DFT)之可测试评估详解 可测试性设计的定性标准: 测试费用: 一测试生成时间 -
    发表于 09-01 11:19 507次阅读
    什么是可<b class='flag-5'>测试</b>性设计 可<b class='flag-5'>测试</b>性<b class='flag-5'>评估</b>详解

    如何将人工智能应用到效能评估系统软件中去解决

      如何将人工智能应用到效能评估系统软件中去解决   华盛恒辉效能评估系统是一种非常实用的管理工具,它可以帮助组织和企业掌握其运营状况,优化业务流程,提高效率和生产力。然而,随着人工智
    发表于 08-30 12:58

    如何提高嵌入式软件单元测试效率

    传统方法更快、更高效地运行单元测试。 我们在虚拟平台上运行一套单元测试,然后在物理硬件上运行。 然后我们将对结果进行分析。
    发表于 08-28 06:31

    083. 单元测试和案例:15.6 fixture

    单元测试
    充八万
    发布于 :2023年07月11日 21:31:03

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

    CoverageMaster winAMS : 适用于嵌入式目标机代码的单元测试/集成测试工具 全面支持嵌入式微机!验证嵌入式C/C++软件 实施以模块为单位的自动化单元测试工具 不需
    的头像 发表于 07-11 17:11 441次阅读
    嵌入软件<b class='flag-5'>单元测试</b>/<b class='flag-5'>集成</b><b class='flag-5'>测试</b>自动化工具

    恩智浦NXP i.MX 6ULL评估测试手册(下)

    播放器播放音频,然后进入评估板文件系统,在脚本所在目录执行如下命令进行测试。Target# ./line_in_test.sh 图 136 此时音箱或耳机可正常播放音乐,且声音质量正常,按&
    发表于 06-14 14:41