• 浪潮孙丕恕从信息时代到智能时代 人工智能价值将爆发式释放 2019-12-21
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
    • / 12
    • 下载费用:30 金币  

    重庆时时彩专家方案: 一种数据挖掘方法和装置.pdf

    关 键 词:
    一种 数据 挖掘 方法 装置
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201310676501.7

    申请日:

    2013.12.12

    公开号:

    CN104142887A

    公开日:

    2014.11.12

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 专利权的转移IPC(主分类):G06F 11/36登记生效日:20180913变更事项:专利权人变更前权利人:腾讯科技(深圳)有限公司变更后权利人:腾讯云计算(北京)有限责任公司变更事项:地址变更前权利人:518044 广东省深圳市福田区振兴路赛格科技园2栋东403室变更后权利人:100090 北京市海淀区知春路49号3层西部309|||授权|||实质审查的生效IPC(主分类):G06F 11/36申请日:20131212|||公开
    IPC分类号: G06F11/36 主分类号: G06F11/36
    申请人: 腾讯科技(深圳)有限公司
    发明人: 吴云佳
    地址: 518044 广东省深圳市福田区振兴路赛格科技园2栋东403室
    优先权:
    专利代理机构: 北京德琦知识产权代理有限公司 11018 代理人: 谢安昆;宋志强
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201310676501.7

    授权公告号:

    |||||||||

    法律状态公告日:

    2018.10.09|||2016.12.14|||2014.12.10|||2014.11.12

    法律状态类型:

    专利申请权、专利权的转移|||授权|||实质审查的生效|||公开

    摘要

    本发明公开了一种数据挖掘方法和装置,针对每条测试数据,分别进行如下处理:将该条测试数据输入给可执行代码,由所述可执行代码运行该条测试数据;确定相比于运行该条测试数据之前,所述可执行代码的各代码块中是否存在运行次数发生了变化的代码块;如果是,则将该条测试数据作为挖掘出的测试数据。应用本发明所述方案,能够提高数据挖掘的效率。

    权利要求书

    权利要求书
    1.  一种数据挖掘方法,其特征在于,
    针对每条测试数据,分别进行如下处理:
    将该条测试数据输入给可执行代码,由所述可执行代码运行该条测试数据;
    确定相比于运行该条测试数据之前,所述可执行代码的各代码块中是否存在运行次数发生了变化的代码块;
    如果是,则将该条测试数据作为挖掘出的测试数据。

    2.  根据权利要求1所述的方法,其特征在于,
    所述确定相比于运行该条测试数据之前,所述可执行代码的各代码块中是否存在运行次数发生了变化的代码块包括:
    获取所述可执行代码对应的各覆盖率信息文件;
    从获取到的各覆盖率信息文件中解析出所述可执行代码中的每个代码块对应的计数器值;
    确定相比于运行该条测试数据之前,解析出的各计数器值中是否存在取值发生了变化的计数器值;
    如果是,则确定所述可执行代码的各代码块中存在运行次数发生了变化的代码块。

    3.  根据权利要求2所述的方法,其特征在于,
    在向所述可执行代码输入第一条测试数据之前,进一步包括:生成一个全局计数器值列表,所述全局计数器值列表中共包括M个计数器值,且均为0,所述M的取值与所述可执行代码中包括的代码块数相同;
    所述从获取到的各覆盖率信息文件中解析出所述可执行代码中的每个代码块对应的计数器值之后,进一步包括:利用解析出的各计数器值生成一个当前计数器值列表;
    所述确定所述可执行代码的各代码块中存在运行次数发生了变化的代码块之后,进一步包括:将所述当前计数器值列表作为所述全局计数器值列表;
    所述确定相比于运行该条测试数据之前,解析出的各计数器值中是否存在取值发生了变化的计数器值包括:确定所述当前计数器值列表相比于所述全局计数器值列表是否发生了变化,如果是,则确定解析出的各计数器值中存在取值发生了变化的计数 器值。

    4.  根据权利要求2或3所述的方法,其特征在于,
    所述取值发生了变化包括:从0变为非0的正整数。

    5.  根据权利要求1、2或3所述的方法,其特征在于,
    在向所述可执行代码输入第一条测试数据之前,进一步包括:启动所述可执行代码;
    所述将该条测试数据作为挖掘出的测试数据之后,进一步包括:将该条测试数据进行保存。

    6.  一种数据挖掘装置,其特征在于,包括:
    挖掘???,用于针对每条测试数据,分别进行如下处理:将该条测试数据输入给可执行代码,由所述可执行代码运行该条测试数据;确定相比于运行该条测试数据之前,所述可执行代码的各代码块中是否存在运行次数发生了变化的代码块;如果是,则将该条测试数据作为挖掘出的测试数据。

    7.  根据权利要求6所述的装置,其特征在于,
    所述装置中进一步包括:解析???;
    所述挖掘??榻徊接糜?,在将该条测试数据输入给所述可执行代码之后,通知所述解析??橹葱凶陨砉δ?;
    所述解析???,用于获取所述可执行代码对应的各覆盖率信息文件,并从获取到的各覆盖率信息文件中解析出所述可执行代码中的每个代码块对应的计数器值,发送给所述挖掘???;
    所述挖掘??槿范ㄏ啾扔谠诵懈锰醪馐允葜?,解析出的各计数器值中是否存在取值发生了变化的计数器值;如果是,则确定所述可执行代码的各代码块中存在运行次数发生了变化的代码块。

    8.  根据权利要求7所述的装置,其特征在于,
    所述挖掘??榻徊接糜?,
    在向所述可执行代码输入第一条测试数据之前,生成一个全局计数器值列表,所述全局计数器值列表中共包括M个计数器值,且均为0,所述M的取值与所述可执行 代码中包括的代码块数相同;
    所述解析??榻徊接糜?,利用解析出的各计数器值生成一个当前计数器值列表,发送给所述挖掘???;
    所述挖掘??榻徊接糜?,确定所述当前计数器值列表相比于所述全局计数器值列表是否发生了变化,如果是,则确定解析出的各计数器值中存在取值发生了变化的计数器值,并将所述当前计数器值列表作为所述全局计数器值列表。

    9.  根据权利要求7或8所述的装置,其特征在于,
    所述取值发生了变化包括:从0变为非0的正整数。

    10.  根据权利要求6、7或8所述的装置,其特征在于,
    所述挖掘??榻徊接糜?,在向所述可执行代码输入第一条测试数据之前,启动所述可执行代码;
    所述挖掘??榻徊接糜?,在将该条测试数据作为挖掘出的测试数据之后,将该条测试数据进行保存。

    说明书

    说明书一种数据挖掘方法和装置
    技术领域
    本发明涉及数据处理技术,特别涉及一种数据挖掘方法和装置。
    背景技术
    在C/C++软件开发的质量保证体系中,覆盖率是度量测试完整性的一个重要手段,通过对覆盖率进行分析,可以快速定位出哪些代码是没有被覆盖到的。
    相应地,在C/C++软件测试中,可基于覆盖率来进行数据挖掘,以提取测试数据,即依赖覆盖率的变化来选取测试的最小集,使得用测试的最小集,达到大数据的测试效果,从而提高测试的效率等。
    图1为现有数据挖掘方式的实现流程图。如图1所示,包括步骤11~16。
    步骤11:启动可执行代码,并向其输入一条测试数据。
    所述可执行代码,即指覆盖率版本的可执行程序。
    步骤12:可执行代码运行该条测试数据。
    步骤13:确定运行该条测试数据后,可执行代码的总覆盖率值(通常为一个百分比)是否发生了变化,如果是,则执行步骤14,否则,执行步骤15。
    步骤14:将该条测试数据作为挖掘出的测试数据,加入到候选集,之后执行步骤15。
    挖掘出的测试数据即为提取出的测试数据。
    步骤15:确定是否存在下一条测试数据,如果是,则执行步骤16,否则,结束流程。
    步骤16:向可执行代码输入下一条测试数据,并重复执行步骤12。
    所述可执行代码中通常包括多个文件,每个文件对应一个覆盖率信息文件,用于记录该文件的覆盖率相关信息。在实际应用中,可通过调用gcov工具来进行覆盖率信息文件的生成、更新和解析等。比如,当运行某一条测试数据后,导致某一文件的覆 盖率信息发生了变化,那么则需要对该文件对应的覆盖率信息文件进行更新。
    但是,gcov工具本身不支持统计功能,如果要得到总覆盖率值,还需要借助于第三方工具如lcov工具。
    具体来说,可通过调用gcov工具来对每个覆盖率信息文件进行完整解析,即将每个覆盖率信息文件中的全部信息均解析出来;之后,可通过调用lcov工具,对各解析结果进行汇总等,从而最终得到所需的总覆盖率值。
    但是,上述方式在实际应用中会存在一定的问题,如:通过汇总等得到总覆盖率值的过程会非常耗时,从而会严重降低数据挖掘的效率;当工程量较大、待挖掘的数据较多(如几百万条以上)时,进行一次数据挖掘可能需要几天甚至更多的时间。
    发明内容
    有鉴于此,本发明提供了一种数据挖掘方法和装置,能够提高数据挖掘的效率。
    为了达到上述目的,本发明的技术方案是这样实现的:
    一种数据挖掘方法,
    针对每条测试数据,分别进行如下处理:
    将该条测试数据输入给可执行代码,由所述可执行代码运行该条测试数据;
    确定相比于运行该条测试数据之前,所述可执行代码的各代码块中是否存在运行次数发生了变化的代码块;
    如果是,则将该条测试数据作为挖掘出的测试数据。
    一种数据挖掘装置,包括:
    挖掘???,用于针对每条测试数据,分别进行如下处理:将该条测试数据输入给可执行代码,由所述可执行代码运行该条测试数据;确定相比于运行该条测试数据之前,所述可执行代码的各代码块中是否存在运行次数发生了变化的代码块;如果是,则将该条测试数据作为挖掘出的测试数据。
    可见,采用本发明所述方案,针对每条测试数据,可在运行完该条测试数据之后,通过分析是否存在运行次数发生了变化的代码块来确定该条测试数据是否为挖掘出的测试数据;从而相比于现有技术,省去了通过汇总等得到总覆盖率值的过程,进而提高了数据挖掘的效率。
    附图说明
    图1为现有数据挖掘方式的实现流程图。
    图2为本发明数据挖掘方法实施例的流程图。
    图3为本发明数据挖掘方法较佳实施例的流程图。
    图4为本发明数据挖掘装置实施例的组成结构示意图。
    具体实施方式
    现有技术中,可执行代码中通常包括多个文件,而每个文件通常又会被划分为多个代码块,等同于,可执行代码被划分为多个代码块,每个代码块均具有如下特性:其中的代码要么全部被执行,要么全部不被执行。
    针对每个代码块,均会使用一个独立的计数器来统计该代码块的运行次数,并将计数器值即统计结果写入到该代码块所在的文件对应的覆盖率信息文件中。
    覆盖率信息文件中通常包括以下信息:文件名、函数名、行号、包括的代码块,以及每个代码块对应的计数器值等。
    基于上述介绍,本发明中提出一种改进后的数据挖掘方式,能够提高数据挖掘的效率。
    为了使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述方案作进一步的详细说明。
    图2为本发明数据挖掘方法实施例的流程图。如图2所示,包括:
    步骤21:针对数据挖掘过程中涉及到的每条测试数据,分别按照步骤22~23所示方式进行处理。
    步骤22:将该条测试数据输入给可执行代码,由可执行代码运行该条测试数据。
    在实际应用中,针对每条测试数据,分别按照步骤22~23所示方式进行处理之前,通常需要先进行以下处理:启动可执行代码,即在向可执行代码输入第一条测试数据之前,先启动可执行代码??芍葱写爰粗父哺锹拾姹镜目芍葱谐绦?。
    可执行代码如何运行所输入的测试数据、如何生成或更新相应的覆盖率信息文件等均为现有技术。
    步骤23:确定相比于运行该条测试数据之前,可执行代码的各代码块中是否存在运行次数发生了变化的代码块;如果是,则将该条测试数据作为挖掘出的测试数据。
    在进行数据挖掘时,其实只需要考虑覆盖率信息文件中的计数器值,而可忽略函数名、行号等,因此,步骤23的实现方式可为:
    1)获取可执行代码对应的各覆盖率信息文件;
    2)从获取到的各覆盖率信息文件中解析出可执行代码中的每个代码块对应的计数器值;如何进行解析为现有技术;
    3)确定相比于运行该条测试数据之前,解析出的各计数器值中是否存在取值发生了变化的计数器值;如果是,则确定可执行代码的各代码块中存在运行次数发生了变化的代码块,并可将该条测试数据作为挖掘出的测试数据,进行保存。
    具体地,
    在向可执行代码输入第一条测试数据之前,可先生成一个全局计数器值列表,全局计数器值列表中共包括M个计数器值,且均为0,M的取值与可执行代码中包括的代码块数相同。
    相应地,步骤2)之后,可进一步包括:利用解析出的各计数器值生成一个当前计数器值列表。
    步骤3)之后,可进一步包括:将当前计数器值列表作为全局计数器值列表,即用当前计数器值列表替换原有的全局计数器值列表,作为新的全局计数器值列表。
    步骤3)的具体实现方式可为:确定当前计数器值列表相比于全局计数器值列表是否发生了变化,如果是,则确定解析出的各计数器值中存在取值发生了变化的计数器值。
    取值发生了变化是指:从0变为非0的正整数。所述正整数的取值通常为1,但也可能大于1;比如,若该条测试数据对应一个循环操作,则所述正整数的取值可能就会大于1。
    综合上述介绍,图3为本发明数据挖掘方法较佳实施例的流程图。如图3所示,包括以下步骤31~39。
    步骤31:生成一个全局计数器值列表,全局计数器值列表中共包括M个计数器值,且均为0,M的取值与可执行代码中包括的代码块数相同。
    步骤32:启动可执行代码。
    步骤33:向可执行代码输入一条测试数据。
    步骤34:可执行代码运行该条测试数据。
    步骤35:获取可执行代码对应的各覆盖率信息文件;从获取到的各覆盖率信息文件中解析出可执行代码中的每个代码块对应的计数器值,并利用解析出的各计数器值生成一个当前计数器值列表。
    步骤36:将当前计数器值列表与全局计数器值列表进行比较,确定是否存在从0变为非0的计数器值,如果是,则执行步骤37,否则,执行步骤38。
    举例说明:
    假设当前计数器值列表中共包括5个计数器值,分别为:0、0、1、1、0;
    同样,全局计数器值列表中也包括5个计数器值,假设分别为:0、0、0、1、0;
    两者比较后发现,当前计数器值列表中存在一个从0变为1的计数器值,因此后续执行步骤37。
    步骤37:将该条测试数据作为挖掘出的测试数据进行保存,并将当前计数器值列表作为全局计数器值列表,之后执行步骤38。
    步骤38:确定是否存在下一条测试数据,如果是,则执行步骤39,否则,结束流程。
    步骤39:向可执行代码输入下一条测试数据,并重复执行步骤34。
    本发明同时公开了一种数据挖掘装置。图4为本发明数据挖掘装置实施例的组成结构示意图。如图4所示,包括:
    挖掘???1,用于针对每条测试数据,分别进行如下处理:将该条测试数据输入给可执行代码,由所述可执行代码运行该条测试数据;确定相比于运行该条测试数据之前,所述可执行代码的各代码块中是否存在运行次数发生了变化的代码块;如果是,则将该条测试数据作为挖掘出的测试数据。
    另外,图4所示装置中还可进一步包括:解析???2;
    相应地,挖掘???1可进一步用于,在将该条测试数据输入给所述可执行代码之后,通知解析???2执行自身功能;
    解析???2,用于获取所述可执行代码对应的各覆盖率信息文件,并从获取到的 各覆盖率信息文件中解析出所述可执行代码中的每个代码块对应的计数器值,发送给挖掘???1;
    挖掘???1确定相比于运行该条测试数据之前,解析出的各计数器值中是否存在取值发生了变化的计数器值;如果是,则确定所述可执行代码的各代码块中存在运行次数发生了变化的代码块。
    再有,
    挖掘???1还可进一步用于,
    在向所述可执行代码输入第一条测试数据之前,生成一个全局计数器值列表,所述全局计数器值列表中共包括M个计数器值,且均为0,所述M的取值与所述可执行代码中包括的代码块数相同;
    解析???2还可进一步用于,利用解析出的各计数器值生成一个当前计数器值列表,发送给挖掘???1;
    挖掘???1还可进一步用于,确定所述当前计数器值列表相比于所述全局计数器值列表是否发生了变化,如果是,则确定解析出的各计数器值中存在取值发生了变化的计数器值,并将所述当前计数器值列表作为所述全局计数器值列表。
    所述取值发生了变化包括:从0变为非0的正整数。
    还有,
    挖掘???1还可进一步用于,在向所述可执行代码输入第一条测试数据之前,启动所述可执行代码;
    挖掘???1还可进一步用于,在将该条测试数据作为挖掘出的测试数据之后,将该条测试数据进行保存。
    图4所示装置实施例的具体工作流程请参照前述方法实施例以及较佳实施例中的相应说明,此处不再赘述。
    上述解析???2可理解为改进后的gcov工具,现有gcov工具会对覆盖率信息文件进行完整解析,而改进后的gcov工具只需要解析出其中的计数器值信息。
    总之,针对每条测试数据,可在运行完该条测试数据之后,通过分析是否存在运行次数发生了变化的代码块来确定该条测试数据是否为挖掘出的测试数据;从而相比于现有技术,省去了通过汇总等得到总覆盖率值的过程,进而提高了数据挖掘的效率; 而且,无需对覆盖率信息文件进行完整解析,只需解析占完整信息中很少一部分的计数器值信息,解析的数据量明显减少,从而进一步提高了数据挖掘的效率;试验显示,采用本发明所述方案后,数据挖掘速度能够比现有方式提升100倍以上。
    综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的?;し段?。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的?;し段е??!  ∧谌堇醋宰ɡ鴚ww.www.4mum.com.cn转载请标明出处

    关于本文
    本文标题:一种数据挖掘方法和装置.pdf
    链接地址://www.4mum.com.cn/p-6111459.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 浪潮孙丕恕从信息时代到智能时代 人工智能价值将爆发式释放 2019-12-21
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 浙江十一选五根据什么来出号码的 三人麻将在线玩 申城棋牌四人斗地主真人版 红警3下载 快乐时时彩走势图表 快乐飞艇在线计划 吉林时时彩网站 上海快三预测号码查询 快乐双彩历史开奖公告 江苏11选5定2胆 博彩大全 李逵劈鱼游戏功能玩法以及介绍 30选5开奖结果走势 广西十一选五开奖结果官网 体彩20选5中奖规则 上海时时乐