一种基于组件化分布式系统的覆盖精准测试方法及其系统技术方案

技术编号:28503599 阅读:16 留言:0更新日期:2021-05-19 22:52
本发明专利技术提供了一种基于组件化分布式系统的覆盖精准测试方法,该方法为步骤S1、差异化分析:对组件化分布式系统开始测试,进行差异化分析,分析有效的代码变更;步骤S2、测试分析及推荐用例:根据变更代码,进行分析影响功能的范围,并根据代码和用例管理关系进行推荐有效用例;步骤S3、用例执行:推荐的用例,如果是自动化用例则自动调度进行执行;若是功能用例,则需要进行手工执行;步骤S4、质量评估:进行差异覆盖率分析,若分析出有遗漏未覆盖的代码,再进行补充用例,进行执行;如果分析出代码覆盖率完成,则生成测试报告,使得定位问题更加清晰准确;能快速修订测试用例,达到测试覆盖率最大化。盖率最大化。盖率最大化。

【技术实现步骤摘要】
一种基于组件化分布式系统的覆盖精准测试方法及其系统


[0001]本专利技术涉及自动化测试
,特别是一种基于组件化分布式系统的覆盖精准测试方法及其系统。

技术介绍

[0002]现有技术中代码改动的测试包含有代码覆盖率测试、准入测试、冒烟测试;该些测试存在的缺点如下:1、敏捷迭代更新快,人力有限;2、多分支代码合并到主分支,修改哪个文件哪个行,测试不可控;3、代码更新影响哪些功能无感知;4、完全依赖于测试人员的能力,经验和业务熟悉度,上线风险大;5、无法更加精准监控代码质量;6、不能做到高效精准,不可衡量。

技术实现思路

