程序应用检测方法及程序应用检测装置与流程

文档序号:13821269阅读:147来源:国知局
程序应用检测方法及程序应用检测装置与流程

本发明涉及程序应用检测领域,特别是涉及一种程序应用检测方法及程序应用检测装置。



背景技术:

随着科技的发展,各种移动端以及固定桌面端的程序应用越来越多,人们的每天日常生活中均在使用各种各样的程序应用,以满足人们各种各样的交互以及信息获取需求。

由于程序应用的用户使用量较大,如程序应用在某种特定条件会出现异常场景现象,会极大的影响用户体验;因此程序应用开发公司在将该程序应用推送到市场之前,对该程序应用进行全面的随机功能测试,以尽量提前发现程序应用异常场景现象的发生条件。

但是现有的程序应用测试软件难以覆盖程序应用的所有功能;且现有的程序应用测试软件在进行程序应用场景测试时,测试方式单一,容易进入死循环,从而导致程序应用测试效率的下降,同时在发现程序应用异常场景时,无法对该程序应用异常场景进行有效回放。



技术实现要素:

本发明实施例提供一种测试效率较高且可对程序应用异常场景进行有效回放的程序应用测试方法及程序应用测试装置;以解决现有的程序应用测试方法及程序应用测试装置的测试效率较低且无法对程序应用异常场景进行有效回放的技术问题。

本发明实施例提供一种程序应用测试方法,其包括:

a1、获取被测程序应用的所有功能控件以及对应的控件测试概率;

a2、根据所述被测程序应用的所有功能控件以及对应的控件测试概率,对所述被测程序应用进行程序应用场景测试,以检测程序应用场景异常;

a3、如检测到程序应用场景异常,则记录最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息;以及

a4、将所述最近设定次数的功能控件测试信息以及对应的程序应用场景异常信息进行上报操作,并返回步骤a2直至测试结束。

本发明实施例还提供一种程序应用测试装置,其包括:

功能控件获取模块,用于获取被测程序应用的所有功能控件以及对应的控件测试概率;

程序应用场景测试模块,用于根据所述被测程序应用的所有功能控件以及对应的控件测试概率,对所述被测程序应用进行程序应用场景测试,以检测程序应用场景异常;

异常信息记录模块,用于如检测到程序应用场景异常,则记录最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息;以及

信息上报模块,用于将所述最近设定次数的功能控件测试信息以及对应的程序应用场景异常信息进行上报操作。

相较于现有技术,本发明的程序应用测试方法及程序应用测试装置预先对被测程序应用的所有功能控件以及控件测试概率进行设置,从而提高了程序应用测试的测试效率;同时对功能控件的测试信息以及对应的程序应用场景异常信息同时进行记录,实现了对程序应用异常场景的有效回放;解决了现有的程序应用测试方法及程序应用测试装置的测试效率较低且无法对程序应用异常场景进行有效回放的技术问题。

附图说明

图1为本发明的程序应用测试方法的第一优选实施例的流程图;

图2为本发明的程序应用测试方法的第二优选实施例的流程图;

图3为本发明的程序应用测试方法的第二优选实施例的步骤s201的流程图;

图4为本发明的程序应用测试方法的第二优选实施例的步骤s202的流程图;

图5为本发明的程序应用测试装置的第一优选实施例的结构示意图;

图6为本发明的程序应用测试装置的第二优选实施例的结构示意图;

图7为本发明的程序应用测试装置的第二优选实施例的功能控件获取模块的结构示意图;

图8为本发明的程序应用测试装置的第二优选实施例的程序应用场景测试模块的结构示意图;

图9为本发明的程序应用测试方法及程序应用测试装置的具体实施例的测试流程图;

图10为本发明的程序应用测试方法及程序应用测试装置的使用示意图;

图11为本发明的程序应用测试装置所在的电子设备的工作环境结构示意图。

具体实施方式

请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。

在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行之作业的步骤及符号来说明,除非另有述明。因此,其将可了解到这些步骤及操作,其中有数次提到为由计算机执行,包括了由代表了以一结构化型式中的数据之电子信号的计算机处理单元所操纵。此操纵转换该数据或将其维持在该计算机之内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机之运作。该数据所维持的数据结构为该内存之实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。

本发明的程序应用测试装置可用于各种进行程序应用场景测试的电子设备中,该电子设备包括但不限于可穿戴设备、个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(pda)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境。本发明的电子设备通过预先对被测程序应用的所有功能控件以及控件测试概率进行设置,从而提高了程序应用测试的测试效率;同时该电子装置同时对功能控件的测试信息以及对应的程序应用场景异常信息进行记录,实现了对程序应用异常场景的有效回放。

