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

    文章

    4666

    浏览量

    125467
收藏 人收藏

    评论

    相关推荐

    嵌入软件单元测试工具的作用

    嵌入软件单元测试工具是现代软件开发过程中不可或缺的一环。它的作用在于帮助开发人员对软件中的各个单元进行测试,以确保其功能的正确性和稳定性。单元测试是软件开发过程中的一种
    的头像 发表于 04-23 15:31 179次阅读
    嵌入软件<b class='flag-5'>单元测试</b>工具的作用

    单元/集成测试服务

    单元/集成测试旨在证明被测软件实现其单元/架构设计规范、证明被测软件不包含非预期功能。经纬恒润测试团队拥有丰富的研发经验、严格的流程管控,依
    的头像 发表于 02-29 13:27 182次阅读
    <b class='flag-5'>单元</b>/<b class='flag-5'>集成</b><b class='flag-5'>测试</b>服务

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

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

    HamronyOS自动化测试框架使用指南

    了最基本的识别、调度、执行及结果汇总的能力。主要功能如下图所示: 单元测试脚本的基础运行流程如下图所示,依赖 aa test 命令作为执行入口,该命令可具体参考。 ● UI 测试
    发表于 12-19 10:26

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

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

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

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

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

    在本指南中,您将学习如何通过在更短的时间内运行更多的测试增加您的单元测试吞吐量。 这种效率的提高来自于使用虚拟平台而不是物理硬件作为开发平台。 本指南对任何开发或运行嵌入式软件单元测试
    发表于 08-28 06:31

    修改自测试用run_test遇到的问题求解

    我修改了add.S文件,想让make run_test SIM=iverilog后出现file.可是编译不了,add.S文件也没显示更新。 可是我在测试测试用的时候,make compile
    发表于 08-12 06:50

    如何利用Simulink Test工具箱对模型进行单元测试

    创建完模型后,我们需要验证模型的行为,即仿真结果,是否跟我们预期的一致,这样才能保证由模型生成的代码在嵌入式系统中执行得到结果跟我们预期的一致。单元测试主要是以模型或者模型内的子系统为单位进行测试
    的头像 发表于 07-22 10:25 3409次阅读
    如何利用Simulink Test工具箱对模型进行<b class='flag-5'>单元测试</b>?

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

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

    081. 单元测试和案例:15.4 断言 #硬声创作季

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

    080. 单元测试和案例:15.3 unite discover #硬声创作季

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

    079. 单元测试和案例:15.2 unittest suite #硬声创作季

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

    078. 单元测试和案例:15.1 unite testcase #硬声创作季

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

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

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