[发明专利]程序执行序列的获取方法及装置在审

专利信息
申请号: 201410001275.7 申请日: 2014-01-02
公开(公告)号: CN103744782A 公开(公告)日: 2014-04-23
发明(设计)人: 陈振宇;田亮;张旭辉;黄明明;曾卫;汪亚斌;周锴;高则宝;沈毅;房春荣 申请(专利权)人: 北京百度网讯科技有限公司;南京大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 北京清亦华知识产权代理事务所(普通合伙) 11201 代理人: 宋合成
地址: 100085 北京市*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 程序 执行 序列 获取 方法 装置
【说明书】:

技术领域

发明涉及计算机技术领域,尤其涉及一种程序执行序列的获取方法及装置。

背景技术

程序测试是指对一个完成了全部或部分功能、模块的计算机程序在正式使用前的检测,以确保该程序能按预定的方式正确地运行。目前采用的测试方法包括白盒测试和黑盒测试等。

其中,白盒测试也被称作结构测试或者逻辑驱动测试,它主要测试程序内部的结构。测试人员根据程序的内部逻辑结构信息,设计测试用例并测试程序的逻辑路径,验证执行结果。与白盒测试相对的是黑盒测试,黑盒测试又称为功能测试。黑盒测试不考虑软件内部结构和内部特性,而只关注接口输入输出的正确性。

覆盖技术是白盒测试中常用的技术之一,逻辑覆盖是一种标准,表示测试用例在程序执行时对程序逻辑的覆盖程度。代码覆盖主要关注程序运行时内部逻辑的覆盖程度,按照粒度的不同可以分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖等。覆盖测试可以通过检测是否对程序的关键路径都已经覆盖完全来检查测试用例设计的合理性。程序插桩是覆盖测试所依赖的关键技术。插桩技术在不影响程序逻辑特性的前提下,使得运行时覆盖信息的收集成为可能。按照插桩时机的不同,程序插桩技术主要分为两种:(1)源代码插桩:源代码插桩就是直接对程序源文件进行修改,插入相应的桩代码。源代码插桩需要对源代码进行完整的词法分析和语法分析,从而确定插桩的位置。(2)目标代码插桩:相比源代码插桩,目标代码插桩不会影响源代码,但是会影响生成的目标代码。但是,目标代码中通常不具有相应的程序结构。基于程序插桩技术,就可以在覆盖测试中获得各个粒度级别的覆盖信息。

在科研工作中通常使用源代码插桩的方式获取执行序列,这样能够获得精确的结果并且易于操作,但在工业应用中,通常不允许修改程序的源代码,因此,在工业应用中不能使用源代码插桩的方式来获取执行序列。

发明内容

本发明旨在至少解决上述技术问题之一。

为此,本发明的第一个目的在于提出一种程序执行序列的获取方法。该方法,在不修改程序源代码的情况下,实现了目标代码的插桩,执行测试用例后可以获得程序的执行序列,进而可以帮助测试人员实现软件工程任务,比如错误定位。

为了实现上述目的,本发明第一方面实施例的程序执行序列的获取方法,包括以下步骤:

在编译阶段为被测程序选择插桩节点植入探针,在探针中写入保存函数、收集序列函数和还原函数;

当被测程序根据当前测试用例执行分支时,输出对应的基本块信息;以及

根据基本块信息得到基本块图级别的执行序列,根据执行序列与对应的基本块图生成包含行号信息的执行序列信息。

本发明实施例的程序执行序列的获取方法,通过在探针中写入保存函数和还原函数,可以在不修改程序源代码的情况下,实现目标代码的插桩,通过执行测试用例后可以获得程序的多个执行序列,进而可以帮助测试人员实现软件工程任务,比如错误定位。

为了实现上述目的,本发明第二方面实施例的程序执行序列的获取装置,包括:插桩模块、执行模块以及生成模块。

本发明实施例的程序执行序列的获取装置,通过插桩模块在探针中写入保存函数和还原函数,可以在不修改程序源代码的情况下,实现目标代码的插桩,通过执行测试用例后可以获得程序的多个执行序列,进而可以帮助测试人员实现软件工程任务,比如错误定位等。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,

图1是根据本发明一个实施例的程序执行序列的获取方法的流程图;

图2是根据本发明另一个实施例的程序执行序列的获取方法的流程图;

图3是根据本发明一个实施例的基本块图的示意图;

图4是根据本发明一个实施例的程序执行序列的获取装置的结构示意图;

图5是根据本发明另一个实施例的程序执行序列的获取装置的结构示意图。

具体实施方式

下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司;南京大学,未经北京百度网讯科技有限公司;南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201410001275.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top