下面结合对一个被测系统的一个功能的测试来逐步介绍如何使用UTP系统进行嵌入式测试。
如下图,被测系统在收到外部模块通过CAN接口发来的启动请求报文,并且输入的Enable信号为高电平时,采样当前温度,如果温度在正常范围内(低于80摄氏度), 则启动运行,并在500毫秒内输出PWM控制信号(频率为2kHZ),同时通过TCP发出数据到服务器。
使用UTP系统可以方便地搭建该被测系统的自动化测试环境,在这个自动化测试环境中,选配了CAN通信测试、IO信号测试、模拟信号测试、PWM信号测试、网络通信测试功能,具体请参考下面链接来搭建环境搭建
使用UTP为该被测系统搭建的自动化测试环境如下:
点击下面按钮导入示例项目
进入项目
进入项目工作空间,如下
在“测试用例管理”页面内的“测试机器人管理”页面中,可以查看示例项目中配置的测试机器人
示例项目中共配置了5个测试机器人,分别是"CAN通信测试机器人"、 "DIO信号输出测试机器人"、"模拟信号输出测试机器人"、"PWM信号检测机器人"、"TCP测试机器人",分别对应被测系统的各个输入输出接口,如下图。
下面通过几个渐进的示例来介绍如何使用UTP系统对各种时序逻辑进行自动化测试
示例1-向被测设备输入数据和信号
该示例演示了如何按指定的时序向被测系统输入信息。 此示例中使用了“CAN通信测试机器人”、“模拟信号输出测试机器人”和“DIO信号输出测试机器人” 分别经由CAN接口、AD接口和GPIO接口向被测系统输入了CAN消息(数据帧)、温度采样数据和ENABEL信号。其中经AD接口输入到被测系统的温度是电压信号
(1)双击测试用例“示例1-向被测设备输入数据和信号”可以进入测试用例的详细信息页面
(2)点击“编辑用例”,可以编辑测试用例的时序,插入和编辑命令,输入命令参数,下图是示例测试用例的内容
(3)点击“测试步骤”,可以查看自动产生的测试步骤,测试步骤体现出测试的时序
(4)点击“返回用例管理页面”返回
示例2-向被测系统输入后检查被测系统的输出
该示例在示例1的基础上进一步演示了如何检查被测系统输出的信息。 此示例中使用了“PWM信号检测机器人”和“TCP通信测试机器人” 分别检测被测系统输出的PWM信号频率和TCP报文数据字段。
(1)下图是示例测试用例的内容
(2)下图是示例测试用例的步骤
示例3-自定义温度信号转换公式输入温度
该示例在示例2的基础上进一步演示了在测试用例中直接编写温度值向被测系统输入温度信号。 此示例中使用了一个将温度值转换成电压值的一个公共逻辑块(以下简称"子脚本")“输入温度”, 用户只需填写温度值作为参数即可。
(1)下图是示例测试用例的内容
(2)下图是示例测试用例的步骤
(3)UTP系统支持自定义子脚本,用户可以将一些通用的功能封装在自定义的子脚本中, 下面的“输入温度”子脚本, 关于如何创建子脚本介绍请参考子脚本介绍(用例管理->子脚本)
示例4(异常测试1)--缺少CAN数据帧
该示例在示例3的基础上进一步演示了如何进行异常测试时序。 此示例中故意不通过CAN接口向被测系统发送启动请求报文,只向被测系统输入温度信号和ENABLE信号, 检测被测系统输出的PWM信号频率(应该为0)和TCP报文数据字段(状态位应为"00")。
下图是示例测试用例的内容
示例5(异常测试2)--缺少ENABLE信号
该示例进一步演示了如何进行异常测试时序。 此示例中故意不向被测系统发送ENABLE,只向被测系统输入CAN启动消息和温度, 检测被测系统输出的PWM信号频率(应该为0)和TCP报文数据字段(状态位应为"00")。
下图是示例测试用例的内容
示例6(异常测试3)--注入的温度超出范围
该示例进一步演示了如何进行异常测试时序。 此示例中被测系统输入CAN温度超出限制范围(80摄氏度), 检测被测系统输出的PWM信号频率(应该为0)和TCP报文数据字段(状态位应为"00")。
下图是示例测试用例的内容