请参照图1,图1为本发明的程序应用测试方法的第一优选实施例的流程图。本优选实施例的程序应用测试方法可使用上述的电子装置进行实施,该程序应用测试方法包括:

步骤s101,获取被测程序应用的所有功能控件以及对应的控件测试概率;

步骤s102,根据被测程序应用的所有功能控件以及对应的控件测试概率,对被测程序应用进行程序应用场景测试,以检测程序应用场景异常;

步骤s103,如检测到程序应用场景异常,则记录最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息;

步骤s104,将最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息进行上报,并返回步骤s102直至测试结束。

下面详细说明本优选实施例的程序应用测试方法的各步骤的具体流程。

在步骤s101中,如程序应用测试装置需要对被测程序应用进行程序应用测试,则会获取该被测程序应用的所有功能控件以及对应的控件测试概率。这里的功能控件可对应被测程序应用中的任一功能原子操作,如发一个随机表情等。控件测试概率则为随机执行该功能控件的概率。上述被测程序应用的所有功能控件以及对应的控件测试概率均为用于预先设置。这里的功能原子操作是指不会被线程调度机制打断的操作,功能原子操作一旦开始运行,就会一直运行到结束,不会切换至另一线程。随后转到步骤s102。

在步骤s102中,程序应用测试装置根据步骤s101获取的被测程序应用的所有功能控件以及对应的控件测试概率,对被测程序应用进行程序应用场景测试。具体的,程序应用测试装置可获取各个程序应用场景的所有功能控件,然后依据各个功能控件对应的控件测试概率,对该程序应用场景中的功能控件进行功能原子操作,如该功能原子操作跳转到新的程序应用场景,则再读取该程序应用场景的所有功能控件,继续进行程序应用场景测试,直至检测到程序应用场景异常或测试结束。

这里的程序应用场景异常包括但不限于程序应用场景崩溃(如程序应用场景crash)、系统性能异常(如系统cpu、内存以及句柄数据异常)、程序应用场景响应超时(如程序应用场景对功能原子操作长时间未响应)以及程序应用场景响应异常(如程序应用场景对功能原子操作的响应异常,例如功能原子操作触发了模态窗口,从而导致无法进行后续路径的覆盖等)。如检测到程序应用场景异常则转到步骤s103。

在步骤s103中,程序应用测试装置在当前程序应用场景检测到程序应用场景异常,由于该程序应用场景异常可能是有最近多次的功能控件对应的原子操作造成的,因此这里程序应用测试装置记录最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息。

这里的程序应用场景异常信息包括但不限于程序应用场景日志信息、程序应用场景取样信息、程序应用场景截图信息以及回放堆栈信息等。

如发生程序应用场景崩溃、系统性能异常以及程序应用场景响应超时等程序异常时,程序应用测试装置应获取程序应用场景日志信息、程序应用场景取样信息以及回放堆栈信息等程序应用场景程序信息;如发生程序应用场景响应异常等测试脚本异常时,程序应用测试装置只需获取程序应用场景截图信息即可判断程序应用场景异常原因。随后转到步骤s104。

在步骤s104中,程序应用测试装置将步骤s103中获取的最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息进行上报,这里的上报操作可以是将上述测试信息以及程序应用场景异常信息发送至后台数据库进行存储,以便用户通过功能控件的测试信息对程序应用场景异常进行回放以及分析。上报完毕后程序应用测试装置返回步骤s102继续进行其他程序应用场景的测试直至测试完毕。

这样即完成了本优选实施例的程序应用测试方法的程序应用测试过程。

本优选实施例的程序应用测试方法预先对被测程序应用的所有功能控件以及控件测试概率进行设置,从而提高了程序应用测试的测试效率;同时对功能控件的测试信息以及对应的程序应用场景异常信息同时进行记录,实现了对程序应用异常场景的有效回放。

请参照图2,图2为本发明的程序应用测试方法的第二优选实施例的流程图。本优选实施例的程序应用测试方法可使用上述的电子装置进行实施,该程序应用测试方法包括:

步骤s201,获取被测程序应用的所有功能控件以及对应的控件测试概率;

步骤s202,根据被测程序应用的所有功能控件以及对应的控件测试概率,对被测程序应用进行程序应用场景测试,以检测程序应用场景异常;

步骤s203,如检测到程序应用场景异常,则记录最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息;

步骤s204,将最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息进行上报;

步骤s205,根据程序应用场景异常信息,对相应的功能控件的控件测试概率按预设规则进行降低;并返回步骤s202直至测试结束。

下面详细说明本优选实施例的程序应用测试方法的各步骤的具体流程。