[0003]为克服上述问题,本专利技术的目的是提供一种基于组件化分布式系统的覆盖精准测试方法,有效提升测试覆盖率,得到精准的量化数据,使用这些量化数据进行质量评价,极大减少回归测试的盲目性和工作量,快速修订测试用例,达到测试覆盖率最大化。
[0004]本专利技术采用以下方案实现:一种基于组件化分布式系统的覆盖精准测试方法,所述方法包括如下步骤:步骤S1、差异化分析:对组件化分布式系统开始测试,进行差异化分析,分析有效的代码变更;步骤S2、测试分析及推荐用例:根据变更代码,进行分析影响功能的范围,并根据代码和用例管理关系进行推荐有效用例;步骤S3、用例执行:推荐的用例,如果是自动化用例则自动调度进行执行;若是功能用例,则需要进行手工执行;步骤S4、质量评估:进行差异覆盖率分析,若分析出有遗漏未覆盖的代码,再进行补充用例,进行执行;如果分析出代码覆盖率完成,则生成测试报告,使得定位问题更加清晰准确。
[0005]进一步的,所述步骤S1进一步具体为:从代码托管平台获取变更方法列表和新增自动化用例生成的覆盖率报告,在代码分析器中进行查询无效变更,该无效变更包括加入空格或者加入注释;一次性产出变更代码增量覆盖率报告,该变更代码增量覆盖率报告记录变更的详细信息,该详细信息包括:新增、修改、删除代码行、层级关系、类、方法,同时标记出未覆盖到方法和分支代码,为测试覆盖提供衡量数据并针对设计用例获得未覆盖到的代码。
[0006]进一步的,所述步骤S2进一步具体为:从差异化分析出得到变更代码,然后在用例代码关系库中查找到对应变更的代码、方法对应的用例,输出对应用例或者叫推荐测试用例;其中,用例代码关系库,即是基础用例和覆盖代码映射信息库,用例与覆盖代码映射关系即:单个用例与其能覆盖所有代码方法列表映射关系;首先采集用例,即执行用例,用例
采集至用例详细表,该用例详细表包含了用例id、项目id、目录id、创建时间、创建人、用例名称、前提、详细步骤、优先级、预期结果、实际结果;其次是采集用例执行的方法调用关系,即可用插桩的方式进行方法调用链动态获取,插桩的方式工具包括:1、源代码插桩:工具GCT;2、中间代码插桩:代码覆盖率工具JACOCO或EMMA;3、二进制代码插桩:工具XDebug,采集至用例关联函数调用关系信息表,该关系信息表包含了调用方法、被调用方法、调用索引;然后管理用例与方法,即采集至用例关联方法原始信息表,该用例关联方法原始信息表包括方法id、方法名称、类、源文件路径、是否关联、更新时间;最终进行数据存储,得到用例与函数信息表关系总表,该用例与函数信息表关系总表包含了用例id、用例名称、用例所有者、所属项目、用例关联方法原始信息表名、用例关联方法调用关系信息表名、修改时间、创建时间。
[0007]进一步的,所述步骤S2中进行推荐有效用例具体为:有了用例和代码方法列表映射基础信息库后,需要用例筛选;首先通过代码托管平台提供版本对比功能,直接获取2次代码提交commitid间的代码变更文件,并以json格式返回;其次获取到代码变更文件,再基于不同语言方法结构,便可直接获取到变更方法列表,在自动化框架内开发计划动态更新的API,使计划和用例绑定能动态更新,并同时配置环境,变量,权限要素,这样能以计划为单位执行筛选出来的有效用例。
[0008]进一步的,所述步骤S3进一步具体为:根据推荐的用例,首先进行分类,分为自动化用例、功能用例,其次根据分类再进行不同的调度方式和执行方式,自动化用例自动调度用例,自动执行调度用例;功能用例推送给指定人员,让其手动执行功能用例,另外,当一模块的核心接口主流程场景都被自动化用例覆盖到以后,则底层业务逻辑的改动方法列表,同样查询映射库关系获取影响到用例列表,然后将这些用例请求URI或者接口名称去重,聚合,以报告的形式展示出来。
[0009]本专利技术还提供了一种基于组件化分布式系统的覆盖精准测试系统,所述测试系统包括差异化分析模块、测试分析及推荐用例模块、用例执行模块、以及质量评估模块;所述差异化分析模块,用于对组件化分布式系统开始测试,进行差异化分析,分析有效的代码变更;所述测试分析及推荐用例模块,用于根据变更代码,进行分析影响功能的范围,并根据代码和用例管理关系进行推荐有效用例;所述用例执行模块,根据推荐的用例,如果是自动化用例则自动调度进行执行;若是功能用例,则需要进行手工执行;所述质量评估模块,用于进行差异覆盖率分析,若分析出有遗漏未覆盖的代码,再进行补充用例,进行执行;如果分析出代码覆盖率完成,则生成测试报告,使得定位问题更加清晰准确。
[0010]进一步的,所述差异化分析模块的实现方式进一步具体为:从代码托管平台获取变更方法列表和新增自动化用例生成的覆盖率报告,在代码分析器中进行查询无效变更,该无效变更包括加入空格或者加入注释;一次性产出变更代码增量覆盖率报告,该变更代码增量覆盖率报告记录变更的详细信息,该详细信息包括:新增、修改、删除代码行、层级关系、类、方法,同时标记出未覆盖到方法和分支代码,为测试覆盖提供衡量数据并针对设计用例获得未覆盖到的代码。
[0011]进一步的,所述测试分析及推荐用例模块的实现方式进一步具体为:从差异化分析出得到变更代码,然后在用例代码关系库中查找到对应变更的代码、方法对应的用例,输出对应用例或者叫推荐测试用例;其中,用例代码关系库,即是基础用例和覆盖代码映射信息库,用例与覆盖代码映射关系即:单个用例与其能覆盖所有代码方法列表映射关系;首先采集用例,即执行用例,用例采集至用例详细表,该用例详细表包含了用例id、项目id、目录id、创建时间、创建人、用例名称、前提、详细步骤、优先级、预期结果、实际结果;其次是采集用例执行的方法调用关系,即可用插桩的方式进行方法调用链动态获取,插桩的方式工具包括:1、源代码插桩:工具GCT;2、中间代码插桩:代码覆盖率工具JACOCO或EMMA;3、二进制代码插桩:工具XDebug,采集至用例关联函数调用关系信息表,该关系信息表包含了调用方法、被调用方法、调用索引;然后管理用例与方法,即采集至用例关联方法原始信息表,该用例关联方法原始信息表包括方法id、方法名称、类、源文件路径、是否关联、更新时间;最终进行数据存储,得到用例与函数信息表关系总表,该用例与函数信息表关系总表包含了用例id、用例名称、用例所有者、所属项目、用例关联方法原始信息表名、用例关联方法调用关系信息表名本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于组件化分布式系统的覆盖精准测试方法,其特征在于:所述方法包括如下步骤:步骤S1、差异化分析:对组件化分布式系统开始测试,进行差异化分析,分析有效的代码变更;步骤S2、测试分析及推荐用例:根据变更代码,进行分析影响功能的范围,并根据代码和用例管理关系进行推荐有效用例;步骤S3、用例执行:推荐的用例,如果是自动化用例则自动调度进行执行;若是功能用例,则需要进行手工执行;步骤S4、质量评估:进行差异覆盖率分析,若分析出有遗漏未覆盖的代码,再进行补充用例,进行执行;如果分析出代码覆盖率完成,则生成测试报告,使得定位问题更加清晰准确。2.根据权利要求1所述的一种基于组件化分布式系统的覆盖精准测试方法,其特征在于:所述步骤S1进一步具体为:从代码托管平台获取变更方法列表和新增自动化用例生成的覆盖率报告,在代码分析器中进行查询无效变更,该无效变更包括加入空格或者加入注释;一次性产出变更代码增量覆盖率报告,该变更代码增量覆盖率报告记录变更的详细信息,该详细信息包括:新增、修改、删除代码行、层级关系、类、方法,同时标记出未覆盖到方法和分支代码,为测试覆盖提供衡量数据并针对设计用例获得未覆盖到的代码。3.根据权利要求1所述的一种基于组件化分布式系统的覆盖精准测试方法,其特征在于:所述步骤S2进一步具体为:从差异化分析出得到变更代码,然后在用例代码关系库中查找到对应变更的代码、方法对应的用例,输出对应用例或者叫推荐测试用例;其中,用例代码关系库,即是基础用例和覆盖代码映射信息库,用例与覆盖代码映射关系即:单个用例与其能覆盖所有代码方法列表映射关系;首先采集用例,即执行用例,用例采集至用例详细表,该用例详细表包含了用例id、项目id、目录id、创建时间、创建人、用例名称、前提、详细步骤、优先级、预期结果、实际结果;其次是采集用例执行的方法调用关系,即可用插桩的方式进行方法调用链动态获取,插桩的方式工具包括:1、源代码插桩:工具GCT;2、中间代码插桩:代码覆盖率工具JACOCO或EMMA;3、二进制代码插桩:工具XDebug,采集至用例关联函数调用关系信息表,该关系信息表包含了调用方法、被调用方法、调用索引;然后管理用例与方法,即采集至用例关联方法原始信息表,该用例关联方法原始信息表包括方法id、方法名称、类、源文件路径、是否关联、更新时间;最终进行数据存储,得到用例与函数信息表关系总表,该用例与函数信息表关系总表包含了用例id、用例名称、用例所有者、所属项目、用例关联方法原始信息表名、用例关联方法调用关系信息表名、修改时间、创建时间。4.根据权利要求3所述的一种基于组件化分布式系统的覆盖精准测试方法,其特征在于:所述步骤S2中进行推荐有效用例具体为:有了用例和代码方法列表映射基础信息库后,需要用例筛选;首先通过代码托管平台提供版本对比功能,直接获取2次代码提交commitid间的代码变更文件,并以json格式返回;其次获取到代码变更文件,再基于不同语言方法结构,便可直接获取到变更方法列表,在自动化框架内开发计划动态更新的API,使计划和用例绑定能动态更新,并同时配置环境,变量,权限要素,这样能以计划为单位执行筛选出来的有效用例。5.根据权利要求1所述的一种基于组件化分布式系统的覆盖精准测试方法,其特征在
于:所述步骤S3进一步具体为:根据推荐的用例,首先进行分类,分为自动化用例、功能用例,其次根据分类再进行不同的调度方式和执行方式,自动化用例自动调度用例,自动执行调度用例;功能用例推送给指定人员,让其手动执行功能用例,另外,当一模块的核心接口主流程场景都被自动化用例覆盖到以后,则底层业务逻辑的改动方法列表,同样查询映射库关系获取影响到用例列表,然后将这些用例请求URI或者接口名称去重,聚合,以报告的形式展示出来。6.一种基于组件化分布式系统的覆盖精准测试系统,其特征在于:所述测试系统包括差...

【专利技术属性】
技术研发人员:刘德建范剑敏吴林旭林剑锋林琛
申请(专利权)人:福建天泉教育科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1