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

news2024/11/22 16:26:56

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

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

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

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

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

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

图1 集成级模型

1.声明评估变量

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

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

2.复现计算逻辑

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

在这里插入图片描述

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

3.评估

使用一个CruiseControl_output的评估变量,将TPT计算出的Cruise Control单元的理论输出值赋值给CruiseControl_output。
在这里插入图片描述

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

4.对输出进行验证

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

图5评估输出

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

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

1)将两个单元的脚本评估复制到集成测试的工程中。
在这里插入图片描述

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

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

在这里插入图片描述

图7 注释CruiseControl中的相关语句

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

图8传递参数

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

在这里插入图片描述

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

应用场景二 自定义脚本库

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

1.编写自定义函数

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

在这里插入图片描述

图10 编写好自定义函数

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

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

在这里插入图片描述

图11 保存自定义函数文件

3.在TPT中加载函数库

1)在Preference/General/Assessment Library中添加自定义函数文件的路径。
在这里插入图片描述

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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

4)使用示例。

在这里插入图片描述

图15 使用示例及结果

总结

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


喜欢本篇文章的话记得💬评论💖点赞⭐收藏
➕更多技术文章直播课程,敬请持续关注北汇信息➕
⬇️业务咨询请私信北汇信息或在官网留言⬇️
📩📩📩

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/101729.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

@EnableCaching如何一键开启缓存

EnableCaching如何一键开启缓存手动挡CacheManagerCache使用演示小结自动挡CachingConfigurationSelectorAutoProxyRegistrarProxyCachingConfigurationCacheOperationSourceCacheOperationBeanFactoryCacheOperationSourceAdvisorCacheInterceptor小结手动挡 我们首先来看看S…

成本、利润分析法在企业管理中的应用

1 、成本、利润分析法的主要内容 成本、利润分析法主要是指,利用数学模型,对关于企业成本、利润的要素分析,然后计算出要素的改变对企业成本、利润的影响,进而对企业决策提出建议的一种方法。在成本、利润分析法中,最主…

基础IO——文件描述符

文章目录1. 文件描述符fd1.1 open返回值2. 理解Linux下一切皆文件3. 文件描述符的分配规则4. 重定向的本质4.1 使用 dup2 系统调用4.2 追加重定向4.3 输入重定向1. 文件描述符fd 1.1 open返回值 我们先来看下面的例子: 运行结果如下: 我们知道open的…

磺基-CY5 马来酰亚胺 Cyanine5 Maleimide

磺基-CY5 马来酰亚胺 Cyanine5 Maleimide Cyanine5 maleimide是单一活性染料,有选择性的与硫醇基团(比如蛋白和多肽的半胱氨酸)结合以进行标记。我们使用水溶的Sulfo-Cyanine5 maleimide标记抗体和其他敏感蛋白。Cyanine5是Cy5的类似物&am…

Pb协议的接口测试

Protocol Buffers 是谷歌开源的序列化与反序列化框架。它与语言无关、平台无关、具有可扩展的机制。用于序列化结构化数据,此工具对标 XML ,支持自动编码,解码。比 XML 性能好,且数据易于解析。更多有关工具的介绍可参考官网。 P…

Java8新特性学习

文章目录Lambda表达式为什么使用Lambda表达式Lambda表达式语法语法格式一:无参数,无返回值语法格式二:有一个参数,并且无返回值语法格式三:若只有一个参数,小括号可以省略不写语法格式四:有两个…

Docker容器数据卷

是什么 卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性:卷的设计目的就是数据的持久化,完全独立…

LSTM(Long Short-Term Memory)

长短期记忆(long short-term memory,LSTM),LSTM 中引入了3个门,即输入门(input gate)、遗忘门(forget gate)和输出门(output gate),以…

华为时习知,让企业培训更简单!

在数字经济的发展过程中,人才始终是不容忽视的关键因素,企业对数字化人才培养的需求也愈加迫切。然而企业培训说起来简单,要做好却绝非易事。企业可能会面临员工分散各地、流动性大、关键岗位人才培训等复杂培训场景问题,无法高效…

为什么我们说NFT拥有无限潜力?

欢迎来到Hubbleverse 🌍 关注我们 关注宇宙新鲜事 📌 预计阅读时长:8分钟 本文仅代表作者个人观点,不代表平台意见,不构成投资建议。 2021年底,NFT就已经发展得炙手可热了,热门到410亿美元投…

YOLO-V5 算法和代码解析系列(一)—— 快速开始

文章目录运行环境配置Demo重新训练 YOLO-V5s运行环境配置 环境配置的官方教程如下,如果一些库安装失败,导致安装中断,可以单独安装一些库,比如 Pytorch,然后再执行下列安装步骤,具体如下: 个人建…

国内食糖行业数据浅析

大家好,这里是小安说网控。 食糖行业是国民消费不可或缺的产业之一。2022年9月份国内成品糖产量当期值为40.4万吨,同比增长30.7%;10月份当期值为63.7万吨,同比下滑2%。今年1-10月份,国内成品糖产量累计值为1089.4万吨&…

艾美捷细胞糖酵解分析试剂盒基本参数和相关研究

艾美捷基于糖酵解细胞的测定试剂盒提供了一种比色法,用于检测培养细胞产生和分泌的糖酵解最终产物L-乳酸。在该测定中,乳酸脱氢酶催化NAD和乳酸之间的反应,产生丙酮酸和NADH。NADH直接将四氮唑盐(INT)还原为吸收490至5…

【High 翻天】Higer-order Networks with Battiston Federico (3)

目录模型(1)Equilibrium modelsBipartite modelsMotifs modelsStochastic set modelsHypergraphs modelsSimplicial complexes models模型的目的是再现、解释和预测系统的结构,最好用涉及系统两个或多个元素的交互来描述。为了考虑其输出的可…

【1971. 寻找图中是否存在路径】

来源:力扣(LeetCode) 描述: 有一个具有 n 个顶点的 双向 图,其中每个顶点标记从 0 到 n - 1(包含 0 和 n - 1)。图中的边用一个二维整数数组 edges 表示,其中 edges[i] [ui, vi] …

计算机毕设Python+Vue学衡国学堂围棋社管理系统(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

nvidia 使用

watch -n 0.5 nvidia-smi ./build/examples/openpose/openpose.bin --video examples/media/video.avi Linux CPU&GPU烤机(压力测试) 盛夏捷关注IP属地: 青海 0.1342021.04.14 09:50:16字数 152阅读 6,307 GPU-burn工具进行GPU烤机 下载Multi-G…

基于MATLAB的车牌识别系统设计(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

vue之非父子组件通信实现方式

在开发中,我们构建了组件树之后,除了父子组件之间的通信之外,还会有非父子组件之间的通信。这里主要讲两种方式: Provide/InjectMitt全局事件总线 1、Provide和Inject 应用场景 比如有一些深度嵌套的组件,子组件想要…

SVG 在前端的7种使用方法,你还知道哪几种?

本文简介 点赞 关注 收藏 学会了 技术一直在演变,在网页中使用 SVG 的方法也层出不穷。每个时期都有对应的最优解。 所以我打算把我知道的 7种 SVG 的使用方法列举出来,有备无患~ 如果你还知道其他方法,可以在评论区补充~ 1. 在浏览器直…