在步骤s201中,如程序应用测试装置需要对被测程序应用进行程序应用测试,则会获取该被测程序应用的所有功能控件以及对应的控件测试概率。这里的功能控件可对应被测程序应用中的任一功能原子操作,如发一个随机表情等。控件测试概率则为随机执行该功能控件的概率。上述被测程序应用的所有功能控件以及对应的控件测试概率均为用于预先设置。具体设置方法可参见图3,图3为本发明的程序应用测试方法的第二优选实施例的步骤s201的流程图。该步骤s201包括:

步骤s301,程序应用测试装置获取被测程序应用的功能控件树(如ui界面控件树),这里被测程序应用的功能控件树由各个功能控件作为节点构成,其包括了该被测程序应用在不同程序应用场景下的所有功能控件。随后程序应用测试装置采用树状结构对每个程序应用场景下的功能控件进行展示操作。

步骤s302,程序应用测试装置接收用户的测试概率设置指令,该测试概率设置指令为用户根据展示的功能控件,设置的对应每个功能控件的控件测试概率的指令。随后程序应用测试装置根据测试概率设置指令设置每个功能控件对应的控件测试概率。随后转到步骤s202。

在步骤s202中,程序应用测试装置根据步骤s201获取的被测程序应用的所有功能控件以及对应的控件测试概率,对被测程序应用进行程序应用场景测试。

具体的请参照图4,图4为本发明的程序应用测试方法的第二优选实施例的步骤s202的流程图。该步骤s202包括:

步骤s401,程序应用测试装置对被测程序应用进行初始化操作,以展示初始的程序应用场景,以消除被测程序应用的当前状态对测试操作的影响。

步骤s402,程序应用测试装置获取当前程序应用场景的所有功能控件。

步骤s403,程序应用测试装置根据当前程序应用场景的所有功能控件以及对应的控件测试概率,对程序应用场景中的功能控件进行功能原子操作,如该功能原子操作跳转到新的程序应用场景,则返回步骤s402再读取该程序应用场景的所有功能控件,继续进行程序应用场景测试,直至检测到程序应用场景异常或测试结束。

如被测程序应用的当前程序应用场景具有表情发送控件、文字发送控件以及图片发送控件,该表情发送控件、文字发送控件以及图片发送控件的控件测试概率分别为0.1、0.2以及0.3,则进行表情发送原子操作、文字发送原子操作以及图片发送原子操作的测试概率分别为0.1/0.6、0.2/0.6以及0.3/0.6。

这里的程序应用场景异常包括但不限于程序应用场景崩溃(如程序应用场景crash)、系统性能异常(如系统cpu、内存以及句柄数据异常)、程序应用场景响应超时(如程序应用场景对功能原子操作长时间未响应)以及程序应用场景响应异常(如程序应用场景对功能原子操作的响应异常,例如功能原子操作触发了模态窗口,从而导致无法进行后续路径的覆盖等)。如检测到程序应用场景异常则转到步骤s203。如未检测到任何程序应用场景异常则等待测试正常结束。

在步骤s203中,程序应用测试装置在当前程序应用场景检测到程序应用场景异常,由于该程序应用场景异常可能是有最近多次的功能控件对应的原子操作造成的,因此这里程序应用测试装置记录最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息。该最近设定次数可根据用户具体需要进行设置。

这里的程序应用场景异常信息包括但不限于程序应用场景日志信息、程序应用场景取样信息、程序应用场景截图信息以及回放堆栈信息等。

如发生程序应用场景崩溃、系统性能异常以及程序应用场景响应超时等程序异常时,程序应用测试装置应获取程序应用场景日志信息、程序应用场景取样信息以及回放堆栈信息等程序应用场景程序信息;如发生程序应用场景响应异常等测试脚本异常时,程序应用测试装置只需获取程序应用场景截图信息即可判断程序应用场景异常原因。随后转到步骤s204。

在步骤s204中,程序应用测试装置将步骤s203中获取的最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息进行上报,以便用户通过功能控件的测试信息对程序应用场景异常进行回放以及分析。随后转到步骤s205。

在步骤s205中,由于用户可能无法即时对程序应用场景异常进行即时处理,为了防止某个程序应用场景异常的反复发生对程序应用测试效率的影响,在本步骤中,程序应用测试装置会根据步骤s203获取的程序应用场景异常信息,对相应的功能控件的控件测试概率按预设规则进行降低,从而避免相同程序应用场景异常的反复发生。

