一种嵌入式软件在线测试系统的制作方法

文档序号:6603428阅读:183来源:国知局
专利名称:一种嵌入式软件在线测试系统的制作方法
技术领域
本发明涉及一种软件测试系统,特别地涉及一种嵌入式软件在线测试系统,属于 测试系统技术领域。
背景技术
在现有技术中,有关嵌入式软件的调试通常采用如下三种方式(1)指令集模拟 器。使用指令集模拟器在PC机上完成调试工作,但其仅能进行用作前期粗略估计的部分、 简单的调试;(2)驻留监控软件。其运行在目标板上,例如是烧入flash的一小段程序,可 通过串口、并口、以太网口等端口进行调试,其不需要任何其他的硬件调试和仿真设备,成 本也很低廉;(3)仿真器。目前最常用的仿真器是JTAG仿真器,它属于完全非插入式调试, 无需占用目标存储器,不占用目标系统的任何端口。嵌入式软件也可以通过烧写器烧入目标板,直接在目标板上运行调试。通常嵌入式系统对可靠性的要求比较高。因为一旦嵌入式系统的安全性失效会导 致严重的后果,即使是非安全性系统,由于大批量生产也会导致严重的经济损失,这就要求 对嵌入式系统,包括嵌入式软件进行严格的测试、确认和验证。随着越来越多的领域使用微 处理器和软件控制各种嵌入式设备,对越来越复杂的嵌入式软件进行快速有效的测试变得 越来越重要。为了保证嵌入式软件的高可靠性,嵌入式软件比如嵌入式操作系统需要一个很大 的测试案例库进行完整和深度的测试。如果通过烧写器烧入目标板,对于一个具有上百甚 至上千测试案例的系统,就需要进行上百或上千次的烧入。而且测试只能串行进行。使用 指令集模拟器或者JTAG仿真器同样只能处理单个的测试案例。因此,能否设计一种功能强大、测试案例丰富、测试效率高且完整深入的嵌入式软 件在线测试系统,使其能够解决现有技术中嵌入式软件测试单点串行进行的问题,成为本 领域技术人员函待解决的技术难题。

