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

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

3天内不再提示

用例篇 | 单元测试用例复用到集成测试?Testlet Library来助力!(上)

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

扫码添加小助手

加入工程师交流群

作者:fox

小编:吃不饱

作为一名测试工程师,在做MiL测试时,编写测试用例的效率影响整个测试项目的进度,如何有效提升编写测试用例的效率,是大家都关心的问题。
TPT作为一款自动化测试工具,提供了很多提高搭建测试用例效率的方法,比如自动生成测试用例。除此以外,TPT还提供了Testlet Library,可以复用Testlet,以及将一个工程的测试用例复用到另外一个工程。
01应用场景一单元测试的用例复用到集成测试
按照功能安全的要求,单元测试之后要进行集成测试,那单元的测试用例能够一定程度上复用到集成测试吗?在TPT中引入了Testlet Library的概念。
Testlet Library是一个TPT项目文件,它可以包含一个完整的TPT项目,或者包含或不包含sub-testlets的单个testlet。Testlet Library可以同时在多个项目中使用。简言之,Testlet Library可以引用另外一个TPT工程,或者某个testlet。
借由Testlet Library,可以将单元测试的用例复用到集成测试,减少重复搭建相同用例的时间,提高测试效率。Demo模型如下图所示,该模型有两个subsystem,已完成单元测试,将要进行集成测试。d6b4dd06-5ab5-11ed-b116-dac502259ad0.png图1 集成级模型

1)激活Testlet Libraries

在菜单栏Incubation中选择Enable Testlet Libraries,将该功能激活。d6cbb6c0-5ab5-11ed-b116-dac502259ad0.png图2 激活Test Libraries

2)状态机的搭建

集成测试工程的状态机,以单元工程的名称命名,每个单元测试的工程,都建立对应的状态机。d6f07cb2-5ab5-11ed-b116-dac502259ad0.png图3 建立对单元工程的状态机

3)设置为Library testlet

在上一步建好的状态机上右键,选择Delete Content,将其Content删除,在弹出的窗口中,选择Library,并点击Open…选择要参考的工程的路径。 d7000eca-5ab5-11ed-b116-dac502259ad0.png图4 将状态机设置为Library转换完成的状态机右下角带有蓝色小箭头表示,此时TPT会打开参考的Library工程。d70ccff2-5ab5-11ed-b116-dac502259ad0.png图5 转换完的Testlet

4)信号mapping

将信号做好mapping,把单元测试和集成测试的接口参数等互相匹配。对于Vehicle这个单元,在单元测试阶段eng_trq是Input,在集成测试时变成不可赋值的Local,需要在声明编辑器中添加一个相对的local量,以便该单元测试工程的用例可以运行。d7278266-5ab5-11ed-b116-dac502259ad0.png图6 信号mapping

5)组合测试用例

将Vehicle也按照第四步中方法建立好对应的状态机后,就可以在集成测试工程的状态机上选择单元工程的测试用例。例如,CruiseControl选择status_cc_3,Vehicle选择ramp。d73fae72-5ab5-11ed-b116-dac502259ad0.png图7 集成测试复用单元测试的测试用例
这样就可以将单元测试的测试用例复用到集成测试,大大节省重复编写相同测试用例所需的时间,大家快来试试吧!
02应用场景二高度重复的测试步骤
编写测试用例时,大家往往会遇到一些典型的场景,他们需要多步才能完成,却在多个工程中会使用,比如调度模块。
在TPT中模拟调度信号(调度周期为20ms),需要这样几步操作。d750e7c8-5ab5-11ed-b116-dac502259ad0.png图8 TPT模拟调度周期为20ms的调度信号
同一个ECU中可能包含多个调度周期为20ms的subsystem,在做单元测试时,每个测试工程都需要编辑这部分状态机,此时Testlet Library就可以大大减少这部分重复工作所需的时间。下面我来介绍TPT如何使用该功能复用测试用例。

1)搭建状态机

将调度模块的状态机搭建好,编辑好其Variants。d76464f6-5ab5-11ed-b116-dac502259ad0.png图9 搭建Library状态机

2)将状态机封装为Testlet Library

在刚刚编辑好的状态机上右键,选择convert to Testlet Library,将其转换为Testlet Library,选择保存的位置并命名,d78b2ed8-5ab5-11ed-b116-dac502259ad0.png图10 将状态机转换为Testlet Library并保存

3)在其它工程中使用Testlet Library

