应用程序的代码覆盖测试方法、装置以及电子设备制造方法及图纸

技术编号:28144007 阅读:27 留言:0更新日期:2021-04-21 19:25
本申请公开了一种应用程序的代码覆盖测试方法、装置、电子设备、存储介质以及程序产品,涉及计算机技术领域的信息流、以及大数据领域。具体实现方案为:监听测试请求,其中,测试请求用于请求对待测试应用程序的至少一个子服务功能进行测试,待测试应用程序具有多个子服务功能,分别对测试请求所指示的每一子服务功能进行测试,得到每一子服务功能的代码覆盖信息,根据每一子服务功能的代码覆盖信息确定待测试应用程序的代码覆盖信息,通过对每一子服务功能进行测试,得到与每一子服务功能对应的代码覆盖信息,可以实现代码测试的灵活性和多样性,且实现了确定出的任一子服务功能的代码覆盖信息的准确性。代码覆盖信息的准确性。代码覆盖信息的准确性。

【技术实现步骤摘要】
应用程序的代码覆盖测试方法、装置以及电子设备


[0001]本申请涉及计算机
,尤其涉及一种应用程序的代码覆盖测试方法、装置、电子设备、存储介质以及程序产品,可用于信息流、以及大数据领域。

技术介绍

[0002]随着互联网和计算机技术地发展,应用程序测试的相关技术也有了新的突破,而代码覆盖信息,如代码覆盖率(Code Coverage)是应用程序测试中一种度量。
[0003]在现有技术中,代码覆盖信息通常基于golang工具链对待测试代码进行插桩、编译和执行得到,然而,基于该方法获取到的代码覆盖信息为混合覆盖信息,为了得到应用程序的不同子服务功能各自对应的代码覆盖信息,通常在混合覆盖信息的基础上进行补全。
[0004]然而,通过上述方法,可能造成补全的可靠性和全面性偏低的问题。

技术实现思路