发明内容
本发明旨在提供一种新型的嵌入式软件在线测试系统,其能够解决现有技术中嵌 入式软件测试单点串行进行的问题,测试案例丰富,测试效率高且完整深入,功能强大,自 动化程度高,为嵌入式软件的测试带来极大便利。为了解决上述问题,本发明公开了一种嵌入式软件在线测试系统,其包括由一分 布式测试网络组成的硬件部分,该分布式测试网络包括一上位机、一 USB转CAN接口适配 器,至少一目标板、以及CAN总线;其中,所述上位机使用通用串行总线连接至所述USB转 CAN接口适配器,所述USB转CAN接口适配器连接至所述CAN总线,所述目标板具有CAN控 制器,并连接至所述CAN总线4。优选地,该系统还包括由控制软件、监控软件和测试软件组成的软件部分;其中, 所述控制软件在所述上位机上运行,所述监控软件和测试软件设置在所述目标板中。
4
优选地,所述上位机为PC机。
优选地,所述目标板上具有MCU。优选地,所述微处理器为飞思卡尔MC9S12DP256 MCU。优选地,驻留所述目标板中的监控软件和测试软件共用目标板上MCU的中断向 量;为了避免中断向量表被对方覆盖,其采取如下的方法监控软件和测试软件案例的中 断向量表保存一份拷贝到RAM上;监控软件把测试软件写入flash时,当地址标签位于MCU 中断向量区域时不执行写入操作而是保存数据至RAM上;监控软件控制目标板跳转执行测 试软件案例时,先从RAM拷贝测试软件案例的中断向量表并写入MCU的中断向量,再执行跳 转;测试软件案例停止运行并控制目标板跳转执行监控软件时,先从RAM拷贝监控软件的 中断向量表并写入MCU的中断向量,再执行跳转。优选地,控制软件具有分发测试案例库至所述目标板、以及收集和分析测试数据 的功能;所述监控软件是烧入所述目标板的flash中的一段程序,包括控制模块、flash驱 动模块、CAN驱动模块。优选地,所述上位机和目标板之间使用一种基于CAN2. Ob规范的通信协议CAN-PT 通信;其具有两种通信方式,一种是广播通信,一种是点对点通信。优选地,所述CAN-PT中具有数据域,其中包含地址标签和测试软件案例二进制数 据。优选地,所述CAN-PT具有T_QUE广播帧、T_ACK1应答帧、T_DAT数据帧、T_ACK2应 答帧;所述T_QUE广播帧的内容是查询哪些目标板处于空闲状态;所述T_ACK1应答帧是点 对点帧,内容为目标板的状态以及目标板的标识符;所述T_DAT数据帧为点对点帧,内容为 测试软件案例二进制数据、地址标签以及该数据帧在所有要发送数据帧序列中的序号;所 述!~_40(2应答帧为点对点帧,内容为确认已收到某一序号&T_DAT数据帧并可接收下一序 号的T_DAT数据帧。本发明还公开了一种利用上述嵌入式软件测试系统进行软件测试的方法,其特征 在于,包括以下步骤1)上位机控制软件向CAN网络发送CAN-PT T_QUE广播帧;T_QUE广播帧的内容是 查询哪些目标板处于空闲状态;2)目标板发送CAN-PT T_ACK1应答帧至上位机;T_ACK1应答帧为点对点帧,帧的 内容为本目标板的状态以及本目标板的标识符;3)上位机向上述目标板发送CAN-PT T_DAT数据帧;T_DAT数据帧为点对点帧,帧 的内容为测试软件案例二进制数据、地址标签以及该数据帧在所有要发送数据帧序列中的 序号;驻留目标板的监控软件把二进制数据写入flash,同时向上位机发送CAN-PT T_ACK2 应答帧,T_ACK2应答帧的内容为确认已收到某一序号的T_DAT数据帧并可接收下一序号的 T.DAT数据帧,上位机和上述目标板重复步骤3,直到该测试软件案例发送完毕;4)测试软件案例下载完毕后,驻留目标板的监控软件控制目标板跳转执行测试软 件案例;5)测试软件案例在目标板运行并发送测试数据至上位机;6)测试软件案例停止运行并控制目标板跳转执行监控软件,步骤2-6构成目标板 的一个生命周期;
7)上位机重复步骤1-2,直到所有测试案例分发完毕;8)上位机利用测试软件案例发送的测试数据对测试软件进行功能性、安全性分 析。相对于现有技术而言,本发明具有以下优点1.本发明提出的测试系统,上位机分发测试软件案例至目标板,利用驻留目标板 的监控软件把测试软件写入flash,测试过程是自动化的,减少了人工操作,提高测试效 率;2.本发明提出的测试系统,使用分布式测试网络,把测试案例分配给若干个目标 板,这种分布式的计算方式,提高了测试效率。


