【技术实现步骤摘要】
一种代码覆盖率确定方法及装置
[0001]本专利技术涉及数据处理领域,具体而言,涉及一种代码覆盖率确定方法及装置。
技术介绍
[0002]随着软件技术的快速发展,软件测试工作也在不断自我进化,行业测试标准逐步形成,新的测试工具手段纷纷落地,测试作为软件提质增效和防控风险的基础保障作用日益显现。面对国家信创战略的新要求以及开放银行等新型商业模式的新需求,银行软件测试工作要把握趋势,加强能力建设,不断延伸领域、创新方法、形成标准,成为金融科技创新的支持者、守护者和引领者,在银行数字化转型过程中体现出更大的自身价值。
[0003]软件测试的代码覆盖率,指的是测试时,代码被执行到的比例或程度,通过代码覆盖率,可以一定程度上度量代码的质量。
[0004]现有技术方案或开源方案,对于测试覆盖率的支持,仅止于全量代码的覆盖率或增量覆盖率,应用场景较为简单。
[0005]在软件测试领域中,现有的覆盖率计算技术存在以下缺点:
[0006]测试局限性,现有的覆盖率技术仅支持对同一个版本的软件覆盖率指标进行度量。而 ...
【技术保护点】
【技术特征摘要】
1.一种代码覆盖率确定方法,其特征在于,包括:根据被测软件的需求查询关联的多个代码版本;确定所述需求涉及代码的代码影响范围;对所述多个代码版本的覆盖率进行累加,得到所述需求的累计覆盖率;根据所述代码影响范围与所述累计覆盖率确定所述被测代码的覆盖率。2.根据权利要求1所述的方法,其特征在于,在根据所述代码影响范围与所述累计覆盖率确定所述被测代码的覆盖率之后,所述方法还包括:根据所述需求的代码影响范围,对所述被测软件覆盖到的代码进行染色。3.根据权利要求1所述的方法,其特征在于,确定所述需求涉及代码的代码影响范围包括:利用版本比对工具对需求关联的所述多个代码版本中的起始版本、当前版本的java代码进行对比,得到代码的变更行号集合DL[line],将之保存到存储介质中;利用抽象语法树AST对所述当前版本的java代码进行解析,识别出函数集合F[function];根据所述变更行号集合DL[line],对所述函数集合F[function]进行筛选,得到所述需求的变更函数集合DF[function],其中,所述代码影响范围为所述变更函数集合DF[function]。4.根据权利要求3所述的方法,其特征在于,根据所述代码影响范围与所述累计覆盖率确定所述被测代码的覆盖率包括:利用所变更函数集合DF[function]对所述累计覆盖率进行筛选,得到所述需求覆盖率。5.根据权利要求1至4中任一项所述的方法,其特征在于,对所述多个代码版本的覆盖率进行累加,得到所述需求的累计覆盖率包括:利用代码覆盖率工具jacoco,对所述被测软件的单个应用程序进行插桩,定频采集所述多个代码版本的覆盖率信息,以xml文件格式保存于存储介质中;从存储介质中获取多个XML文件;按照时间先后顺序对所述多个XML文件进行排序,得到File 1、File 2、File 3、...、File n;将最新的所述File n作为基准,依次将File 1、File 2、File 3、...、File n
‑
1合并到所述File n中,得到合并结果;根据所述合并结果确定所...
【专利技术属性】
技术研发人员:蒋其恩,王靖文,龚荣荣,史新丽,栗冰,邓建全,李红建,丁永建,李璠,
申请(专利权)人:光大科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。