[0005]本申请提供了一种用于提高确定子服务功能的代码覆盖信息的应用程序的代码覆盖测试方法、装置、电子设备、存储介质以及程序产品。
[0006]根据本申请的一方面,提供了一种应用程序的代码覆盖测试方法,包括:
[0007]监听测试请求,其中,所述测试请求用于请求对待测试应用程序的至少一个子服务功能进行测试,所述待测试应用程序具有多个子服务功能;
[0008]分别对所述测试请求所指示的每一子服务功能进行测试,得到所述每一子服务功能的代码覆盖信息;
[0009]根据所述每一子服务功能的代码覆盖信息确定所述待测试应用程序的代码覆盖信息。
[0010]根据本申请的另一方面,提供了一种应用程序的代码覆盖测试装置,包括:
[0011]监听模块,用于监听测试请求,其中,所述测试请求用于请求对待测试应用程序的至少一个子服务功能进行测试,所述待测试应用程序具有多个子服务功能;
[0012]测试模块,用于分别对所述测试请求所指示的每一子服务功能进行测试,得到所述每一子服务功能的代码覆盖信息;
[0013]第一确定模块,用于根据所述每一子服务功能的代码覆盖信息确定所述待测试应用程序的代码覆盖信息。
[0014]根据本申请的另一方面,提供了一种电子设备,包括:
[0015]至少一个处理器;以及
[0016]与所述至少一个处理器通信连接的存储器;其中,
[0017]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上实施例所述的方法。
[0018]根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如上实施例所述的方法。
[0019]根据本申请的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据如上实施例所述的方法。
[0020]应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0021]附图用于更好地理解本方案,不构成对本申请的限定。其中:
[0022]图1是根据本申请第一实施例的示意图;
[0023]图2是根据本申请第二实施例的示意图;
[0024]图3是根据本申请第三实施例的示意图;
[0025]图4是根据本申请第四实施例的示意图;
[0026]图5是根据本申请第五实施例的示意图;
[0027]图6是根据本申请第六实施例的示意图;
[0028]图7是根据本申请第七实施例的示意图;
[0029]图8是根据本申请第八实施例的示意图;
[0030]图9是根据本申请第九实施例的示意图。
具体实施方式
[0031]以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0032]随着互联网和计算机技术地发展,应用程序的数量迅速增加,而应用程序基于代码编写,从而实现相应的应用服务,如通讯服务、购物服务、住宿服务、以及旅游服务等。
[0033]为了提高应用程序的可靠运行,在基于代码编写完成应用程序之后,可以对应用程序进行测试,而代码覆盖信息,如代码覆盖率是应用程序测试中的一种度量。
[0034]其中,代码覆盖率表征应用程序中的代码被测试的比例和程度。例如,完成某应用程序的共包括n行代码,在对应用程序进行测试的过程中,运行的代码为m行,则代码覆盖率为m/n。
[0035]相应地,若代码覆盖率越大,则说明应用程序中的代码的利用率越高;若代码覆盖率越小,则说明应用程序中的代码的利用率越低。而若利用率较低,则说明应用程序中的代码的冗余程度较大,可以对代码进行适应性调整,实现提高代码资源的利用率。
[0036]值得说明地是,应用程序可能包括多个子服务功能,如针对通讯应用程序,可能包括:获取通讯录信息的子服务功能和会话子服务功能等。也即,针对应用程序的不同子服务功能,基于与其对应的代码实现。
[0037]在相关技术中,在对应用程序的代码覆盖测试时,通常是对应用程序的所有代码进行测试,得到混合覆盖信息,而当需要得到某子服务功能的代码覆盖信息时,需要在混合覆盖信息的基础上进行补全。
[0038]例如,通讯应用程序包括:获取通讯录信息的子服务功能和会话子服务功能,在对
通讯应用程序的代码覆盖测试时,测试的为通讯应用程序的所有的代码,即测试的代码包括:获取通讯录信息的子服务功能的代码和会话子服务功能的代码,得到的代码覆盖信息为包括:获取通讯录信息的子服务功能的代码覆盖信息和会话子服务功能的代码覆盖信息的混合覆盖信息,若需要确定获取通讯录信息的子服务功能的代码覆盖信息时,需要在缓和覆盖信息的基础上进行相应地处理,如补全等处理,从而得到获取通讯录信息的子服务功能的代码覆盖信息。
[0039]然而,通过补全等方式得到的代码覆盖信息,可能会造成代码覆盖信息的准确性和可靠性偏低的问题。
[0040]本申请的专利技术人经过创造性地劳动,得到了本申请的专利技术构思:对测试请求进行监测,并对应用程序的每一子服务功能进行测试,得到每一子服务功能对应的代码覆盖信息。
[0041]基于上述专利技术构思,本申请提供一种应用程序的代码覆盖测试方法、装置、电子设备、存储介质以及程序产品,应用于计算机
中的信息流和大数据领域,以达到每一子服务功能对应的代码覆盖信息的准确性和可靠性。
[0042]图1是根据本申请第一实施例的示意图,如图1所示,本实施例的应用程序的代码覆盖测试方法,包括:
[0043]S101:监听测试请求,其中,测试请求用于请求对待测试应用程序的至少一个子服务功能进本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用程序的代码覆盖测试方法,包括:监听测试请求,其中,所述测试请求用于请求对待测试应用程序的至少一个子服务功能进行测试,所述待测试应用程序具有多个子服务功能;分别对所述测试请求所指示的每一子服务功能进行测试,得到所述每一子服务功能的代码覆盖信息;根据所述每一子服务功能的代码覆盖信息确定所述待测试应用程序的代码覆盖信息。2.根据权利要求1所述的方法,其中,用于执行测试请求的线程的数量为多个;分别对所述测试请求所指示的每一子服务功能进行测试,得到所述每一子服务功能的代码覆盖信息,包括:确定执行所述每一子服务功能对应的线程;基于所述每一子服务功能对应的线程,对所述每一子服务功能进行测试,得到与所述每一子服务功能对应的代码覆盖信息。3.根据权利要求2所述的方法,其中,确定执行所述每一子服务功能对应的线程,包括:基于预设的调度周期,从各线程中选择执行所述每一子服务功能对应的线程。4.根据权利要求3所述的方法,其中,在未监测到测试请求时,各线程的状态均为睡眠状态;基于预设的调度周期,从各线程中选择执行所述每一子服务功能对应的线程,包括:基于所述调度周期,从各线程中唤醒执行所述每一子服务功能的线程,并基于唤醒的线程执行所述每一子服务功能。5.根据权利要求4所述的方法,基于所述调度周期,从各线程中唤醒执行所述每一子服务功能的线程,并基于唤醒的线程执行所述每一子服务功能之后,所述方法还包括:在唤醒的线程执行所述每一子服务功能之后,将唤醒的线程的状态调整为睡眠状态。6.根据权利要求4所述的方法,若各线程均为唤醒状态,则所述方法还包括:确定各线程的负载量,从各线程中选择负载量最小的线程,确定为执行所述每一子服务功能的线程。7.根据权利要求1至6中任一项所述的方法,在分别对所述测试请求所指示的每一子服务功能进行测试,得到所述每一子服务功能的代码覆盖信息之后,还包括:根据所述每一子服务功能的代码覆盖信息,确定映射关系,所述映射关系表征不同的子服务功能与不同的代码覆盖信息之间的映射关系。8.一种应用程序的代码覆盖测试装置,包括:监听模块,用于监听测试请求,其中,所述测试请求用于请求对待测试应用程序的至少一个子服务功能进行测试,所述待测试应用程序具有多个子服务功能;测试模块,用于分别对所述...

【专利技术属性】
技术研发人员:张璐鹏
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1