图1 本发明的嵌入式软件测试系统的硬件结构示意图;图2 本发明的嵌入式软件测试系统中的目标板软件存储示意图;图3 本发明的嵌入式软件测试系统中的测试软件案例分发流程示意图。符号说明1 上位机2 USB 转 CAN 适配器3 目标板4 CAN 总线5监控软件6测试软件
具体实施例方式下面结合附图对本发明作进一步说明。本发明公开一种嵌入式软件在线测试系统,利用一种分布式测试网络,在上位机 控制下,分发测试软件案例至各个目标板,测试软件案例发送格式定义好的测试数据至上 位机,上位机利用测试软件案例发送的测试数据对测试软件进行功能性、安全性分析。该嵌入式软件测试系统包括硬件部分和软件部分,其硬件部分为一分布式测试网 络,如图1所示,主要包括一上位机1、一 USB转CAN接口适配器2,目标板3、以及CAN总 线4 ;其中,所述上位机1使用通用串行总线连接至所述USB转CAN接口适配器2,所述USB 转CAN接口适配器2连接至CAN总线,所述目标板3具有CAN控制器,并连接至所述CAN总 线4。所述上位机1例如是PC机。USB转CAN接口适配器在现有技术中很常见,在此不再赘述。所述目标板3上具有微处理器(MCU),例如使用飞思卡尔MC9S12DP256MCU。该系统还包括软件部分,包括在上位机1上运行的控制软件、以及设置在目标板3 中的监控软件5和测试软件6 ;控制软件在上位机1上运行,并具有分发测试案例库至目标 板3、以及收集和分析测试数据的功能;监控软件5 (Monitors)驻留在目标板3中,是烧入 目标板3的flash中的一段小程序,包括控制模块、flash驱动模块、CAN驱动模块等。
上位机1和目标板3之间使用一种基于CAN2. Ob规范的通信协议CAN-PT通信。 CAN-PT可以进行两种方式的通信,一种是广播通信,一种是点对点通信。CAN-PT中的数据 域包含了地址标签和测试软件案例二进制数据。所述监控软件5根据地址标签把测试软件 案例二进制数据写入flash。所述CAN-PT具有T_QUE广播帧、T_ACK1应答帧、T_DAT数据帧、T_ACK2应答帧。 T_QUE广播帧的内容是查询哪些目标板处于空闲状态;T_ACK1应答帧是点对点帧,内容为 目标板的状态(处于空闲状态还是处于非空闲状态)以及目标板3的标识符;T_DAT数据 帧为点对点帧,内容为测试软件案例二进制数据、地址标签以及该数据帧在所有要发送数 据帧序列中的序号;T_ACK2应答帧为点对点帧,内容为确认已收到某一序号的T_DAT数据 帧并可接收下一序号的T_DAT数据帧。图2描述了监控软件和测试软件在目标板3的微处理器——飞思卡尔 MC9S12DP256 MCU自带的flash上的分布示意图。飞思卡尔MC9S12DP256MCU具有256K 的flash容量,其中,监控软件映射到flash的$4000 $7FFF,测试软件映射到flash的 $C00(T$DFFF 以及 $E00(T$FDFF,中断向量位于 $FF0(T$FFFF。目标板3的个数为至少一个,例如为64个。本发明中的监控软件和测试软件使用的开发环境很多,例如为CodeWarrior。为 了把监控软件和测试软件映射到flash中互不重叠的区域,本发明中通过自定义prm文件 进行存储映射,当然也可以通过其它方式。考虑了本实例中监控软件和测试软件的大小,本 实例例如把监控软件映射到flash的$400(T$7FFF,测试软件映射到flash的$C00(T$DFFF 以及$E00(T$FDFF,当然,可根据实际需要进行其它地址和大小的配置。本实例中的测试软件的对象例如为一种面向汽车领域的嵌入式操作系统。嵌入式 操作系统的测试涉及所有系统服务APIs的测试,需要编写不同组合的测试案例,需要非常 大的测试案例库才能涵盖整个操作系统的测试。本实例例如采用了 254个测试案例,其可以使用一种针对所述面向汽车领域的嵌 入式操作系统的测试案例自动生成方法来自动生成(这种测试案例自动生成方法与本发 明的主旨并不相关,故在此不加详述);本实例还可以使用一种基于特征序列的测试数据 生成方法和测试数据分析方法。采用该嵌入式操作系统进行软件在线测试的方法以如下步骤执行(1)上位机控制软件向CAN网络发送CAN-PT T_QUE广播帧。T_QUE广播帧的内容 是查询哪些目标板处于空闲状态;(2)目标板发送CAN-PT T_ACK1应答帧至上位机。T_ACK1应答帧为点对点帧,帧 的内容为本目标板的状态(处于空闲状态还是处于非空闲状态)以及本目标板的标识符;(3)上位机向上述目标板发送CAN-PT T_DAT数据帧。T_DAT数据帧为点对点帧, 帧的内容为测试软件案例二进制数据、地址标签以及该数据帧在所有要发送数据帧序列中 的序号;驻留目标板的监控软件把二进制数据写入flash,写入区域参照图2中的6,同时向 上位机发送CAN-PT T_ACK2应答帧,T_ACK2应答帧的内容为确认已收到某一序号的T_DAT 数据帧并可接收下一序号的T_DAT数据帧,上位机和上述目标板重复步骤3,直到该测试软 件案例发送完毕;(4)测试软件案例下载完毕后,驻留目标板的监控软件控制目标板跳转执行测试
7软件案例。跳转的具体方法为飞思卡尔MC9S12DP256 MCU的中断向量$FFF8处存放MCU 启动入口地址。目标板监控软件在处理T_DAT数据帧时,保存地址标签为$FFF8处的数据 值至16位全局变量startUpAddr,再使用下面的代码LDD startUpAddr ;PSHB ;PSHA ;RTS ;跳转执行测试软件案例;(5)测试软件案例在目标板运行并发送所述一种基于特征序列的方法生成的测试 数据至上位机;(6)测试软件案例停止运行并控制目标板跳转执行监控软件,步骤2、3、4、5、6构 成目标板的一个生命周期。测试软件案例控制目标板跳转执行监控软件的方法使用了 MCU 看门狗的重启功能,使用的代码为C0PCTL = 5 ;ARMC0P = OxFF ;(7)上位机重复步骤1、2,直到所有测试案例分发完毕;(8)上位机利用测试软件案例发送的测试数据对测试软件进行功能性、安全性分 析。在该嵌入式软件在线测试系统中,驻留目标板3的监控软件5和测试软件6共用 MCU的中断向量。为了避免中断向量表被对方覆盖,本发明采取以下的方法监控软件和测 试软件案例的中断向量表保存一份拷贝到RAM上;监控软件把测试软件写入flash时,当地 址标签位于MCU中断向量区域时不执行写入操作而是保存数据至RAM上;监控软件控制目 标板跳转执行测试软件案例时,先从RAM拷贝测试软件案例的中断向量表并写入MCU的中 断向量,再执行跳转;测试软件案例停止运行并控制目标板跳转执行监控软件时,先从RAM 拷贝监控软件的中断向量表并写入MCU的中断向量,再执行跳转。本发明中所提到的“测试软件案例”、“测试案例库”,均指已在待测试软件中加入 测试语句的软件。上面以举例方式对本发明进行了说明,但本发明不限于上述具体实施例,凡基于 本发明所做的任何改动或变型均属于本发明要求保护的范围。
权利要求
一种嵌入式软件测试系统,其特征在于,包括由一分布式测试网络组成的硬件部分,该分布式测试网络包括一上位机(1)、一USB转CAN接口适配器(2),至少一目标板(3)、以及CAN总线(4);其中,所述上位机(1)使用通用串行总线连接至所述USB转CAN接口适配器(2),所述USB转CAN接口适配器(2)连接至所述CAN总线(4),所述目标板(3)具有CAN控制器,并连接至所述CAN总线(4)。
2.根据权利要求1所述的嵌入式软件测试系统,其特征在于,该系统还包括由控制软 件、监控软件(5)和测试软件(6)组成的软件部分;其中,所述控制软件在所述上位机(1) 上运行,所述监控软件(5)和测试软件(6)设置在所述目标板(3)中。
3.根据权利要求1所述的嵌入式软件测试系统,其特征在于,所述上位机(1)为PC机, 所述目标板⑶上具有MCU。
4.根据权利要求3所述的嵌入式软件测试系统,其特征在于,所述MCU为飞思卡尔 MC9S12DP256 MCU。
5.根据权利要求2所述的嵌入式软件测试系统,其特征在于,驻留所述目标板中的监 控软件和测试软件共用目标板上MCU的中断向量;为了避免中断向量表被对方覆盖,其采 取如下的方法监控软件和测试软件案例的中断向量表保存一份拷贝到RAM上;监控软件 把测试软件写入flash时,当地址标签位于MCU中断向量区域时不执行写入操作而是保存 数据至RAM上;监控软件控制目标板跳转执行测试软件案例时,先从RAM拷贝测试软件案例 的中断向量表并写入MCU的中断向量,再执行跳转;测试软件案例停止运行并控制目标板 跳转执行监控软件时,先从RAM拷贝监控软件的中断向量表并写入MCU的中断向量,再执行 跳转。
6.根据权利要求2所述的嵌入式软件测试系统,其特征在于,所述控制软件具有分发 测试案例库至所述目标板(3)、以及收集和分析测试数据的功能;所述监控软件(5)是烧入 所述目标板(3)的flash中的一段程序,包括控制模块、flash驱动模块、CAN驱动模块。
7.根据权利要求3所述的嵌入式软件测试系统,其特征在于,所述上位机(1)和目标 板(3)之间使用一种基于CAN2. Ob规范的通信协议CAN-PT通信;其具有两种通信方式,一 种是广播通信,一种是点对点通信。
8.根据权利要求7所述的嵌入式软件测试系统,其特征在于,所述CAN-PT中具有数据 域,其中包含地址标签和测试软件案例二进制数据。
9.根据权利要求7所述的嵌入式软件测试系统,其特征在于,所述CAN-PT具有T_QUE 广播帧、T_ACK1应答帧、T_DAT数据帧、T_ACK2应答帧;所述T_QUE广播帧的内容是查询哪 些目标板处于空闲状态;所述T_ACK1应答帧是点对点帧,内容为目标板的状态以及目标板 的标识符;所述T_DAT数据帧为点对点帧,内容为测试软件案例二进制数据、地址标签以及 该数据帧在所有要发送数据帧序列中的序号;所述T_ACK2应答帧为点对点帧,内容为确认 已收到某一序号的T_DAT数据帧并可接收下一序号的T_DAT数据帧。
10.采用权利要求1-9任一项所述的嵌入式软件测试系统进行软件测试的方法,其特 征在于,包括以下步骤1)上位机控制软件向CAN网络发送CAN-PTT_QUE广播帧;T_QUE广播帧的内容是查询 哪些目标板处于空闲状态;2)目标板发送CAN-PTT_ACK1应答帧至上位机;T_ACK1应答帧为点对点帧,帧的内容为本目标板的状态以及本目标板的标识符;3)上位机向上述目标板发送CAN-PTT_DAT数据帧;T_DAT数据帧为点对点帧,帧的 内容为测试软件案例二进制数据、地址标签以及该数据帧在所有要发送数据帧序列中的序 号;驻留目标板的监控软件把二进制数据写入flash,同时向上位机发送CAN-PT T_ACK2应 答帧,T_ACK2应答帧的内容为确认已收到某一序号的T_DAT数据帧并可接收下一序号的T_ DAT数据帧,上位机和上述目标板重复步骤3,直到该测试软件案例发送完毕;4)测试软件案例下载完毕后,驻留目标板的监控软件控制目标板跳转执行测试软件案例;5)测试软件案例在目标板运行并发送测试数据至上位机;6)测试软件案例停止运行并控制目标板跳转执行监控软件,步骤2-6构成目标板的一 个生命周期;7)上位机重复步骤1-2,直到所有测试案例分发完毕;8)上位机利用测试软件案例发送的测试数据对测试软件进行功能性、安全性分析。
全文摘要
本发明涉及一种软件测试系统,属于测试系统技术领域,特别地涉及一种嵌入式软件在线测试系统,其特点是主要包括由一分布式测试网络组成的硬件部分和软件部分,该分布式测试网络包括上位机、USB转CAN接口适配器、目标板、以及CAN总线;上位机使用通用串行总线连接至USB转CAN接口适配器,USB转CAN接口适配器2连接至CAN总线,目标板具有CAN控制器,并连接至CAN总线;再结合控制软件、监控软件和测试软件实现对嵌入式操作系统的软件在线测试,其功能强大、测试案例丰富、测试效率高且完整深入,具有广阔的市场前景。
文档编号G06F11/36GK101853203SQ201010189100
公开日2010年10月6日 申请日期2010年5月31日 优先权日2010年5月31日
发明者姚刘杰, 张成硕, 李红, 王铸, 赵民德, 顾宗华 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1