在另一个工程中新建空白状态机,右键,选择Delete Content,将其Content删除,在弹出的窗口中,选择Library,并选择上一步中生成的Testlet Library路径。d7941a3e-5ab5-11ed-b116-dac502259ad0.png图11 将状态机设置为Library
转换完成的状态机右下角带有蓝色小箭头表示,此时TPT会打开参考的Library工程。d7a1fd3e-5ab5-11ed-b116-dac502259ad0.png图12 转换完的Testlet在当前工程的状态机上右键,选择“Channel/Parameter Map”进行当前工程和Library的信号mapping,到此已经完成。d7b6b530-5ab5-11ed-b116-dac502259ad0.png图13 信号mapping完成之后即可在新的测试工程中完整复用该状态机及其变种,提高我们编写测试用例的效率。感兴趣的大伙快来试试吧!d7e4d050-5ab5-11ed-b116-dac502259ad0.png图14 复用Testlet Library的状态机
03总结
本文主要介绍了Testlet Library的两种应用场景:1. 单元测试的用例复用到集成测试;2. 高度重复的测试步骤。除此以外,测试评估也可以一定程度上从单元测试复用到集成测试,敬请期待下篇:评估篇!

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

    关注

    8

    文章

    6027

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

    Iverilog仿真e203_hbirdv2跑RISC-V指令测试用

    就可以通过指定文件名字跑我想跑的测试用啦,可喜可贺可喜可贺: 最后, make clean make install make compile SIM=iverilog make
    发表于 10-27 08:24

    如何让大模型生成你想要的测试用

    应用大模型生成测试用,常见的知识库,测试大模型,微调,RAG等技术门槛都不低,甚至很难,因此对于应用者而言,最快的方式就是应用好提示词,调教属于个人风格的测试用
    的头像 发表于 09-26 10:01 557次阅读
    如何让大模型生成你想要的<b class='flag-5'>测试用</b><b class='flag-5'>例</b>?

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

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

    芯片硬件测试用

    是项目开始的关键,利用白盒和黑盒覆盖,保证产品质量。根据芯片功能,目标市场,进行测试立项:依据BRD/MRD/PRD;计划:测试需求分析、人力资源时间线;测试用
    的头像 发表于 09-05 10:04 517次阅读
    芯片硬件<b class='flag-5'>测试用</b><b class='flag-5'>例</b>

    上海控安:基于模型的测试用生成

    在当今复杂多变的软件开发环境中,软件系统的规模和复杂度不断攀升,传统测试方法面临着诸多挑战。如何高效、准确地生成测试用,以确保软件系统的质量和可靠性,成为软件测试领域的关键问题之一。
    的头像 发表于 08-28 14:30 513次阅读
    上海控安:基于模型的<b class='flag-5'>测试用</b><b class='flag-5'>例</b>生成

    HarmonyOSAI编程单元测试用

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

    AI生成的测试用真的靠谱吗?

    软件测试正经历一场深刻的技术革命。AI,尤其是以GPT、通义千问、文心一言、Claude等为代表的大语言模型(LLM),开始广泛介入测试流程:从需求分析、测试用设计,到脚本生成与
    的头像 发表于 08-01 10:02 1393次阅读
    AI生成的<b class='flag-5'>测试用</b><b class='flag-5'>例</b>真的靠谱吗?

    HarmonyOS AI辅助编程工具(CodeGenie)代码测试

    放置于方法名称或框选完整的待测试方法代码块,右键选择CodeGenie > Generate UT,开始生成单元测试用。 说明 最多支持解读20000字符以内的代码片段。Ar
    发表于 07-14 17:33

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

    的系统工程(MBSE)通过SysML模型自动生成测试用。例如,Polarsys Capella工具可将系统架构图中的状态机直接转换为单元测试脚本,减少人工编写
    发表于 05-12 15:59

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

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

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

    1. 单元测试概述 ‌定义与核心目标‌ 单元测试是软件开发过程中针对程序模块(如函数、类或组件)的最小可测试单元进行的验证活动。其核心目标在于隔离代码片段,验证其功能是否符合设计预期,
    的头像 发表于 04-11 14:31 753次阅读

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

    一、为什么嵌入式软件必须重视单元测试? ‌嵌入式系统的特殊性‌ 在汽车 ECU、医疗设备控制器等场景中,软件直接操控硬件,‌单比特错误可能导致刹车失灵或呼吸机故障‌。不同于 PC 软件可频繁热更新
    的头像 发表于 03-21 14:53 949次阅读

    是德科技携手Alea成功验证3GPP EUTRA任务关键型测试用

    是德科技与 Alea S.r.l 近日在全球认证论坛(GCF)一致性协议组(CAG)会议,成功率先完成对基于 3GPP 演进通用陆地无线接入(EUTRA)模型的关键任务一键通(MCPTT)测试用的验证。该验证采用是德科技 S
    的头像 发表于 02-26 16:18 1207次阅读