高通8155智能座舱测试方案

描述

高通8155作为智能座舱系统的高端平台,为确保其稳定性,分别从Monkey测试、AI 遍历测试、MTBF测试、CAN Trace测试、系统升级测试、功能压力测试等维度开展了为期14天30套设备的稳定性测试。

【稳定性测试组成】

博泰

 

【通过标准】

博泰

 

【自动化实验室】

 

 

 

【稳定性测试】1

Monkey测试

使用博泰测试自动化工具开展 7x24小时Monkey测试,验证座舱系统是否存在Crash、ANR、内存泄漏等异常。

 

博泰

 

自动化脚本如下 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
import subprocess"""monkey压力测试"""tcount = 1for pac in packlst:    打印内容(f'当前monkey包:{pac}')    ps = subprocess.Popen(monkey_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)    等待(8*60*60)    ps.kill()    p = Device(0)    p.发送adb命令("pkill monkey")    等待(20)
 以下视频演示了Monkey测试在音乐模块中的使用:随机点击本地收藏、我的下载、播放历史等功能。

 

 

 

2

AI 遍历测试

基于博泰自动化测试工具开展AI遍历测试,该测试支持多机协同、个性化专家系统、模型复用等核心技术,验证座舱系统是否存在Crash、ANR、空指针、内存泄露等异常。

 

博泰

 

自动化脚本如下
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
import osimport subprocess"""AI 遍历测试"""tcount = 1for pac in packlst:    打印内容(f'当前包:{pac}')    ps = subprocess.Popen(ai_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)    等待(8*60*60)    ps.kill()    p = Device(0)    p.发送adb命令("pkill uiautomator")    等待(20)

 

以下视频演示了AI遍历测试在导航应用中的使用:自动选择目的地及偏好设置并开始导航的过程

 

 

 

3

MTBF测试

通过对用户行为数据分析,获得用户常用功能及梳理车机亮点功能,形成MTBF测试场景。针对这些场景,开展测试并记录平均无故障工作时间,该时间是衡量产品可靠性的重要指标。

 

博泰

 

以下为MTBF中的导航栏模块脚本示例
  •  
  •  
  •  
  •  
  •  
  •  
p = Device(0)p.按键操作("home")p.点击控件并判断("导航")p.点击控件并判断("酷我音乐")p.点击控件并判断("空调")p.点击控件并判断("车辆")
以下视频演示了点击导航栏的过程   4

CAN Trace测试

通过长时间回放实车CAN Trace进行测试,检查座舱系统的稳定性。

 

博泰

 

以下视频展示CAN Trace回放测试 

 

 

5

系统升级测试

对系统的MPU/MCU升级开展压力测试,验证座舱系统升级的稳定性。

自动化Shell脚本如下

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
#!/system/bin/shversionA="AF.00.20220410151508.rc6.6.user.f0505h"versionB="AF.00.20220410182017.rc6.7.user.f0505h"
if [ ! -f "/data/local/mpu-version" ];then    last_mpu_version=${versionA}        current_mpu_version=${versionA}    echo $last_mpu_version > /data/local/mpu-version    touch /data/local/mpu-num    echo 1 > /data/local/mpu-numelse        last_mpu_version=`cat /data/local/mpu-version`        current_mpu_version=`getprop ro.bootimage.build.version`finummpu=$(cat /data/local/mpu-num)
if [ "$last_mpu_version" == "$current_mpu_version" ];then        echo -e "[ $(date +%H:%M:%S) ]SH:($LINENO): mpu update success"        if [ "$last_mpu_version" == "$versionA" ];then                echo --update_package=/fs/usb0/update/update-factory_$versionB.zip > /qnx/update/recovery/command || return 1                echo "$versionB" > /data/local/mpu-version || return 1                sync                let nummpu=nummpu+1                echo $nummpu > /data/local/mpu-num                sleep 1                reboot recovery        fi
        if [ "$last_mpu_version" == "$versionB" ];then                echo --update_package=/fs/usb0/update/update-factory_$versionA.zip > /qnx/update/recovery/command || return 1                echo "$versionA" > /data/local/mpu-version || return 1                sync                let nummpu=nummpu+1                echo $nummpu > /data/local/mpu-num                sleep 1                reboot recovery        fielse        echo -e "[ $(date +%H:%M:%S) ]SH:($LINENO): mpu update failure!!!"fi
 如下视频演示了MCU升级过程  

 

【功能压力测试】 1

开关机压力测试

车机开机过程中因为硬件上电时序和内存异常等原因会引起黑屏的问题,通过上下电和ACC ON/OFF压力测试,及时发现仪表黑屏、三屏全黑及开机后系统卡死等问题。

自动化脚本如下

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
def runTest(ftype=0, tcount=200):    继电器开(2)    等待(50)    teststr = '上下电' if ftype == 0 else 'ACCON-OFF'    for i in range(tcount):        继电器关(2)        waittime = 5 if ftype == 0 else 360  # 如果是acconoff场景需要等待休眠,不同项目休眠时间不同,按需修改        等待(waittime)        继电器开(2)        等待(60)         imgname = f'{teststr}{i+1}次开机{获取时间字符串()}.png'        摄像头拍照(imgname)        等待(1)        result = 黑屏和adb判断(imgname, pos=[(145, 251), (418, 237), (340, 246)], rgb=(150, 150, 150))        等待(5)if __name__ == '__main__':    runTest(0)
如下视频展示了开关机压力测试的过程     2

WiFi开关压力测试

开启关闭WiFi,判断是否能成功开启或关闭。

自动化脚本如下
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
p = Device(0)进入设置()while (获取时间戳() - time1).seconds < 12 * 60 * 60:    v_flag = 图片验证("wifi关.png", 0)    if v_flag:        p.点击控件(xpath='//*[@resource-id="com.qinggan.app.setting:id/wifi_switcherView"]/android.widget.RelativeLayout[1]/android.widget.CheckBox[1]')        等待(2)        v_flag = p.控件是否存在(resourceId="com.qinggan.app.setting:id/rl_rescan")    else:        p.点击控件(xpath='//*[@resource-id="com.qinggan.app.setting:id/wifi_switcherView"]/android.widget.RelativeLayout[1]/android.widget.CheckBox[1]')        等待(2)        v_flag = p.控件是否存在(resourceId="com.qinggan.app.setting:id/rl_rescan")     tcount += 1

 如下视频展示了WiFi开关的测试过程

 

【词条解释】

1

MTBF:平均无故障工作时间

2ACC OFF:指 ACC 硬线信号为低,CRANK 时 ACC 硬线信号也为低 3ACC ON:指 ACC 硬线信号为高 4CAN:Controller Area Network 控制器局域网络 5MCU:Microcontroller Unit 微控制单元 6MPU:Microprocessor Unit 微处理器单元

 

 

原文标题:智能座舱系统稳定性测试

文章出处:【微信公众号:PATEO博泰车联网】欢迎添加关注!文章转载请注明出处。

  审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分