[发明专利]基于JTAG调试方式实现通用型目标码覆盖率测试系统和测试方法有效
申请号: | 201510070389.1 | 申请日: | 2015-02-10 |
公开(公告)号: | CN104657263B | 公开(公告)日: | 2017-10-24 |
发明(设计)人: | 朱二刚;张必勇;陶钧 | 申请(专利权)人: | 上海创景计算机系统有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 上海汉声知识产权代理有限公司31236 | 代理人: | 郭国中,樊昕 |
地址: | 201203 上海市浦东新区张江高科技园*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 jtag 调试 方式 实现 通用型 目标 覆盖率 测试 系统 方法 | ||
技术领域
本发明涉及一种测试系统和测试方法,具体地,涉及一种基于JTAG调试方式实现通用型目标码覆盖率测试系统和测试方法。
背景技术
嵌入式程序往往具有高可靠性和稳定性的特点,因此需要对嵌入式程序进行严格的测试,确定程序代码的覆盖率是否达到要求,如代码覆盖率、分支覆盖率和调用覆盖率。
目前确定嵌入式程序覆盖率的方法一般是通过修改嵌入式程序源代码,在源代码中植入探针代码,重新编译并执行嵌入式程序,然后通过分析探针的输出结果来确定该嵌入式程序的各种代码覆盖率。现有方案因为要在源代码中植入探针代码,必然导致嵌入式程序目标代码的膨胀,而嵌入式设备的存储空间往往是非常有限的,可能会无法容纳膨胀后的程序代码,并且因为探针的存在,可能无法反映目标代码的真实执行情况。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于JTAG调试方式实现通用型目标码覆盖率测试系统和测试方法,其不需要对嵌入式程序的源码进行插桩,不改变被测程序的源代码的程序结构,目标代码不会产生膨胀。另外,不修改嵌入式程序的二进制目标代码的程序结构,直接测试运行于嵌入式设备上的程序代码,确保被测代码和最终代码完全一致,可以反映目标代码的真实执行情况。
根据本发明的一个方面,提供一种基于JTAG调试方式实现通用型目标码覆盖率测试系统,其特征在于,包括:
覆盖率监控模块,用于对目标代码进行分析处理,划分指令执行单元,驱动测试正常执行和生成测试结果;
测试执行控制模块,用于接收覆盖率监控模块的指令并转换为JTAG命令,控制被测件执行相应的指令并返回指令执行结果。
优选地,所述测试执行控制模块由带有JTAG功能的仿真器组成。
优选地,所述测试执行控制模块通过网络与覆盖率监控模块连接。
优选地,所述覆盖率监控模块包含五个子模块:代码分析模块、代码管理模块、运行控制模块、结果整合模块和报告生成模块;其中,代码分析模块用于对被测目标代码进行反汇编,解析指令类型,分析每条指令之间的逻辑关系,并根据指令间的逻辑关系划分指令执行单元,在每个指令执行单元设置一个或多个程序断点,并根据程序的实际执行过程调整断点的设置;代码管理模块用于管理被测代码,解析与被测代码相关的符号信息,必要时建立被测二进制代码与源代码之间的关联关系,维护被测二进制程序、符号信息和源代码之间的关联关系,并通过汇编、混合汇编等方式展现被测程序的内容;运行控制模块用于管理与测试执行模块之间的通信,管理并驱动被测代码的执行,标记当前断点触发的指令地址,根据触发断点的位置重新调用代码分析模块对当前代码块进行分析,调整断点的设置位置,调整程序执行方式,让被测程序走单步或者运行;结果整合模块用于被测程序的执行结果进行整理,根据代码分析模块划分的指令执行单元和运行控制模块在被测程序执行过程中所标记的断点执行位置,分析被执行过的指令单元,整理出被执行过的代码块、分支执行情况和函数调用执行情况,计算语句覆盖率、分支覆盖率、调用覆盖率和MCDC覆盖率;报告生成模块用于将测试结果生成各种格式的测试报告,根据用户设置和测试报告模板,将测试结果生成html报告、pdf报告等常见格式的报告文件,便于用户对测试结果进行管理。
优选地,所述测试执行控制模块包含通信控制模块和JTAG执行模块两个子模块;通信控制模块通过网络与上述运行控制模块连接并接收运行控制模块的指令信息,控制指令执行流程、解析指令内容并反馈指令执行结果;JTAG执行模块通过JTAG数据线直接连接嵌入式被测设备的JTAG接口,将通信控制模块的指令转换为JTAG命令,驱使被测设备执行该JTAG命令并反馈命令执行结果给通信控制模块。
本发明还提供一种基于JTAG调试方式实现通用型目标码覆盖率测试方法,其特征在于,包括以下步骤:
步骤一:建立与JTAG仿真器的连接,加载被测程序的二进制代码,对被测程序进行反汇编处理,分析被测范围内各条指令的指令类型;
步骤二:加载并解析与被测程序相关的符号信息,管理被测程序与符号信息、源代码之间的关联关系,通过符号窗口、汇编窗口、混合汇编等窗口展示被测程序内容,让用户选择覆盖率监控范围;
步骤三:根据上述步骤的执行结果,对监控范围内的指令依据某种策略划分指令执行单元,在每个指令执行单元设置一个或若干个程序断点;
步骤四:通过JTAG仿真器下载被测程序,将步骤三中每个指令单元中设置的程序断点设置到被测嵌入式设备中,复位被测嵌入式设备;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海创景计算机系统有限公司,未经上海创景计算机系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510070389.1/2.html,转载请声明来源钻瓜专利网。