[发明专利]一种基于注入方式的嵌入式软件目标码单元测试方法有效
申请号: | 201711285257.6 | 申请日: | 2017-12-07 |
公开(公告)号: | CN108132876B | 公开(公告)日: | 2021-03-19 |
发明(设计)人: | 邵腾飞;周雄;施彬彬;刘念 | 申请(专利权)人: | 中国航发控制系统研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 无锡市大为专利商标事务所(普通合伙) 32104 | 代理人: | 殷红梅;屠志力 |
地址: | 214063 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 注入 方式 嵌入式 软件 目标 单元测试 方法 | ||
1.一种基于注入方式的嵌入式软件目标码单元测试方法,其特征在于,包括以下步骤:
步骤S1,注入单元测试程序BINTEST到目标码未使用的程序Flash存储空间,然后劫持目标码的定时中断服务程序入口,使用单元测试程序BINTEST的入口代替目标码原来的定时中断服务入口,达到定时中断服务实际执行单元测试程序BINTEST的目的;
步骤S2,上位机自动化单元测试软件AutoTest,自动在指定工程目录下依次查询测试脚本,获取测试脚本中“被测函数”、“输入设置”、“输出期望”信息;
步骤S3、上位机自动化单元测试软件AutoTest与单元测试程序BINTEST自动交互:根据“输入设置”信息中地址数据打包并发送“设置变量值”的交互请求数据包;根据“被测函数”信息中地址数据打包并发送“调用被测函数”的交互请求数据包;根据“输出期望”信息中地址数据打包并发送“读取变量值”的交互请求数据包;接收单元测试程序BINTEST相应的响应信息;
步骤S4、上位机自动化单元测试软件AutoTest根据“读取变量值”交互请求得到单元测试程序BINTEST的响应信息后,解析得到单元测试的“实测输出”,然后与脚本中“输出期望”比较,得出单元测试是否通过的结论,并显示和写回测试脚本文件,并回到步骤S2,直到测试脚本中所有测试用例执行完成;然后查询下一个测试脚本,直到所有测试脚本处理完成。
2.如权利要求1所述的基于注入方式的嵌入式软件目标码单元测试方法,其特征在于,
步骤S1中,单元测试程序BINTEST实现一个测试状态机与上位机交互,功能包括:设置变量值、调用被测函数和读取变量值。
3.如权利要求1所述的基于注入方式的嵌入式软件目标码单元测试方法,其特征在于,
步骤S2中,上位机自动化单元测试软件AutoTest读取测试脚本,若测试脚本中只有变量信息没有地址信息,则读取测试目标码的对应map映射文件,查找到地址信息,若无地址信息则弹出错误提示。
4.如权利要求2所述的基于注入方式的嵌入式软件目标码单元测试方法,其特征在于,
通过通讯方式交互,通讯数据包的协议包括:协议头、长度、命令字、地址、值和校验和。
5.如权利要求2所述的基于注入方式的嵌入式软件目标码单元测试方法,其特征在于,
设置变量值的方法为:
单元测试程序BINTEST根据协议头、长度判断接收到一包完整的数据包,进行校验和验证;数据包验证通过后,若命令字为“设置变量值命令字”,则解析其后的两个数据为“设置地址”和 “设置的值”,测试状态机设置为“设置变量值状态”;“设置地址”应在RAM空间范围内,单元测试程序BINTEST实现将该地址的RAM内存单元写入 “设置的值”;最后,进行交互响应:将“设置变量值返回命令字”、“设置地址”和“读取该地址的值”,进行打包并通信发送给上位机。
6.如权利要求2所述的基于注入方式的嵌入式软件目标码单元测试方法,其特征在于,
调用被测函数的方法为:
单元测试程序BINTEST根据协议头、长度判断接收到一包完整的数据包,进行校验和验证;数据包验证通过后,若命令字为“调用被测函数命令字”,则解析其后的1个数据为“函数地址”,测试状态机设置为“调用被测函数状态”;“函数地址”应在程序Flash空间范围内,与被测函数的实际物理地址一致;单元测试程序BINTEST将地址传递给函数指针,然后通过该函数指针实现被测函数的调用执行;最后,进行交互响应:将“调用被测函数返回命令字”、“函数地址”,进行打包并通信发送给上位机。
7.如权利要求2所述的基于注入方式的嵌入式软件目标码单元测试方法,其特征在于,
当测试状态机为“调用被测函数状态”时,可以继续接收“调用被测函数”协议包,连续调用下一个被测函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航发控制系统研究所,未经中国航发控制系统研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711285257.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:代码测试方法及装置
- 下一篇:一种飞行控制软件中增益覆盖率测试的方法