System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 程序测试方法、装置、电子设备和存储介质制造方法及图纸_技高网

程序测试方法、装置、电子设备和存储介质制造方法及图纸

技术编号:40015238 阅读:8 留言:0更新日期:2024-01-16 15:54
本公开提供了一种程序测试方法、装置、电子设备和存储介质,可以应用于软件测试技术领域。该程序测试方法包括:响应于针对目标程序的测试请求,向目标程序的源代码的多个方法中分别插入探针字段,其中,探针字段配置有统计值属性,统计值属性用于记录插装探针字段的方法的调用次数;基于当前测试用例,对目标程序进行测试,得到多个探针字段的统计值属性信息;基于多个探针字段的统计值属性信息,从多个方法中确定未覆盖方法;在未覆盖方法的数量大于预设阈值的情况下,基于未覆盖方法生成目标测试用例;以及,基于目标测试用例,对目标程序进行测试。

【技术实现步骤摘要】

本公开涉及软件测试,更具体地,涉及一种程序测试方法、装置、电子设备、存储介质和程序产品。


技术介绍

1、程序测试是对程序产品进行验证和确认的活动过程,是程序开发过程中的一个重要组成部分。对程序产品进行测试,可以在开发阶段发现程序产品中存在的各种问题,从而保障程序产品在上线后可以正常运行。

2、随着程序产品迭代速度的加快,对程序测试的效率的要求也随之提高。而相关技术中的程序测试方法依赖于测试人员的测试经验,一般使用常规的用例设计方法来进行测试。因此,相关技术中的程序测试方法存在着测试效率低、漏测率高的技术问题。


技术实现思路

1、有鉴于此,本公开提供了一种程序测试方法、一种程序测试装置、一种电子设备、一种可读存储介质和一种计算机程序产品。

2、本公开的一个方面提供了一种程序测试方法,包括:响应于针对目标程序的测试请求,向上述目标程序的源代码的多个方法中分别插入探针字段,其中,上述探针字段配置有统计值属性,上述统计值属性用于记录插装上述探针字段的方法的调用次数;基于当前测试用例,对上述目标程序进行测试,得到多个上述探针字段的统计值属性信息;基于多个上述探针字段的统计值属性信息,从上述多个方法中确定未覆盖方法;在上述未覆盖方法的数量大于预设阈值的情况下,基于上述未覆盖方法生成目标测试用例;以及基于上述目标测试用例,对上述目标程序进行测试。

3、根据本公开的实施例,上述方法还包括:从代码库中上述目标程序的多个历史版本中确定目标历史版本;基于上述目标历史版本的源代码,确定目标增量方法;

4、根据本公开的实施例,上述向上述目标程序的源代码的多个方法中分别插入探针字段,包括:向上述目标程序的上述目标增量方法中插入上述探针字段。

5、根据本公开的实施例,上述基于上述目标历史版本的源代码,确定目标增量方法,包括:基于上述目标程序的源代码,生成第一代码树,其中,上述第一代码树包括位于多个层级的多个第一节点,每个上述第一节点表征为一个方法;基于上述目标历史版本源代码,生成第二代码树,其中,上述第二代码树包括位于多个层级的多个第二节点,每个上述第一节点表征为一个方法;对上述第一代码树和上述第二代码树进行比较分析,以确定增量方法;以及对上述增量方法进行筛选,得到上述目标增量方法。

6、根据本公开的实施例,上述增量方法包括差异方法和新增方法。

7、根据本公开的实施例,上述对上述第一代码树和上述第二代码树进行比较分析,以确定增量方法,包括:对于上述多个第一节点中的每个第一节点,确定上述第一节点的标识信息和上述第一节点在上述第一代码树中的位置信息;在基于上述标识信息和上述位置信息确定上述第二代码树中存在与上述第一节点对应的目标第二节点的情况下,对上述第一节点表征的方法的摘要值和上述目标第二节点表征的方法的摘要值进行比较,得到比较结果;在上述比较结果表征为上述第一节点表征的方法的摘要值与上述第二节点表征的方法的摘要值不一致的情况下,确定上述第一节点表征的方法为差异方法;以及在基于上述标识信息和上述位置信息确定上述第二代码树中不存在与上述第一节点对应的第二节点的情况下,确定上述第一节点表征的方法为新增方法。

