一种APP的测试方法、装置、可读存储介质及电子设备与流程

文档序号:34390000发布日期:2023-06-08 09:29阅读:26来源:国知局
一种APP的测试方法、装置、可读存储介质及电子设备与流程

本发明涉及app测试领域,更具体地涉及一种app的测试方法、装置、可读存储介质及电子设备。


背景技术:

1、模糊测试是一种自动化的测试技术,它会根据一定的规则自动或半自动地生成随机数据,然后将这些产生的随机数据输入到动态运行的被测app的api入口,同时监控被测app是否有异常情况出现,如app崩溃(闪退)或返回非预期的结果等,来发现app的缺陷。

2、现有技术中,主要包括猴子测试或灰度测试方法,其中猴子测试方法是对测试app的通讯接口发送纯随机数据进行测试,灰度测试方法则是在线上环境对部分真实的用户所使用的app进行测试。

3、但是,猴子测试方法无法得到线上环境的真实数据,无法计算出代码覆盖率,也很难发现代码中的错误;灰度测试方法由于是对真实用户的app进行测试,若发现异常,则说明已经影响到了真实的用户,会对用户体验造成影响。


技术实现思路

1、本发明的目的之一在于提供一种app的测试方法,通过第一切面程序收集的线上环境运行的app的真实数据对线下环境运行的app进行模糊测试,并通过第二切面程序获取测试结果,从而更容易地发现app中的错误。

2、基于上述目的,本发明一方面提供一种app的测试方法,其包括以下步骤:

3、获取app中的通讯接口函数作为第一切点,并在所述第一切点处注入第一切面程序;

4、在线上环境运行注入所述第一切面程序的app,以通过所述第一切面程序收集注入所述第一切面程序的app在线上环境运行时通过所述通讯接口函数接收到的数据,作为测试数据;

5、在对所述app进行测试时,获取所述app中的数据处理函数作为第二切点,并在所述第二切点处注入第二切面程序;

6、在线下环境运行注入所述第二切面程序的app,根据所述测试数据对注入所述第二切面程序的app进行模糊测试,并通过所述第二切面程序获得测试结果。

7、进一步地,在一些实施方式中,获取app中的通讯接口函数作为第一切点,具体包括:

8、通过关键词搜索出app的代码中的所有通讯接口函数作为第一切点。

9、进一步地,在一些实施方式中,获取所述app中的数据处理函数作为第二切点,具体包括:

10、针对每一个通讯接口函数,根据其函数调用信息查找出所有数据处理函数作为第二切点。

11、进一步地,在一些实施方式中,根据所述测试数据对注入所述第二切面程序的app进行模糊测试,具体包括:

12、针对所述测试数据中的每一个数据,生成与该数据的值相等的其他的类型的变异数据和/或随机生成与该数据的类型相同的其他值的变异数据,然后将所有变异数据传输至注入所述第二切面程序的app中进行测试。

13、进一步地,在一些实施方式中,通过所述第二切面程序获得测试结果,具体包括:

14、通过所述第二切面程序获得被执行的数据处理函数的数量,并计算代码覆盖率;

15、通过所述第二切面程序获得测试过程中的异常信息;

16、获取所述代码覆盖率和所述异常信息作为测试结果。

17、进一步地,在一些实施方式中,通过所述第二切面程序获得测试过程中的异常信息,具体包括:

18、通过所述第二切面程序判断所述数据处理函数处理数据时是否出错,若是,则获得处理错误信息;

19、通过所述第二切面程序对所述数据处理函数的对象进行空指针校验和参数类型校验,若校验时出错,则获得校验错误信息;

20、获取所述处理错误信息和所述校验错误信息作为异常信息。

21、进一步地,在一些实施方式中,还包括:若所述代码覆盖率小于预设值,则重新对所述测试数据进行变异,并采用重新变异后的数据对所述线下环境运行的app进行测试,直至所述代码覆盖率达到预设值。

22、本发明的另一目的在于提供一种app的测试装置,通过第一切面程序收集的线上环境运行的app的真实数据对线下环境运行的app进行模糊测试,并通过第二切面程序获取测试结果,从而更容易地发现app中的错误。

23、基于上述目的,本发明另一方面提供一种app的测试装置,包括:

24、第一注入模块,设置为获取app中的通讯接口函数作为第一切点,并在第一切点处注入第一切面程序;

25、测试数据收集模块,设置为在线上环境运行注入第一切面程序的app,以通过第一切面程序收集注入第一切面程序的app在线上环境运行时通过通讯接口函数接收到的数据,作为测试数据;

26、第二注入模块,设置为在对app进行测试时,获取app中的数据处理函数作为第二切点,并在第二切点处注入第二切面程序;

27、测试模块,设置为在线下环境运行注入第二切面程序的app,根据测试数据对注入第二切面程序的app进行模糊测试,并通过第二切面程序获得测试结果。

28、进一步地,在一些实施方式中,获取app中的通讯接口函数作为第一切点,具体包括:

29、通过关键词搜索出app的代码中的所有通讯接口函数作为第一切点。

30、进一步地,在一些实施方式中,获取所述app中的数据处理函数作为第二切点,具体包括:

31、针对每一个通讯接口函数,根据其函数调用信息查找出所有数据处理函数作为第二切点。

32、进一步地,在一些实施方式中,根据所述测试数据对注入所述第二切面程序的app进行模糊测试,具体包括:

33、针对所述测试数据中的每一个数据,生成与该数据的值相等的其他的类型的变异数据和/或随机生成与该数据的类型相同的其他值的变异数据,然后将所有变异数据传输至注入所述第二切面程序的app中进行测试。

34、进一步地,在一些实施方式中,通过所述第二切面程序获得测试结果,具体包括:

35、通过所述第二切面程序获得被执行的数据处理函数的数量,并计算代码覆盖率;

36、通过所述第二切面程序获得测试过程中的异常信息;

37、获取所述代码覆盖率和所述异常信息作为测试结果。

38、进一步地,在一些实施方式中,通过所述第二切面程序获得测试过程中的异常信息,具体包括:

39、通过所述第二切面程序判断所述数据处理函数处理数据时是否出错,若是,则获得处理错误信息;

40、通过所述第二切面程序对所述数据处理函数的对象进行空指针校验和参数类型校验,若校验时出错,则获得校验错误信息;

41、获取所述处理错误信息和所述校验错误信息作为异常信息。

42、进一步地,在一些实施方式中,所述测试模块还设置为:若所述代码覆盖率小于预设值,则重新对所述测试数据进行变异,并采用重新变异后的数据对所述线下环境运行的app进行测试,直至所述代码覆盖率达到预设值。

43、本发明又一目的在于提供一种可读存储介质,其上存储有计算机程序,当计算机程序在计算机中执行时,令计算机执行如上所述的app的测试方法的步骤。

44、本发明又一目的在于提供一种电子设备,其包括存储器和处理器,存储器中存储有可执行代码,当处理器执行可执行代码时,其执行如上所述的app的测试方法的步骤。

45、本发明实施例的app的测试方法及装置,通过第一切面程序收集线上环境运行的app的数据,用于对线下环境运行的app进行模糊测试,并通过第二切面程序获得测试结果,由于第一切面程序收集到的是用户使用app过程的真实数据,因此可以更容易地发现app中的错误,且测试用的线下环境运行的app不对用户开放,因此不会影响用户的体验。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1