[发明专利]一种基于注入方式的嵌入式软件目标码单元测试方法有效
申请号: | 201711285257.6 | 申请日: | 2017-12-07 |
公开(公告)号: | CN108132876B | 公开(公告)日: | 2021-03-19 |
发明(设计)人: | 邵腾飞;周雄;施彬彬;刘念 | 申请(专利权)人: | 中国航发控制系统研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 无锡市大为专利商标事务所(普通合伙) 32104 | 代理人: | 殷红梅;屠志力 |
地址: | 214063 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 注入 方式 嵌入式 软件 目标 单元测试 方法 | ||
本发明提供一种基于注入方式的嵌入式软件目标码单元测试方法;首先注入单元测试程序BINTEST到目标码未使用的程序Flash存储空间,修改目标码的定时中断服务程序入口,使用单元测试程序BINTEST的入口代替原来的定时中断服务入口。单元测试程序BINTEST实现一个测试状态机与上位机交互。上位机上安装自动化单元测试软件AutoTest,其功能包括:获取测试脚本中“被测函数”、“输入设置”、“输出期望”信息;与单元测试程序BINTEST自动交互:根据“读取变量值”交互请求得到单元测试程序BINTEST的响应信息后,解析得到单元测试的“实测输出”,然后与脚本中“输出期望”比较。本发明的特点是,测试对象与目标码交付状态的差异小,符合真实使用时的环境。
技术领域
本发明涉及嵌入式软件单元测试验证技术,尤其是一种基于注入方式的嵌入式软件目标码单元测试方法。
背景技术
软件单元测试是软件质量安全保证的一个重要手段,针对高安全的嵌入式软件尤其需要通过严格的单元测试验证。目前的通常软件单元测试主要是在源码的基础上测试:将源码与测试模块组装编译,在仿真环境或目标环境下进行测试。然而,软件交付使用的环境与单元测试时的环境不同,如使用Cantata进行单元测试,通常是使用桌面电脑的CPU运算,而不是使用目标机的CPU运算;Cantata也能在目标环境下进行单元测试,通过将函数源码和测试模块组合编译,下载到目标机中运行,实际目标码的分配空间、分配时间(因被插桩)都与实际使用时不一致。
发明内容
为了尽量与真实使用环境一致,本发明提供一种基于注入方式的嵌入式软件目标码单元测试方法,实现目标码使用环境尽量一致情况下的单元测试方法。本发明采用的技术方案是:
一种基于注入方式的嵌入式软件目标码单元测试方法,包括以下步骤:
步骤S1,注入单元测试程序BINTEST到目标码未使用的程序Flash存储空间,然后劫持目标码的定时中断服务程序入口,使用单元测试程序BINTEST的入口代替目标码原来的定时中断服务入口,达到定时中断服务实际执行单元测试程序BINTEST的目的。
目标码就是需要测试的软件程序,以二进制表示,烧写在目标机的程序Flash中。嵌入式系统上电后,自动执行目标码。
步骤S2,上位机自动化单元测试软件AutoTest,自动在指定工程目录下依次查询测试脚本,获取测试脚本中“被测函数”、“输入设置”、“输出期望”信息。
步骤S3、上位机自动化单元测试软件AutoTest与单元测试程序BINTEST自动交互:根据 “输入设置”信息中地址数据打包并发送“设置变量值”的交互请求数据包;根据“被测函数”信息中地址数据打包并发送“调用被测函数”的交互请求数据包;根据“输出期望”信息中地址数据打包并发送“读取变量值”的交互请求数据包;接收单元测试程序BINTEST相应的响应信息。
步骤S4、上位机自动化单元测试软件AutoTest根据“读取变量值”交互请求得到单元测试程序BINTEST的响应信息后,解析得到单元测试的“实测输出”,然后与脚本中“输出期望”比较,得出单元测试是否通过的结论,并显示和写回测试脚本文件,并回到步骤S2,直到测试脚本中所有测试用例执行完成;然后查询下一个测试脚本,直到所有测试脚本处理完成。
进一步地,步骤S1中,单元测试程序BINTEST实现一个测试状态机与上位机交互,功能包括:设置变量值、调用被测函数和读取变量值。
进一步地,步骤S2中,上位机自动化单元测试软件AutoTest读取测试脚本,若测试脚本中只有变量信息没有地址信息,则读取测试目标码的对应map映射文件,查找到地址信息,若无地址信息则弹出错误提示。
进一步地,单元测试程序BINTEST与上位机通过通讯方式交互,通讯数据包的协议包括:协议头、长度、命令字、地址、值和校验和。
进一步地,设置变量值的方法为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航发控制系统研究所,未经中国航发控制系统研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711285257.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:代码测试方法及装置
- 下一篇:一种飞行控制软件中增益覆盖率测试的方法