[发明专利]程序的代码段测试方法、装置和系统有效
申请号: | 201310752450.1 | 申请日: | 2013-12-31 |
公开(公告)号: | CN103761184B | 公开(公告)日: | 2017-01-04 |
发明(设计)人: | 冯蛟;麻先盛 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙)44285 | 代理人: | 王仲凯 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 代码 测试 方法 装置 系统 | ||
技术领域
本发明属于计算机程序领域,尤其涉及程序的代码段测试方法、装置和系统。
背景技术
随着目前软件系统的复杂度不断提高,使软件测试的重要性也得到了进一步的体现。
现有技术中,在对二进制的程序映像进行测试的方式包括,在程序的内部嵌入测试模块,即,通过运行特定的代码段来进行程序测试。
发明人经过研究发现,上述现有技术中的程序测试方式,需要增加新的测试模块,这样会使得程序的逻辑的复杂度进一步提高,进而就有可能引入新的缺陷;这样,在发生缺陷时,就难以定位缺陷到底是测试对象,即,被测试代码段自身的问题还是由于测试模块的加入造成的,即,现有技术中的程序测试方式会使得程序的复杂度增加,由于测试模块本身就有可能引入额外的缺陷,从而对原有程序造成干扰。
发明内容
有鉴于此,本发明提供了程序的代码段测试方法和装置,以减少对原有程序的干扰目的。
第一方面,本发明提供了一种程序的代码段测试方法,包括:
在对被测程序进行测试时,在所述被测程序中调用被测试代码段的位置,设置断点/跳转处理单元;
运行所述被测程序,当所述被测程序执行至调用所述被测试代码段位置时,所述断点/跳转处理单元中断所述被测试代码段的执行流程,并将所述被测程序的执行跳转至测试流程;
在执行所述测试流程中,运行测试代码段,并获取测试结果。
在第一方面的第一种可能的实现方式中,所述被测试代码段的代码类型包括:
二进制程序映像。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述被测程序包括:
操作系统程序或应用程序。
结合第一方面的第二种可能的实现方式中,在第三种可能的实现方式中,所述断点/跳转处理单元包括:
通过设置断点、探针、动态修改代码段或虚拟执行中的一种或任意组合实现。
在第一方面的第四种可能的实现方式中,所述获取测试结果后,还包括:
测试流程结束后,恢复所述被测程序程的执行。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述测试流程包括:
构造和检查测试环境;
调用所述被测试代码段;
所述被测试代码段执行完毕后,进行所述测试环境结果的检查和记录。
结合第一方面的第四种可能的实现方式,在第六种可能的实现方式中,所述测试流程包括:
构造和检查测试环境;
调用所述被测试代码段的副本;
所述被测试代码段的副本执行完毕后,进行所述测试环境结果的检查和记录。
结合第一方面的第五种或第六种可能的实现方式,在第七种实现方式中,还包括:
恢复被中断的所述被测程序的执行前,清理所述测试环境。
结合第一方面的第六种可能的实现方式,在第八种可能的实现方式中,所述构造和检查测试环境前,还包括:
当所述被测试代码段的副本不存在时,创建所述被测试代码段的副本。
结合第一方面的第八种可能的实现方式,在第九种可能的实现方式中,所述被测试代码段的副本包括:
与所述被测试代码段逻辑功能等效的代码段。
第二方面,本发明提供一种程序的代码段测试装置,包括:
断点设置单元,用于在对被测程序进行测试时,在所述被测程序中调用被测试代码段的位置,设置断点/跳转处理单元;
所述断点/跳转处理单元,用于当所述被测程序执行至调用所述被测试代码段位置时,所述断点/跳转处理单元中断所述被测试代码段的执行流程,并将所述被测程序的执行跳转至测试流程;
测试单元,用于在执行所述测试流程中,运行测试代码段,并获取测试结果。
在第二方面的第一种可能的实现方式中,所述被测试代码段的代码类型包括:
二进制程序映像。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述被测程序包括:
操作系统程序或应用程序序。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述断点/跳转处理单元包括:
断点、探针、动态修改代码段或虚拟执行中的一种或任意组合。
在第二方面的第四种可能的实现方式中,还包括:
恢复单元,用于通过所述断点/跳转处理单元,恢复所述被测程序程的执行。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述测试单元,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310752450.1/2.html,转载请声明来源钻瓜专利网。