如被测程序应用的当前程序应用场景具有表情发送控件、文字发送控件以及图片发送控件,该表情发送控件、文字发送控件以及图片发送控件的控件测试概率分别为0.1、0.2以及0.3,如进行表情发送原子操作时,当前程序应用场景出现了异常,则将表情发送控件的控件测试概率修正为0.05,这样进行表情发送原子操作、文字发送原子操作以及图片发送原子操作的测试概率分别为0.05/0.55、0.2/0.55以及0.3/0.55。

如在当前程序应用场景再次进行表情发送原子操作时,当前程序应用场景又出现了异常,则将表情发送控件的控件测试概率修正为0.02,这样进行表情发送原子操作、文字发送原子操作以及图片发送原子操作的测试概率分别为0.02/0.52、0.2/0.52以及0.3/0.52。

由于程序应用场景异常可能不是由单一原子操作行为引起的,因此这里如将所有引发程序应用场景异常的最近原子操作直接禁止,可能会导致测试操作的不完整,因此这里通过逐步降低强相关的功能控件原子操作的控件测试概率,可在保证测试操作的完整度的基础上,有效的降低上述程序应用场景异常的发生概率。逐步减低的预设规则可为使用基于事件概率减半(将引发该程序应用场景异常的最近若干事件的发生概率减半)、基于最短路径减半(将引发该程序应用场景异常的最短发生路径上的事件的发生概率减半)等规则。随后返回步骤s202继续进行其他程序应用场景的测试直至测试完毕。

这样即完成了本优选实施例的程序应用测试方法的程序应用测试过程。

在第一优选实施例的基础上,本优选实施例的程序应用测试方法通过功能控件树的设置,进一步提高了功能控件获取的完整性;并且该程序应用测试方法根据程序应用场景异常信息对控件测试概率的修正,进一步提高了程序应用测试的测试有效率。

本发明还提供一种程序应用测试装置,请参照图5,图5为本发明的程序应用测试装置的第一优选实施例的结构示意图。本优选实施例的程序应用测试装置可使用上述的程序应用测试方法的第一优选实施例进行实施,本优选实施例的程序应用测试装置50包括功能控件获取模块51、程序应用场景测试模块52、异常信息记录模块53以及信息上报模块54。

功能控件获取模块51用于获取被测程序应用的所有功能控件以及对应的控件测试概率;程序应用场景测试模块52用于根据被测程序应用的所有功能控件以及对应的控件测试概率,对被测程序应用进行程序应用场景测试,以检测程序应用场景异常;异常信息记录模块53用于如检测到程序应用场景异常,则记录最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息;信息上报模块54用于将最近设定次数的功能控件测试信息以及对应的程序应用场景异常信息进行上报操作。

本优选实施例的程序应用测试装置50使用时,首先如程序应用测试装置50需要对被测程序应用进行程序应用测试,则功能控件获取模块51会获取该被测程序应用的所有功能控件以及对应的控件测试概率。这里的功能控件可对应被测程序应用中的任一功能原子操作,如发一个随机表情等。控件测试概率则为随机执行该功能控件的概率。上述被测程序应用的所有功能控件以及对应的控件测试概率均为用于预先设置。这里的功能原子操作是指不会被线程调度机制打断的操作,功能原子操作一旦开始运行,就会一直运行到结束,不会切换至另一线程。

随后程序应用场景测试模块52根据功能控件获取模块51获取的被测程序应用的程序应用测试装置件以及对应的控件测试概率,对被测程序应用进行程序应用场景测试。具体的,程序应用场景测试模块52可获取各个程序应用场景的所有功能控件,然后依据各个功能控件对应的控件测试概率,对该程序应用场景中的功能控件进行功能原子操作,如该功能原子操作跳转到新的程序应用场景,则再读取该程序应用场景的所有功能控件,继续进行程序应用场景测试,直至检测到程序应用场景异常或测试结束。

这里的程序应用场景异常包括但不限于程序应用场景崩溃(如程序应用场景crash)、系统性能异常(如系统cpu、内存以及句柄数据异常)、程序应用场景响应超时(如程序应用场景对功能原子操作长时间未响应)以及程序应用场景响应异常(如程序应用场景对功能原子操作的响应异常,例如功能原子操作触发了模态窗口,从而导致无法进行后续路径的覆盖等)。

如异常信息记录模块53在当前程序应用场景检测到程序应用场景异常,由于该程序应用场景异常可能是有最近多次的功能控件对应的原子操作造成的,因此这里异常信息记录模块53记录最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息。

这里的程序应用场景异常信息包括但不限于程序应用场景日志信息、程序应用场景取样信息、程序应用场景截图信息以及回放堆栈信息等。

