计算;推算;计数设备的制造及其应用技术1.本发明涉及devops(持续交付)技术领域、软件研发领域,软件测试领域,是一种通过agent接入方式探测功能测试阶段的迭代代码覆盖率,作为测试准出指标的方法。背景技术:2.devops(持续交付):由配置管理、构建与持续集成、测试管理、部署与发布管理、环境管理、数据管理、度量与反馈7大能力子域,共14个能力项构成。使用闭环的工具、平台组合,强约束力代码分支策略手段,高覆盖率的自动化测试手段,强大的部署自动化手段确保项目管理流畅,高质量交付,部署可重复性。但在devops(持续交付)过程中,项目组对测试范围判断不足,导致漏测,造成缺陷逃逸情况,比如以下场景:3.①开发团队与测试团队沟通不畅,测试团队接收到错误的测试范围;4.②开发团队人员流动过快,当前开发团队人员对历史代码改动无法判断影响范围:5.③系统内自动化回归覆盖率过低,项目周期过短,手工测试只能覆盖高频交易;6.④研发提交的代码逻辑未被感知,测试团队以黑盒测试为主,无法覆盖导致重大缺陷。7.技术缺陷:8.目前上线后出现生产事故,有很大比例的原因是因为第①和第②点导致的测试范围问题,尤其第①点,项目组如果项目经理组织能力不足,就会导致沟通失误,出现漏范围,错范围或者很多无效范围,削弱测试团队效能。现有确定测试范围或者确认代码覆盖率的方案如下:9.①项目组头脑风暴;10.②开发提供修改点,测试团队自行分析;11.③单元测试提供覆盖率;12.④全量自动化回归;13.其中①过程在过于主观,测试过程也无法对应上各范围的实际覆盖情况;②只能做到需求覆盖,代码片段覆盖无法感知;③④对于漏测方面,效能有限,依然为主观分析的范围。技术实现要素:14.本发明的目的在于解决在测试过程中,因各方对测试范围未做出正确判断,导致部分重要分支未覆盖,从而漏测出现严重生产事故的问题。15.为了解决上述技术问题,本发明采用以下技术手段:16.一种探测功能测试代码覆盖率的方法,包括以下步骤:17.步骤1:采用pipeline工具,在开发人员提交代码至测试分支时,自动触发打包流程;18.步骤2:pipeline工具在被测系统服务的启动命令中自动添加jacoco工具启动参数,用于自动加载覆盖率监测工具jacoco,启动agent监听;19.开发人员将代码提交至测试分支,触发pipeline工具进行自动编译打包;20.打包完毕后,在被测系统的启动命令中添加jacoco工具启动参数,动态引入覆盖率监测工具jacoco,并在部署完毕后启动监听:21.环境部署完毕,pipeline工具触发通知,通知测试人员介入;22.步骤3:测试人员测试,完成手工+自动化测试,用于实时记录测试过程中对代码的覆盖情况;23.步骤4:测试完毕后测试经理审批测试结果触发pipeline工具,用于生成测试阶段的jacoco报告。24.上述技术方案中,步骤1主要是建设自动打包部署机制,具体包括以下步骤:25.步骤1.1:在代码仓库git上,给目标project激活push events,添加webhooks,地址为pipeline工具触发地址,用于开发人员在push被测试代码至测试分支(sit)时触发pipeline工具;26.步骤1.2:在pipeline工具上,添加stage流程如下:27.stage1、自动拉取远程仓库测试分支(sit)的代码编辑并打包,并上传制品仓库;28.stage2、对目标服务器进行停机,下载制品进行替换;29.stage3、添加jacoco启动参数至服务部署参数中;30.stage4、启动服务;31.stage5、部署结果通知;32.stage6、人工审核;33.stage7、生成代码覆盖率报告。34.上述技术方案中,步骤2主要是部署时自动引入jacoco工具并自动启动监听,具体包括以下步骤:35.步骤2.1:研发经理审批代码后将代码提交至测试分支,用于自动触发pipeline工具的stage1、stage2完成编译打包停机操作;36.步骤2.2:版本替换完毕后,pipeline自动启动stage3,在启动命令中自动加入jacoco相关依赖jar,用于引入代码覆盖率扫描工具;37.步骤2.3:扫描工具引入启动命令后,pipeline自动启动stage4,启动服务,并同时通过agent模式启动jacoco,进行流量监听;38.步骤2.4:服务启动完成后,pipeline工具自动启动stage5,通知测试人员介入;39.上述技术方案中,步骤3为正常的测试阶段,测试人员根据测试范围正常参与测试,jacoco会自动记录测试过程中的代码覆盖情况,此时pipeline处于暂停于stage6,等待测试人员审核。40.上述技术方案中,步骤4为报告获取,具体包括以下步骤:41.步骤4.1:步骤3结束,即功能测试完毕后,测试人员审核通过;42.步骤4.2:测试人员审核通过,pipeline自动跳转至stage7,生成覆盖率详情报告;43.步骤4.3:如需进一步分析,可以对覆盖率详情报告进行处理:44.①筛选出本此需求内容,进行覆盖率精确化,确认新增、修改点已被测试过程覆盖;45.②对于测试过程中,出现过重启的情况,可对多个文件的覆盖范围进行合并,作为综合指标。46.因为本发明采用上述技术手段,因此具备以下有益效果:47.①采用本发明,对被测系统完成功能测试后,能够提供测试过程对被测代码片段覆盖的详细情况,可及时对未覆盖的代码进行补测防止关键代码漏测。48.②采用本发明,可作为测试人员判断测试范围的更加客观的辅助材料,避免测试人员只能做到了需求覆盖,对代码片段覆盖无法感知的情况。49.③采用本发明,监控为无感启动,不需要人工干预,测试完成后,自动生成报告,无过多人工干预,方便项目组推广。具体实施方式50.以下将对本发明的实施例给出详细的说明。尽管本发明将结合一些具体实施方式进行阐述和说明,但需要注意的是本发明并不仅仅只局限于这些实施方式。相反,对本发明进行的修改或者等同替换,均应涵盖在本发明的权利要求范围当中。51.另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员将理解,没有这些具体细节,本发明同样可以实施。52.一种探测功能测试代码覆盖率的方法,包括以下步骤:53.步骤1:采用pipeline工具,在开发人员提交代码至测试分支时,自动触发打包流程;54.步骤2:pipeline工具在被测系统服务的启动命令中自动添加jacoco工具启动参数,用于自动加载覆盖率监测工具jacoco,启动agent监听;55.开发人员将代码提交至测试分支,触发pipeline工具进行自动编译打包;56.打包完毕后,在被测系统的启动命令中添加jacoco工具启动参数,动态引入覆盖率监测工具jacoco,并在部署完毕后启动监听:57.环境部署完毕,pipeline工具触发通知,通知测试人员介入;58.步骤3:测试人员测试,完成手工+自动化测试,用于实时记录测试过程中对代码的覆盖情况;59.步骤4:测试完毕后测试经理审批测试结果触发pipeline工具,用于生成测试阶段的jacoco报告。60.上述技术方案中,步骤1主要是建设自动打包部署机制,具体包括以下步骤:61.步骤1.1:在代码仓库git上,给目标project激活push events,添加webhooks,地址为pipeline工具触发地址,用于开发人员在push被测试代码至测试分支(sit)时触发pipeline工具;62.步骤1.2:在pipeline工具上,添加stage流程如下:63.stage1、自动拉取远程仓库测试分支(sit)的代码编辑并打包,并上传制品仓库;64.stage2、对目标服务器进行停机,下载制品进行替换;65.stage3、添加jacoco启动参数至服务部署参数中;66.stage4、启动服务;67.stage5、部署结果通知;68.stage6、人工审核;69.stage7、生成代码覆盖率报告。70.上述技术方案中,步骤2主要是部署时自动引入dacoco工具并自动启动监听,具体包括以下步骤:71.步骤2.1:研发经理审批代码后将代码提交至测试分支,用于自动触发pipeline工具的stage1、stage2完成编译打包停机操作;72.步骤2.2:版本替换完毕后,pipeline自动启动stage3,在启动命令中自动加入jacoco相关依赖jar,用于引入代码覆盖率扫描工具;73.步骤2.3:扫描工具引入启动命令后,pipeline自动启动stage4,启动服务,并同时通过agent模式启动jacoco,进行流量监听;74.步骤2.4:服务启动完成后,pipeline工具自动启动stage5,通知测试人员介入;75.上述技术方案中,步骤3为正常的测试阶段,测试人员根据测试范围正常参与测试,jacoco会自动记录测试过程中的代码覆盖情况,此时pipeline处于暂停于stage6,等待测试人员审核。76.上述技术方案中,步骤4为报告获取,具体包括以下步骤:77.步骤4.1:步骤3结束,即功能测试完毕后,测试人员审核通过;78.步骤4.2:测试人员审核通过,pipeline自动跳转至stage7,生成覆盖率详情报告;79.步骤4.3:如需进一步分析,可以对覆盖率详情报告进行处理:80.①筛选出本此需求内容,进行覆盖率精确化,确认新增、修改点已被测试过程覆盖;81.②对于测试过程中,出现过重启的情况,可对多个文件的覆盖范围进行合并,作为综合指标。
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
一种探测功能测试代码覆盖率的方法与流程
作者:admin
2022-10-19 07:05:39
682
关键词:
计算;推算;计数设备的制造及其应用技术
专利技术