Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于目标驱动的软件测试方法和装置 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:中国科学院信息工程研究所

摘要:本发明涉及一种基于目标驱动的软件测试方法和装置。该方法首先执行系统级的concolic测试以收集函数之间的调用关系,利用函数之间的调用关系计算函数的相关性,通过函数的相关性构建扩展单元;然后在扩展单元中使用单元测试发现潜在错误;然后在系统级的concolic测试中使用目标驱动的搜索策略验证潜在错误是否在全局存在。本发明通过计算函数依赖关系的方式将目标函数拓展为一组测试单元,使由于缺少上下文带来的误报大大降低;通过先在局部进行错误搜索,再将潜在错误信息放入到系统级的concolic执行中进行验证,降低了对目标函数进行测试的难度,且提高了测试的准确度。

主权项:1.一种基于目标驱动的软件测试方法,其特征在于,包括以下步骤:收集函数之间的调用关系,利用函数之间的调用关系计算函数的相关性,通过函数的相关性构建扩展单元;在扩展单元中使用单元测试发现潜在错误;使用目标驱动的搜索策略验证潜在错误是否在全局存在;所述收集函数之间的调用关系,利用函数之间的调用关系计算函数的相关性,包括:以待测的目标程序和一组系统级测试初始值为输入开始concolic执行,并根据实际情况设置时间阈值;concolic引擎以获取尽可能多的系统级路径为目的,一旦到达设定的时间阈值就停止运行;同时收集已运行路径上函数的调用关系,利用函数间的调用频次,通过计算条件概率来确定函数间的相关性;所述在扩展单元中使用单元测试发现潜在错误,包括:对于被测程序P中和目标函数相关的每一组扩展单元,自动生成扩展单元的测试驱动程序driver_e和符号存根stub_g;测试驱动程序driver_e根据调用函数e的输入类型将符号值分配给e的输入变量,然后调用函数e;执行后继函数g时,将其替换为符号存根stub_g以使返回值具有符号意义;对扩展单元进行concolic单元测试,以探索与目标函数f相关的崩溃性错误,在此期间,为测试驱动程序driver_e的每一条执行路径生成一组输入,并在遇到崩溃错误时记录执行路径及该路径的约束条件;所述使用目标驱动的搜索策略验证潜在错误是否在全局存在,包括:分析整个程序,以构建控制流程图CFG和函数调用图CG,使用潜在错误作为目标在生成的CFG和CG中进行标记,以获得包含潜在目标标记节点的控制流程图;在系统级的concolic测试阶段,使用选定的输入和目标驱动的搜索策略来快速定位局部错误在全局是否存在,并得到全局路径的输入和相关的崩溃报告;所述目标驱动的搜索策略包括:当一条路径执行结束后,确定候选列表中新状态的下一条指令地址是否命中目标函数,即补丁所在的函数;如果命中,则为所有命中的新状态分配最高优先级,在最高优先级的新状态中选择最接近核心目标的一条路径继续运行,执行该路径后,将继续在最高优先级的新状态中选择执行路径;如果没有命中,或最高优先级的新状态全部执行完成,则结合控制流图CFG和函数调用图CG查找目标函数的上层调用函数,并确认候选列表中是否存在新状态命中该上层调用函数;若是,则在命中该上层调用函数的新状态中选择最接近调用点的一个新状态继续执行。

全文数据:

权利要求:

百度查询: 中国科学院信息工程研究所 一种基于目标驱动的软件测试方法和装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。