如发生程序应用场景崩溃、系统性能异常以及程序应用场景响应超时等程序异常时,异常信息记录模块53应获取程序应用场景日志信息、程序应用场景取样信息以及回放堆栈信息等程序应用场景程序信息;如发生程序应用场景响应异常等测试脚本异常时,异常信息记录模块53只需获取程序应用场景截图信息即可判断程序应用场景异常原因。

最后信息上报模块54将异常信息记录模块53获取的最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息进行上报,这里的上报操作可以是将上述测试信息以及程序应用场景异常信息发送至后台数据库进行存储,以便用户通过功能控件的测试信息对程序应用场景异常进行回放以及分析。上报完毕后信息上报模块54返回程序应用场景测试模块52继续进行其他程序应用场景的测试直至测试完毕。

这样即完成了本优选实施例的程序应用测试装置50的程序应用测试过程。

本优选实施例的程序应用测试装置预先对被测程序应用的所有功能控件以及控件测试概率进行设置,从而提高了程序应用测试的测试效率;同时对功能控件的测试信息以及对应的程序应用场景异常信息同时进行记录,实现了对程序应用异常场景的有效回放。

请参照图6,图6为本发明的程序应用测试装置的第二优选实施例的结构示意图。本优选实施例的程序应用测试装置可使用上述的程序应用测试方法的第二优选实施例进行实施,本优选实施例的程序应用测试装置60包括功能控件获取模块61、程序应用场景测试模块62、异常信息记录模块63、信息上报模块64以及控件测试概率修正模块65。

功能控件获取模块61用于获取被测程序应用的所有功能控件以及对应的控件测试概率;程序应用场景测试模块62用于根据被测程序应用的所有功能控件以及对应的控件测试概率,对被测程序应用进行程序应用场景测试,以检测程序应用场景异常;异常信息记录模块63用于如检测到程序应用场景异常,则记录最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息;信息上报模块64用于将最近设定次数的功能控件测试信息以及对应的程序应用场景异常信息进行上报操作;控件测试概率修正模块65用于根据程序应用场景异常信息,对相应的功能控件的控件测试概率按预设规则进行降低。

请参照图7,图7为本发明的程序应用测试装置的第二优选实施例的功能控件获取模块的结构示意图。该功能控件获取模块61包括功能控件树获取展示单元71以及控件测试概率设置单元72。

功能控件树获取展示单元71用于获取被测程序应用的功能控件树,并根据功能控件树对被测程序应用的所有功能控件进行展示;控件测试概率设置单元72用于接收测试概率设置指令,并根据测试概率设置指令设置功能控件对应的控件测试概率。

请参照图8,图8为本发明的程序应用测试装置的第二优选实施例的程序应用场景测试模块的结构示意图,该程序应用场景测试模块62包括初始化单元81、场景控件获取单元82以及测试单元83。

初始化单元81用于对被测程序应用进行初始化操作,以展示初始的程序应用场景;场景控件获取单元82用于获取程序应用场景的所有功能控件;测试单元83用于根据程序应用场景的所有功能控件以及对应的控件测试概率,对程序应用场景进行测试。

本优选实施例的程序应用测试装置60使用时,首先如程序应用测试装置60需要对被测程序应用进行程序应用测试,则功能控件获取模块61会获取该被测程序应用的所有功能控件以及对应的控件测试概率。这里的功能控件可对应被测程序应用中的任一功能原子操作,如发一个随机表情等。控件测试概率则为随机执行该功能控件的概率。上述被测程序应用的所有功能控件以及对应的控件测试概率均为用于预先设置。具体设置方法可包括:

功能控件获取模块61的功能控件树获取展示单元71获取被测程序应用的功能控件树(如ui界面控件树),这里被测程序应用的功能控件树由各个功能控件作为节点构成,其包括了该被测程序应用在不同程序应用场景下的所有功能控件。随后功能控件树获取展示单元71采用树状结构对每个程序应用场景下的功能控件进行展示操作。

功能控件获取模块61的控件测试概率设置单元72接收用户的测试概率设置指令,该测试概率设置指令为用户根据展示的功能控件,设置的对应每个功能控件的控件测试概率的指令。随后控件测试概率设置单元72根据测试概率设置指令设置每个功能控件对应的控件测试概率。

随后程序应用场景测试模块62根据功能控件获取模块61获取的被测程序应用的所有功能控件以及对应的控件测试概率,对被测程序应用进行程序应用场景测试。

具体流程包括:

程序应用场景测试模块62的初始化单元81对被测程序应用进行初始化操作,以展示初始的程序应用场景,以消除被测程序应用的当前状态对测试操作的影响。

程序应用场景测试模块62的场景控件获取单元82获取当前程序应用场景的所有功能控件。

