zl程序教程

您现在的位置是:首页 >  其他

当前栏目

基于TPT实现自动化场景测试

测试自动化 实现 基于 场景
2023-09-14 09:11:05 时间

随着汽车行业的蓬勃发展,与之相关的自动驾驶功能越来越受到人们的关注。自动驾驶给人们带来方便的同时,也带来了某些安全隐患。为了最大程度的确保安全,除了要进行功能逻辑测试外,也需要进行功能场景测试(比如鬼探头、多岔路上坡等场景)。

目前主流的场景测试工具有Carmaker、VTD、DYNA4、CarSim和PreScan。为了使场景测试的测试用例可读性更强,对复杂功能的评估更高效,北汇信息提出基于TPT的测试解决方案。接下来,以TPT+Carmaker为例,介绍如何实现自动化的场景测试。

TPT和场景仿真软件集成

TPT提供以上场景测试工具的集成平台和接口。TPT中的FUSION平台存在CarMaker FMU Node、VTD Client Node、FMI Fusion Node和Custom Node Dll,能够实现与场景测试软件的集成,感兴趣的小伙伴可以查看北汇前期文章《震惊!虚拟场景仿真测试还能这么玩》。

下面,我们以Carmaker FMU Node为例,介绍配置过程。

在TPT中新建Carmaker platform,配置如下:加载Carmaker工程和Test run,导入信号即可完成配置,非常简单。

在这里插入图片描述

图 1 TPT中Carmaker平台配置

场景测试用例编写

TPT中支持测试步骤列表和状态机测试用例,测试步骤列表简单快捷,状态机图形化便于理解。

例如AEB(自动紧急刹车)功能,测试场景为主车逐渐靠近目标,当距离小于阈值时,刹车确保安全。

在这里插入图片描述

图 2 AEB功能场景

根据如上场景,搭建状态机测试用例。根据状态机及转移线显示的内容,能够很快了解到测试场景内容,例如:整车上电,开启AEB功能,油门为30,整车加速至50km/h,持续15s。

在这里插入图片描述

图 3 TPT场景测试用例

另外,通过改变状态机变种或跳转条件,可以很方便的实现其他测试场景。

在这里插入图片描述

图 4 变换场景

测试评估多样化编写

TPT支持在测试用例中编写评估,也有独立于测试用例的GUI和脚本评估。

自动驾驶逻辑往往非常复杂,评估需要多个条件,TPT评估语法为Python语法,方便快捷,另外,TPT内置了很多函数,例如:上升沿、下降沿、积分、微分等等,编写评估时直接使用即可。

例如当前测试场景,当主车与目标距离小于10m时,刹车应>=0.7,降低车速,避免与目标碰撞。GUI和脚本评估会自动寻找满足condition的区间开启评估,并判断是否满足期望结果。

如下为Trigger Rule评估的Trigger Condition形式,当满足Start Condition条件时,开启评估并检查是否符合期望,满足Stop Condition条件时,关闭评估。

Tips:TPT.risingEdge()用法为,当()里的条件由不满足到满足时触发,由于主车与目标距离逐渐降低,则应为:TPT.risingEdge(Sensor::Object::Camera::relvTgt::NearPnt::ds_p<10)。同理,如果为TPT.fallingEdge(),则条件为Sensor::Object::Camera::relvTgt::NearPnt::ds_p>10。

在这里插入图片描述

图 5 评估语法

上述评估也可以基于Script评估实现,示例如下:

在这里插入图片描述

图 6 脚本评估

我们也可以将脚本评估作为库,方便其他同事使用。

测试运行

可以在TPT当中新建TestSet,对测试用例进行分组,运行指定的测试集。当然了,最方便的方法是直接选中想要执行的测试用例,直接运行。

在这里插入图片描述

图 7 TestSet设置

测试用例执行完成后可以在Build Progress中查看结果,在Signals中查看测试数据,在Overview Report中查看测试报告。

在这里插入图片描述

图 8 测试用例执行

在这里插入图片描述

图 9 测试数据

在这里插入图片描述

图 10 部分测试报告

说了那么多,来看一下TPT是如何执行场景测试的吧。

基于TPT的CarMaker自动化场景测试

TPT的功能不仅限于上述内容,TPT可以通过集成不同平台实现所有的产品研发阶段测试(MiL、SiL、PiL、HiL、ViL),更多精彩等您来探索。


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