8、根据本公开的实施例,上述对上述增量方法进行筛选,得到上述目标增量方法,包括:对于上述增量方法中的每一个上述增量方法,确定与上述增量方法对应的文件的配置信息;以及在确定上述文件的配置信息满足预设条件的情况下,确定上述增量方法为上述目标增量方法。

9、根据本公开的实施例,上述向上述目标程序的源代码的多个方法中分别插入探针字段,包括:执行预设指令,以启动代理程序;以及在使用类加载器加载上述目标程序之前,使用上述代理程序在上述目标程序的源代码的多个方法中分别插入上述探针字段。

10、根据本公开的实施例,上述方法还包括:在上述未覆盖方法的数量小于或等于上述预设阈值的情况下,基于上述未覆盖方法生成测试报告。

11、本公开的另一个方面提供了一种程序测试装置,包括:第一处理模块,用于响应于针对目标程序的测试请求,向上述目标程序的源代码的多个方法中分别插入探针字段,其中,上述探针字段配置有统计值属性,上述统计值属性用于记录插装上述探针字段的方法的调用次数;第一测试模块,用于基于当前测试用例,对上述目标程序进行测试,得到多个上述探针字段的统计值属性信息;第一确定模块,用于基于多个上述探针字段的统计值属性信息,从上述多个方法中确定未覆盖方法;第一生成模块,用于在上述未覆盖方法的数量大于预设阈值的情况下,基于上述未覆盖方法生成目标测试用例;以及第二测试模块,用于基于上述目标测试用例,对上述目标程序进行测试。

12、本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个指令,其中,当上述一个或多个指令被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的方法。

13、本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上所述的方法。

14、本公开的另一方面提供了一种计算机程序产品,上述计算机程序产品包括计算机可执行指令,上述指令在被执行时用于实现如上所述的方法。

15、根据本公开的实施例,通过在目标程序的源代码的多个方法中分别插入探针字段的方式,在利用当前测试用例对目标程序进行测试时可以统计各个方法的调用次数,再根据统计得到的统计值属性信息,可以确定未覆盖方法,从而可以确定当前测试阶段对目标程序的各个方法的测试覆盖率;之后,在测试覆盖率不满足测试要求的情况下,可以根据未覆盖方法来生成新的目标测试用例,并使用目标测试用例继续对目标程序进行测试。通过上述技术手段,可以在测试过程中明确已测试的范围,从而可以在后续测试过程中避免对已测试的部分进行重复测试,所以至少部分地克服了相关技术中的程序测试方法存在着测试效率低、漏测率高的技术问题,有效提高了代码测试的覆盖率和测试效率,节约了测试成本。

本文档来自技高网...

【技术保护点】

1.一种程序测试方法,包括:

2.根据权利要求1所述的方法,还包括:

3.根据权利要求2所述的方法,其中,所述基于所述目标历史版本的源代码,确定目标增量方法,包括:

4.根据权利要求3所述的方法,其中,所述增量方法包括差异方法和新增方法;

5.根据权利要求3所述的方法,其中,所述对所述增量方法进行筛选,得到所述目标增量方法,包括:

6.根据权利要求1所述的方法,其中,所述向所述目标程序的源代码的多个方法中分别插入探针字段,包括:

7.根据权利要求1所述的方法,还包括:

8.一种程序测试方法,包括:

9.一种电子设备,包括:

10.一种计算机可读存储介质,其上存储有可执行指令,所述可执行指令被处理器执行时使处理器实现权利要求1至7中任一项所述的方法。

11.一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述计算机可执行指令在被执行时用于实现权利要求1至7中任一项所述的方法。

【技术特征摘要】

1.一种程序测试方法,包括:

2.根据权利要求1所述的方法,还包括:

3.根据权利要求2所述的方法,其中,所述基于所述目标历史版本的源代码,确定目标增量方法,包括:

4.根据权利要求3所述的方法,其中,所述增量方法包括差异方法和新增方法;

5.根据权利要求3所述的方法,其中,所述对所述增量方法进行筛选,得到所述目标增量方法,包括:

6.根据权利要求1所述的方法,其中,所述向所述目标程序的源代码的...

【专利技术属性】
技术研发人员:杜兴文王哲谢晓群
申请(专利权)人:北京沃东天骏信息技术有限公司
类型:发明
国别省市:

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

1