程序应用场景测试模块62的测试单元83根据当前程序应用场景的所有功能控件以及对应的控件测试概率,对程序应用场景中的功能控件进行功能原子操作,如该功能原子操作跳转到新的程序应用场景,则返回场景控件获取单元82再读取该程序应用场景的所有功能控件,继续进行程序应用场景测试,直至检测到程序应用场景异常或测试结束。

如被测程序应用的当前程序应用场景具有表情发送控件、文字发送控件以及图片发送控件,该表情发送控件、文字发送控件以及图片发送控件的控件测试概率分别为0.1、0.2以及0.3,则测试单元83进行表情发送原子操作、文字发送原子操作以及图片发送原子操作的测试概率分别为0.1/0.6、0.2/0.6以及0.3/0.6。

这里的程序应用场景异常包括但不限于程序应用场景崩溃(如程序应用场景crash)、系统性能异常(如系统cpu、内存以及句柄数据异常)、程序应用场景响应超时(如程序应用场景对功能原子操作长时间未响应)以及程序应用场景响应异常(如程序应用场景对功能原子操作的响应异常,例如功能原子操作触发了模态窗口,从而导致无法进行后续路径的覆盖等)。如检测到程序应用场景异常则转到异常信息记录模块63。如未检测到任何程序应用场景异常则等待测试正常结束。

如异常信息记录模块63在当前程序应用场景检测到程序应用场景异常,由于该程序应用场景异常可能是有最近多次的功能控件对应的原子操作造成的,因此这里异常信息记录模块63记录最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息。该最近设定次数可根据用户具体需要进行设置。

这里的程序应用场景异常信息包括但不限于程序应用场景日志信息、程序应用场景取样信息、程序应用场景截图信息以及回放堆栈信息等。

如发生程序应用场景崩溃、系统性能异常以及程序应用场景响应超时等程序异常时,异常信息记录模块63应获取程序应用场景日志信息、程序应用场景取样信息以及回放堆栈信息等程序应用场景程序信息;如发生程序应用场景响应异常等测试脚本异常时,异常信息记录模块63只需获取程序应用场景截图信息即可判断程序应用场景异常原因。

然后信息上报模块64将异常信息记录模块63获取的最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息进行上报,以便用户通过功能控件的测试信息对程序应用场景异常进行回放以及分析。

最后由于用户可能无法即时对程序应用场景异常进行即时处理,为了防止某个程序应用场景异常的反复发生对程序应用测试效率的影响,在本步骤中,控件测试概率修正模块65会根据异常信息记录模块63获取的程序应用场景异常信息,对相应的功能控件的控件测试概率按预设规则进行降低,从而避免相同程序应用场景异常的反复发生。

如被测程序应用的当前程序应用场景具有表情发送控件、文字发送控件以及图片发送控件,该表情发送控件、文字发送控件以及图片发送控件的控件测试概率分别为0.1、0.2以及0.3,如进行表情发送原子操作时,当前程序应用场景出现了异常,则控件测试概率修正模块65将表情发送控件的控件测试概率修正为0.05,这样进行表情发送原子操作、文字发送原子操作以及图片发送原子操作的测试概率分别为0.05/0.55、0.2/0.55以及0.3/0.55。

如在当前程序应用场景再次进行表情发送原子操作时,当前程序应用场景又出现了异常,则控件测试概率修正模块65将表情发送控件的控件测试概率修正为0.02,这样进行表情发送原子操作、文字发送原子操作以及图片发送原子操作的测试概率分别为0.02/0.52、0.2/0.52以及0.3/0.52。

由于程序应用场景异常可能不是由单一原子操作行为引起的,因此这里如将所有引发程序应用场景异常的最近原子操作直接禁止,可能会导致测试操作的不完整,因此这里控件测试概率修正模块65通过逐步降低强相关的功能控件原子操作的控件测试概率,可在保证测试操作的完整度的基础上,有效的降低上述程序应用场景异常的发生概率。随后返回程序应用场景测试模块62继续进行其他程序应用场景的测试直至测试完毕。

这样即完成了本优选实施例的程序应用测试装置60的程序应用测试过程。

在第一优选实施例的基础上,本优选实施例的程序应用测试装置通过功能控件树的设置,进一步提高了功能控件获取的完整性;并且该程序应用测试装置根据程序应用场景异常信息对控件测试概率的修正,进一步提高了程序应用测试的测试有效率。

下面通过一具体实施例说明本发明的程序应用测试方法及程序应用测试装置的各步骤的具体流程。请参照图9,图9为本发明的程序应用测试方法及程序应用测试装置的具体实施例的测试流程图。本具体实施例中的程序应用测试装置设置在进行程序应用测试的测试电子终端上,该测试电子终端可为移动终端或固定桌面终端。该具体的程序应用测试流程包括:

