(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211344125.7
(22)申请日 2022.10.31
(71)申请人 深圳联友科技有限公司
地址 518031 广东省深圳市福田区深南中
路2010号东风大厦22楼2211、 2212、
2213房
(72)发明人 江伟铿
(74)专利代理 机构 深圳市顺天达专利商标代理
有限公司 4 4217
专利代理师 高占元
(51)Int.Cl.
G06F 11/36(2006.01)
(54)发明名称
一种基于覆盖率分析和链路追踪的精准测
试方法
(57)摘要
本发明公开了一种基于覆盖率分析和链路
追踪的精准测试方法, 涉及软件测试技术领域。
本发明包括: 通过探针技术, 动态插桩, 识别增量
代码, 记录测试过程中代码覆盖率信息, 并定时
主动上传到服务端; 服务端根据覆盖率信息结合
源码染色, 生成覆盖率报告。 通过分析未覆盖代
码, 挖掘漏测场景及无效代码; 通过链路追踪, 记
录用例的链路轨迹, 版本提交时, 分析增量代码,
梳理变更的方法, 匹配用例的链路轨迹, 实现用
例的精准推荐。 通过覆盖率数据, 对未覆盖代码
分析, 挖掘遗漏场景, 减少漏测; 通过采集用例链
路数据, 实现用例的自动链路梳理和分析, 辅助
快速定位问题; 通过分析增量代码, 对比用例链
路数据, 实现精准推荐测试用例, 缩 小测试范围。
权利要求书2页 说明书6页 附图6页
CN 115391233 A
2022.11.25
CN 115391233 A
1.一种基于覆盖率分析和链路追踪的精准测试 方法, 其特 征在于, 包括以下步骤:
步骤一: 数据采集:
S11: 用例执 行时, 用例对应的每 个请求在header里均带有用例标;
S12: 请求执行时, 链路追踪探针采集运行日志到监控平台, 运行日志包含用例标和
traceid信息;
若请求在service中调用其他服务, 则获取到请求在各service的调用信息, 通用日志
SDK采集调用信息日志到监控平台;
S13: 测试用例执 行完毕后, 对 采集的数据进行落库;
步骤二: 流水线调用: 获取增量文件 并对增量代码分析落库、 对推荐用例结果集去重后
完成精准推荐用例, 并在自动化测试平台根据用例id自动回归, 实现精准测试。
2.根据权利要求1所述的一种基于覆盖率分析和链路追踪的精准测试方法, 其特征在
于, 所述t raceid信息的获取 方式为:
用例对应的每个请求在到达service时, 探针均需检测traceid, 若不存在traceid, 或
者traceid为0 /Null, 则探针为请求创建唯一的t raceid;
用例标与t raceid 为一对多的对应关系。
3.根据权利要求1所述的一种基于覆盖率分析和链路追踪的精准测试方法, 其特征在
于, 获取到请求在各service的调用信息的步骤为:
当请求在service中调用其他服务时, 探针将当前请求的traceid透传下去, 在每个
service中都存在对应tracei d的调用记录, 从调用记录中获取到请求在各service的调用
信息。
4.根据权利要求3所述的一种基于覆盖率分析和链路追踪的精准测试方法, 其特征在
于, 所述调用信息包括用例标、 t raceid、 服 务名、 类名、 文件的方法。
5.根据权利要求1所述的一种基于覆盖率分析和链路追踪的精准测试方法, 其特征在
于, 采集的数据进行落库的方法为:
测试用例执行完毕后, 自动化测试平台调用精准测试平台接口, 把项目id和用例标传
至精准测试平台;
精准测试平台根据用例标从监控平台查询运行日志, 获取到用例对应的所有的
traceid, 并根据@timestamp字段对t raceid升序排序;
按顺序遍历每一个traceid, 从监控平台查询调用信息日志,获取traceid对应 的所有
调用信息记录并按@timestamp字段对t raceid升序排序;
每一条记录对应一个调用, 每一个调用插 入一条数据库记录;
所述数据库记录 字段包含: 项目id、 用例id、 t raceid、 servic、 clas s、 method。
6.根据权利要求1所述的一种基于覆盖率分析和链路追踪的精准测试方法, 其特征在
于, 所述流水线调用的步骤为:
发起DevOps流水线, 从GitLab中拉取项目代码并编译部署完成;
流水线发起精准测试分析, 并传递项目id给精准测试平台。
7.根据权利要求6所述的一种基于覆盖率分析和链路追踪的精准测试方法, 其特征在
于, 所述精准推荐用例的方法为:
S31: 根据项目id获取自动化测试平台中关联的项目信息, 项目信息包括: 项目名称、 服权 利 要 求 书 1/2 页
2
CN 115391233 A
2务名称、 GitLab代码地址;
S32: 根据codeurl通过git diff 获取到项目当前版本与上一版本的增量文件清单, 并
过滤非代码文件, 利用javaparser分析java类文件, 获取增量文件 对应的差异id;
S33: 增量代码分析落库;
S34: 用例精准推荐: 根据差异id获取明细表中对应的记录, 遍历每一条记录, 根据项目
id、 服务名称、 类、 方法与调用信息做匹配, 当项目id、 服务名称、 类、 方法全部匹配成功后,
则获取对应的用例id, 加入到推荐用例结果集中; 遍历 完成后对推荐用例结果集去重, 完成
精准推荐用例。
8.根据权利要求7所述的一种基于覆盖率分析和链路追踪的精准测试方法, 其特征在
于, 利用javaparser分析java类文件的方法为:
如果文件是新增的, 则返回该文件所有的方法;
如果文件是修改的, 则比对新旧两个分支/Tag/版本文件对应的方法清单, 如果方法是
新增的, 加入返回方法结果集; 如果方法已存在, 则比对方法的MD5值, 如果一致则方法不
变, 如果不一致则表示方法是变更的, 加入返回方法结果 集。
9.根据权利要求8所述的一种基于覆盖率分析和链路追踪的精准测试方法, 其特征在
于, 所述增量代码分析落库的方法为:
主表: 每次增量代码 分析均插入一条记录, 记录包含差异id、 项目id、 GitL ab代码路径、
创建时间;
明细表: 每一个新增/变更的方法, 对应一条明细记录, 明细记录信息包含: 差异id、 类、
方法。
10.根据权利要求7所述的一种基于覆盖率分析和链路追踪的精准测试方法, 其特征在
于, 完成精准推荐用例后, 调用自动化测试平台接口, 传入精准推荐用例集, 自动化测试平
台根据用例id自动回归, 实现精准测试。权 利 要 求 书 2/2 页
3
CN 115391233 A
3
专利 一种基于覆盖率分析和链路追踪的精准测试方法
文档预览
中文文档
15 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共15页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 07:12:00上传分享