步骤s901,获取被测程序应用的所有功能控件以及对应的控件测试概率。

步骤s902,对被测程序应用进行初始化操作,具体可为初始化被测程序应用的初始程序应用场景;初始化被测程序应用的测试参数(如控件测试概率);以及初始化被测程序应用的上报文件(将上报历史记录清空)。

步骤s903,读取当前程序应用场景的功能控件以及对应的控件测试概率,并使用控件测试概率,对当前程序应用场景的功能控件进行随机测试。如跳转到其他程序应用场景,则继续读取相应的功能控件以及对应的控件测试概率进行随机测试直至测试结束。

步骤s904,检测是否发生程序应用场景异常,如未发生程序应用场景异常,则转到步骤s903,;如发生程序应用场景异常,则转到步骤s905。

步骤s905,如发生程序应用场景异常,则记录最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息。该测试信息包括但不限于最近设定次数的功能控件的编号以及测试顺序。

步骤s906,将最近设定次数的功能控件的测试信息以及对应的程序应用场景异常信息进行异常上报操作。

步骤s907,根据程序应用场景异常信息,对相应的功能控件的控件测试概率按预设规则进行降低,从而避免相同程序应用场景异常的反复发生。并将降低后的控件测试概率返回至步骤s902以进行被测程序应用初始化。

这样即完成了本具体实施例的程序应用测试方法及程序应用测试装置的程序应用测试过程。

下面通过一具体实施例说明本发明的程序应用测试方法及程序应用测试装置的流程。图10为本发明的程序应用测试方法及程序应用测试装置的使用示意图。

其中该程序应用包括功能控件1001至功能控件1007,

功能控件1001的控件名为groupbuddyname;class:labelui;text:.*晨会群.*;用于读取对应群的聊天内容;

功能控件1002的控件名为send_rich_edit;class:richeditui;用于输入聊天内容;

功能控件1003的控件名为send_message_button;class:buttonui;用于发送聊天内容;

功能控件1004的控件名为emotion_btn;class:optionui;用于输入聊天表情;

功能控件1005的控件名为capture_screen_btn;class:opentionui;用于进行屏幕截屏;

功能控件1006的控件名为send_picture_btn;class:buttonui;用于发送图片;

功能控件1007的控件名为send_file_btn;class:buttonui;用于发送文件夹;

用户可设置上述各个功能控件的控件测试概率。

随后对上述程序应用进行初始化操作。随后对当前程序应用场景的功能控件进行随机测试,如可进行一测试流程包括点击功能控件1001查看a讨论群中的内容,通过功能控件1002中输入聊天内容,通过功能控件1004输入聊天表情,通过功能控件1003将聊天内容以及聊天表情进行发送。

如在输入聊天表情时出现了程序应用场景异常,如无法选定设定的聊天表情的程序应用场景异常,则对上述测试流程的功能控件的执行顺序以及编号等测试信息进行记录,并将上述程序应用场景异常以及测试信息进行异常上报操作。

本发明的程序应用测试方法及程序应用测试装置预先对被测程序应用的所有功能控件以及控件测试概率进行设置,从而提高了程序应用测试的测试效率;同时对功能控件的测试信息以及对应的程序应用场景异常信息同时进行记录,实现了对程序应用异常场景的有效回放;解决了现有的程序应用测试方法及程序应用测试装置的测试效率较低且无法对程序应用异常场景进行有效回放的技术问题。

如本申请所使用的术语“组件”、“模块”、“系统”、“接口”、“进程”等等一般地旨在指计算机相关实体:硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于是运行在处理器上的进程、处理器、对象、可执行应用、执行的线程、程序和/或计算机。通过图示,运行在控制器上的应用和该控制器二者都可以是组件。一个或多个组件可以有在于执行的进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多计算机之间。

图11和随后的讨论提供了对实现本发明所述的程序应用测试装置所在的电子设备的工作环境的简短、概括的描述。图11的工作环境仅仅是适当的工作环境的一个实例并且不旨在建议关于工作环境的用途或功能的范围的任何限制。实例电子设备1112包括但不限于可穿戴设备、头戴设备、医疗健康平台、个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(pda)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。

尽管没有要求,但是在“计算机可读指令”被一个或多个电子设备执行的通用背景下描述实施例。计算机可读指令可以经由计算机可读介质来分布(下文讨论)。计算机可读指令可以实现为程序模块,比如执行特定任务或实现特定抽象数据类型的功能、对象、应用编程接口(api)、数据结构等等。典型地,该计算机可读指令的功能可以在各种环境中随意组合或分布。

图11图示了包括本发明的程序应用测试装置中的一个或多个实施例的电子设备1112的实例。在一种配置中,电子设备1112包括至少一个处理单元1116和存储器1118。根据电子设备的确切配置和类型,存储器1118可以是易失性的(比如ram)、非易失性的(比如rom、闪存等)或二者的某种组合。该配置在图11中由虚线1114图示。

在其他实施例中,电子设备1112可以包括附加特征和/或功能。例如,设备1112还可以包括附加的存储装置(例如可移除和/或不可移除的),其包括但不限于磁存储装置、光存储装置等等。这种附加存储装置在图11中由存储装置1120图示。在一个实施例中,用于实现本文所提供的一个或多个实施例的计算机可读指令可以在存储装置1120中。存储装置1120还可以存储用于实现操作系统、应用程序等的其他计算机可读指令。计算机可读指令可以载入存储器1118中由例如处理单元1116执行。

本文所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。存储器1118和存储装置1120是计算机存储介质的实例。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光存储装置、盒式磁带、磁带、磁盘存储装置或其他磁存储设备、或可以用于存储期望信息并可以被电子设备1112访问的任何其他介质。任意这样的计算机存储介质可以是电子设备1112的一部分。

电子设备1112还可以包括允许电子设备1112与其他设备通信的通信连接1126。通信连接1126可以包括但不限于调制解调器、网络接口卡(nic)、集成网络接口、射频发射器/接收器、红外端口、usb连接或用于将电子设备1112连接到其他电子设备的其他接口。通信连接1126可以包括有线连接或无线连接。通信连接1126可以发射和/或接收通信媒体。

术语“计算机可读介质”可以包括通信介质。通信介质典型地包含计算机可读指令或诸如载波或其他传输机构之类的“己调制数据信号”中的其他数据,并且包括任何信息递送介质。术语“己调制数据信号”可以包括这样的信号:该信号特性中的一个或多个按照将信息编码到信号中的方式来设置或改变。

电子设备1112可以包括输入设备1124,比如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外相机、视频输入设备和/或任何其他输入设备。设备1112中也可以包括输出设备1122,比如一个或多个显示器、扬声器、打印机和/或任意其他输出设备。输入设备1124和输出设备1122可以经由有线连接、无线连接或其任意组合连接到电子设备1112。在一个实施例中,来自另一个电子设备的输入设备或输出设备可以被用作电子设备1112的输入设备1124或输出设备1122。

电子设备1112的组件可以通过各种互连(比如总线)连接。这样的互连可以包括外围组件互连(pci)(比如快速pci)、通用串行总线(usb)、火线(ieee1394)、光学总线结构等等。在另一个实施例中,电子设备1112的组件可以通过网络互连。例如,存储器1118可以由位于不同物理位置中的、通过网络互连的多个物理存储器单元构成。

本领域技术人员将认识到,用于存储计算机可读指令的存储设备可以跨越网络分布。例如,可经由网络1128访问的电子设备1130可以存储用于实现本发明所提供的一个或多个实施例的计算机可读指令。电子设备1112可以访问电子设备1130并且下载计算机可读指令的一部分或所有以供执行。可替代地,电子设备1112可以按需要下载多条计算机可读指令,或者一些指令可以在电子设备1112处执行并且一些指令可以在电子设备1130处执行。

本文提供了实施例的各种操作。在一个实施例中,所述的一个或多个操作可以构成一个或多个计算机可读介质上存储的计算机可读指令,其在被电子设备执行时将使得计算设备执行所述操作。描述一些或所有操作的顺序不应当被解释为暗示这些操作必需是顺序相关的。本领域技术人员将理解具有本说明书的益处的可替代的排序。而且,应当理解,不是所有操作必需在本文所提供的每个实施例中存在。

而且,尽管已经相对于一个或多个实现方式示出并描述了本公开,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本公开包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件(例如元件、资源等)执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本公开的示范性实现方式中的功能的公开结构不等同。此外,尽管本公开的特定特征已经相对于若干实现方式中的仅一个被公开,但是这种特征可以与如可以对给定或特定应用而言是期望和有利的其他实现方式的一个或多个其他特征组合。而且,就术语“包括”、“具有”、“含有”或其变形被用在具体实施方式或权利要求中而言,这样的术语旨在以与术语“包含”相似的方式包括。

本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。上述的各装置或系统,可以执行相应方法实施例中的方法。

综上所述,虽然本发明已以实施例揭露如上,实施例前的序号,如“第一”、“第二”等仅为描述方便而使用,对本发明各实施例的顺序不造成限制。并且,上述实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。

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