一种软件测试方法和装置制造方法

文档序号:6513625阅读:187来源:国知局
一种软件测试方法和装置制造方法
【专利摘要】本发明实施例公开了一种软件测试方法和装置,其中方法的实现包括:获取软件测试过程中的运行界面截图;对上述运行界面截图进行图像识别,确定是否包含预定的操作元素;若上述运行界面截图包含预定的操作元素,则下发对上述运行界面截图中的操作元素的操作指令。通过对测试过程中的运行界面截图的识别,确定其包含预定的操作元素,那么就下发对操作元素的操作指令。这样可以避免完全随机地进行操作很难命中的问题,从而避免自动测试过程中的停滞现象,从而提高了软件测试效率。
【专利说明】一种软件测试方法和装置

【技术领域】
[0001]本发明涉及计算机【技术领域】,特别涉及一种软件测试方法和装置。

【背景技术】
[0002]软件测试(software testing)是使用人工或者自动手段来运行或测试某软件的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。软件测试主要工作内容是验证(verificat1n)和确认(validat1n),下面分别给出其概念:
[0003]验证(verificat1n)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件以正确的方式来做了这个事件(Do it right)包括如下几个部分:
[0004]1、确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程。
[0005]2、程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程。
[0006]3、评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。
[0007]确认(validat1n)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情(Do the right thing),包括如下几个部分:
[0008]1、静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性。
[0009]2、动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。
[0010]软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期间各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。
[0011]本申请文件主要涉及的是软件自动测试的内容,自动测试一般会采用软件测试工具来实现,软件测试工具是通过一些工具能够使软件的一些简单问题直观的显示在读者的面前,这样能使测试人员更好的找出软件错误的所在。软件测试工具分为自动化软件测试工具和测试管理工具。软件测试工具存在的价值是为了提高测试效率,用软件来代替一些人工输入。测试管理工具是为了复用测试用例,提高软件测试的价值。一个好的软件测试工具和测试管理工具结合起来使用将会使软件测试效率大大的提高。
[0012]本申请文件主要涉及脱离源代码或是对第三方软件的黑盒测试,目前的通用方案是采用MTTF (mean time to failure,平均无故障运行时间)测试工具完全随机地对应用程序的界面进行长时间点击、拖拽等操作,统计软件长时间运行的崩溃、异常率,从而衡量软件的可靠性和稳定性。
[0013]以上方案存在如下问题:由于在可靠性测试过程中,存在一些必须要优先点击\操作的控件,甚至是需要完成指定的操作序列。例如:应用程序存在弹出提示框、弹出界面等,此时必须在特定位置范围内操作才可以关闭,然而完全随机地进行操作很难命中,导致自动测试停滞。因此,测试效率较低。


【发明内容】

[0014]本发明实施例提供了一种软件测试方法和装置,用于提高软件测试效率。
[0015]一种软件测试方法,包括:
[0016]获取软件测试过程中的运行界面截图;
[0017]对所述运行界面截图进行图像识别,确定是否包含预定的操作元素;
[0018]若所述运行界面截图包含预定的操作元素,则下发对所述运行界面截图中的操作元素的操作指令。
[0019]一种软件测试装置,包括:
[0020]截图获取单元,用于获取软件测试过程中的运行界面截图;
[0021]元素确定单元,用于对所述截图获取单元获取的所述运行界面截图进行图像识另O,确定是否包含预定的操作元素;
[0022]指令下发单元,用于若所述元素确定单元确定所述运行界面截图包含预定的操作元素,则下发对所述运行界面截图中的操作元素的操作指令。
[0023]从以上技术方案可以看出,本发明实施例具有以下优点:通过对测试过程中的运行界面截图的识别,确定其包含预定的操作元素,那么就下发对操作元素的操作指令。这样可以避免完全随机地进行操作很难命中的问题,从而避免自动测试过程中的停滞现象,从而提高了软件测试效率。

【专利附图】

【附图说明】
[0024]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0025]图1为本发明实施例方法流程示意图;
[0026]图2为本发明实施例方法流程示意图;
[0027]图3为本发明实施例装置结构示意图;
[0028]图4为本发明实施例装置结构示意图;
[0029]图5为本发明实施例软件测试装置结构示意图;
[0030]图6为本发明实施例终端结构示意图。

【具体实施方式】
[0031]为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0032]本发明实施例提供了一种软件测试方法,如图1所示,包括:
[0033]101:获取软件测试过程中的运行界面截图;
[0034]在本步骤软件测试过程中,被测试软件会执行点击、拖曳、系统按键等各种操作,具体测试过程依测试目的的不同可能有所不同,本发明实施例对被测试软件的具体的测试过程不予限定。
[0035]本发明实施例还提供了运行界面截图的获取方式,具体如下:上述获取软件测试过程中的运行界面截图包括:
[0036]在软件测试过程中以预定时间为周期获取运行界面截图;或者,
[0037]监测软件测试过程中的操作执行过程,在操作执行完毕后,获取运行界面截图。
[0038]本实施例,软件测试的过程可以是由被测试软件的运行设备来执行,也可以由专门的测试设备来执行。如果是被测试软件的运行设备来执行本实施例的方案,那么运行界面截图获取以后可以被发送给控制模块进行相关(图像识别等)处理;如果由专门的测试设备来执行本实施例的方案,那么截图可以由被测试软件的运行设备来执行截图,截图的指令可以是由上述专门的测试设备下发,也可以由被测试软件的运行设备生成。
[0039]例如:上例中,如果由被测试软件的运行设备来执行本实施例的方案,那么上述在软件测试过程中以预定时间为周期获取运行界面截图可以是:被测试软件的运行设备在软件测试过程中以预定时间为周期获取运行界面截图;或者是:被测试软件的运行设备在软件测试过程中接收以预定时间为周期获取运行界面截图的截图指令后,以上述截图指令指定的时间为周期获取运行界面截图。
[0040]再例如:上例中,如果由被测试软件的运行设备来执行本实施例的方案,那么上述监测软件测试过程中的操作执行过程,在操作执行完毕后,获取运行界面截图可以是:被测试软件的运行设备监测软件测试过程中的操作执行过程,在操作执行完毕后,获取运行界面截图;或者是,被测试软件的运行设备接收到来自测试设备发送的截图指令,获取运行界面截图;上述截图指令在上述测试设备监测到软件测试过程中的操作执行过程,并监测到操作执行完毕后由上述测试设备发出。
[0041]以上给出了两种运行界面截图的获取方案,本领域技术人员可以理解的是,触发对被测试软件的运行界面进行截图还可以有别的方式,本发明实施例不可能对此进行穷举,并且具体的触发方式并不影响本发明实施例的实现,因此本发明实施例对此不予限定,以上优选实现方式的举例也不应理解为对本发明实施例的唯一性限定。
[0042]102:对上述运行界面截图进行图像识别,确定是否包含预定的操作元素;
[0043]上述预定的操作元素,可以是预先确定的需要操作的元素图片,例如在可靠性测试过程中存在一些必须要优先点击或操作的控件,或者需要执行指定的操作序列,可以使用预定的操作元素来确定,例如可以包括:“确定”、“取消”、“关闭”、“下一步”、“上一步”等。本领域技术人员可以理解的是具体的操作元素是依据具体的被测试软件而定的,以上举例仅是常用的几种常用操作元素的举例,不应理解为对本发明实施例的唯一性限定。
[0044]本发明实施例还提供给了如何确定是否包含预定操作元素的具体实现方式举例,如下:上述对上述运行界面截图进行图像识别,确定是否包含预定的操作元素包括:使用预定的操作元素对上述运行界面截图执行模板匹配,确定是否包含预定的操作元素。
[0045]以上实施例给出了采用模板匹配的方式来实现图像识别,从而确定运行界面是否包含有预定的操作元素。本领域技术人员可以理解的是,图像识别的实现方式有很多,以上举例是基于软件测试【技术领域】,操作元素属于有限集的情况下,一种优选的实现方案。采用其它方案识别并判断是否存在预定的操作元素并不影响本发明实施例的实现,因此以上方案不应理解为对本发明实施例的唯一性限定。
[0046]103:若上述运行界面截图包含预定的操作元素,则下发对上述运行界面截图中的操作元素的操作指令。
[0047]本实施例,通过对测试过程中的运行界面截图的识别,确定其包含预定的操作元素,那么就下发对操作元素的操作指令。这样可以避免完全随机地进行操作很难命中的问题,从而避免自动测试过程中的停滞现象,从而提高了软件测试效率。
[0048]由于一个运行界面截图可能会存在两个或者两个以上(即大于一个)的预定的操作元素,本发明实施例还提供了出现此种情况的解决方案,具体如下:若上述运行界面截图包含预定的操作元素大于一个,上述下发对上述运行界面截图中的操作元素的操作指令包括:
[0049]按照上述运行界面截图中的各操作元素的优先级,依次下发操作指令;或者,下发对上述运行界面截图中的各操作元素的操作指令以及各操作指令的执行优先级。
[0050]以上实施例通过优先级的方式确定了存在多个操作元素时对各操作元素如何处理的方案,以上优先级的方式可以实现过操作元素时各操作元素的执行顺序,为了实现对各操作元素执行顺序的控制,还可以采用顺序发送操作指令,各操作指令间隔预定时间,也是可以的。以上举例相对于采用间隔时间方式的方案而言,操作指令的执行速度会更快,也即是说软件测试的效率将会更高。以上采用优先级控制各操作元素的执行顺序的方案举例作为一个优选实现方式,不应理解为对本发明实施例的唯一限定。
[0051]本发明实施例还提供了操作指令的发送方案的可选实现方式,具体如下:若上述运行界面截图包含预定的操作元素,还包括:确定操作元素在运行界面截图中的坐标;上述下发对上述运行界面截图中的操作元素的操作指令包括:下发对上述运行界面截图中上述坐标的操作指令。
[0052]以上实施例通过获得操作元素的坐标,在操作指令中直接携带该坐标使被测试软件的运行设备对操作元素进行操作。本领域技术人员可以理解是,由于操作元素已经在运行界面截图中被识别出来,如何实现指令对其进行操作,本领域技术人员可以依据不同的情况采用不同的选择方案,因此操作指令不不仅限于采用携带坐标的方式来实现。因此以上举例不应理解为对本发明实施例的唯一性限定。
[0053]以下实施例将以手机软件的可靠性测试为例进行举例说明。
[0054]对于在手机软件的可靠性测试过程中,需要优先操作某些控件,或者是指定操作控件序列的需求,本方法采用模版匹配的算法,可以准确地从手机软件当前界面的截图中找到需要操作的控件的图片元素的坐标,并可通过预先设定的优先级算法完成对这些控件的操作。请参阅图2所示,包括如下步骤:
[0055]201:截取被测试的应用程序中需要操作的操作元素的图片。
[0056]本步骤可以采用手工截取的方式进行,手工截取被测试的应用程序中需要操作的操作元素的图片可以包括:“确定”、“取消”、“关闭”、“下一步”、“上一步”等图片。本领域技术人员可以理解的是具体的操作元素是依据具体的被测试软件而定的,以上举例仅是常用的几种常用操作元素的举例,不应理解为对本发明实施例的唯一性限定。截取的操作元素的图片在后续步骤中用来作为待匹配的模板。
[0057]202:稳定性测试执行测试操作。
[0058]本步骤是被测试软件在测试过程中的运行过程,一般可以使用随机按键工具执行测试。
[0059]203:截取手机软件当前的界面图片到PC (personal computer,个人计算机)端。
[0060]本步骤是在使用随机按键工具执行测试的过程中,截取手机软件当前的界面图片然后发送到PC端。后续的匹配在PC端执行。
[0061]204:PC端执行模版匹配算法分析界面截图是否包含操作元素图片,如是,进入205,否则进入202。
[0062]205:如果当前软件界面截图中存在多个操作元素的图片,可进行优先级的定义。例如:点击“确定”的优先级高于点击“关闭”。
[0063]由于不一定会存在多个操作元素的图片,因此,本步骤为可选步骤。
[0064]206:获取到图片中包含的图片元素的坐标点。
[0065]207:发送携带坐标点的操作指令给手机,使手机对被测试应用程序界面进行相应操作。
[0066]本方法通过对手机软件界面进行模版匹配,可以精确获取到这些需要优先操作,或者是指定操作序列的控件的位置和坐标,实现精确点击,提供了一种提升可靠性测试效率的方法。例如,手机软件提示框、弹出界面的关闭方式具有很强的共性,如“关闭”、“确定”、“取消”等控件。通过在界面截图中进行模版匹配,找到这些控件进行精确操作,避免出现长时间无法关闭提示框、弹出界面,从而可提升软件测试效率。
[0067]本发明实施例还提供了一种软件测试装置,如图3所示,包括:
[0068]截图获取单元301,用于获取软件测试过程中的运行界面截图;
[0069]软件测试过程中,被测试软件会执行点击、拖曳、系统按键等各种操作,具体测试过程依测试目的的不同可能有所不同,本发明实施例对被测试软件的具体的测试过程不予限定。
[0070]元素确定单元302,用于对上述截图获取单元301获取的上述运行界面截图进行图像识别,确定是否包含预定的操作元素;
[0071]上述预定的操作元素,可以是预先确定的需要操作的元素图片,例如在可靠性测试过程中存在一些必须要优先点击或操作的控件,或者需要执行指定的操作序列,可以使用预定的操作元素来确定,例如可以包括:“确定”、“取消”、“关闭”、“下一步”、“上一步”等。本领域技术人员可以理解的是具体的操作元素是依据具体的被测试软件而定的,以上举例仅是常用的几种常用操作元素的举例,不应理解为对本发明实施例的唯一性限定。
[0072]指令下发单元303,用于若上述元素确定单元302确定上述运行界面截图包含预定的操作元素,则下发对上述运行界面截图中的操作元素的操作指令。
[0073]本实施例,通过对测试过程中的运行界面截图的识别,确定其包含预定的操作元素,那么就下发对操作元素的操作指令。这样可以避免完全随机地进行操作很难命中的问题,从而避免自动测试过程中的停滞现象,从而提高了软件测试效率。
[0074]可选地,本发明实施例还提供了运行界面截图的获取方式,具体如下:上述截图获取单元301,用于在软件测试过程中以预定时间为周期获取运行界面截图;或者,监测软件测试过程中的操作执行过程,在操作执行完毕后,获取运行界面截图。
[0075]本实施例,软件测试的过程可以是由被测试软件的运行设备来执行,也可以由专门的测试设备来执行。如果是被测试软件的运行设备来执行本实施例的方案,那么运行界面截图获取以后可以被发送给控制模块进行相关(图像识别等)处理;如果由专门的测试设备来执行本实施例的方案,那么截图可以由被测试软件的运行设备来执行截图,截图的指令可以是由上述专门的测试设备下发,也可以由被测试软件的运行设备生成。
[0076]例如:上例中,如果由被测试软件的运行设备来执行本实施例的方案,那么上述在软件测试过程中以预定时间为周期获取运行界面截图可以是:被测试软件的运行设备在软件测试过程中以预定时间为周期获取运行界面截图;或者是:被测试软件的运行设备在软件测试过程中接收以预定时间为周期获取运行界面截图的截图指令后,以上述截图指令指定的时间为周期获取运行界面截图。
[0077]再例如:上例中,如果由被测试软件的运行设备来执行本实施例的方案,那么上述监测软件测试过程中的操作执行过程,在操作执行完毕后,获取运行界面截图可以是:被测试软件的运行设备监测软件测试过程中的操作执行过程,在操作执行完毕后,获取运行界面截图;或者是,被测试软件的运行设备接收到来自测试设备发送的截图指令,获取运行界面截图;上述截图指令在上述测试设备监测到软件测试过程中的操作执行过程,并监测到操作执行完毕后由上述测试设备发出。
[0078]以上给出了两种运行界面截图的获取方案,本领域技术人员可以理解的是,触发对被测试软件的运行界面进行截图还可以有别的方式,本发明实施例不可能对此进行穷举,并且具体的触发方式并不影响本发明实施例的实现,因此本发明实施例对此不予限定,以上优选实现方式的举例也不应理解为对本发明实施例的唯一性限定。
[0079]可选地,由于一个运行界面截图可能会存在两个或者两个以上(即大于一个)的预定的操作元素,本发明实施例还提供了出现此种情况的解决方案,具体如下:上述指令下发单元303,用于若上述元素确定单元302确定上述运行界面截图包含预定的操作元素大于一个,则按照上述运行界面截图中的各操作元素的优先级,依次下发操作指令;或者,下发对上述运行界面截图中的各操作元素的操作指令以及各操作指令的执行优先级。
[0080]以上实施例通过优先级的方式确定了存在多个操作元素时对各操作元素如何处理的方案,以上优先级的方式可以实现过操作元素时各操作元素的执行顺序,为了实现对各操作元素执行顺序的控制,还可以采用顺序发送操作指令,各操作指令间隔预定时间,也是可以的。以上举例相对于采用间隔时间方式的方案而言,操作指令的执行速度会更快,也即是说软件测试的效率将会更高。以上采用优先级控制各操作元素的执行顺序的方案举例作为一个优选实现方式,不应理解为对本发明实施例的唯一限定。
[0081]进一步地,本发明实施例还提供了操作指令的发送方案的可选实现方式,具体如下:如图4所示,上述装置,还包括:
[0082]坐标确定单元401,用于若上述元素确定单元302确定上述运行界面截图包含预定的操作元素,确定操作元素在运行界面截图中的坐标;
[0083]上述指令下发单元303,用于下发对上述运行界面截图中上述坐标确定单元401确定的坐标的操作指令。
[0084]以上实施例通过获得操作元素的坐标,在操作指令中直接携带该坐标使被测试软件的运行设备对操作元素进行操作。本领域技术人员可以理解是,由于操作元素已经在运行界面截图中被识别出来,如何实现指令对其进行操作,本领域技术人员可以依据不同的情况采用不同的选择方案,因此操作指令不不仅限于采用携带坐标的方式来实现。因此以上举例不应理解为对本发明实施例的唯一性限定。
[0085]可选地,本发明实施例还提供给了如何确定是否包含预定操作元素的具体实现方式举例,如下:上述元素确定单元302,用于使用预定的操作元素对上述运行界面截图执行模板匹配,确定是否包含预定的操作元素。
[0086]以上实施例给出了采用模板匹配的方式来实现图像识别,从而确定运行界面是否包含有预定的操作元素。本领域技术人员可以理解的是,图像识别的实现方式有很多,以上举例是基于软件测试【技术领域】,操作元素属于有限集的情况下,一种优选的实现方案。采用其它方案识别并判断是否存在预定的操作元素并不影响本发明实施例的实现,因此以上方案不应理解为对本发明实施例的唯一性限定。
[0087]本发明实施例还提供了一种软件测试装置,如图5所示,包括:接收器501、发射器502、存储器503以及处理器504 ;
[0088]其中处理器504,用于获取软件测试过程中的运行界面截图;对上述运行界面截图进行图像识别,确定是否包含预定的操作元素;若上述运行界面截图包含预定的操作元素,则下发对上述运行界面截图中的操作元素的操作指令。
[0089]在本步骤软件测试过程中,被测试软件会执行点击、拖曳、系统按键等各种操作,具体测试过程依测试目的的不同可能有所不同,本发明实施例对被测试软件的具体的测试过程不予限定。
[0090]上述预定的操作元素,可以是预先确定的需要操作的元素图片,例如在可靠性测试过程中存在一些必须要优先点击或操作的控件,或者需要执行指定的操作序列,可以使用预定的操作元素来确定,例如可以包括:“确定”、“取消”、“关闭”、“下一步”、“上一步”等。本领域技术人员可以理解的是具体的操作元素是依据具体的被测试软件而定的,以上举例仅是常用的几种常用操作元素的举例,不应理解为对本发明实施例的唯一性限定。
[0091]本实施例,通过对测试过程中的运行界面截图的识别,确定其包含预定的操作元素,那么就下发对操作元素的操作指令。这样可以避免完全随机地进行操作很难命中的问题,从而避免自动测试过程中的停滞现象,从而提高了软件测试效率。
[0092]可选地,本发明实施例还提供了运行界面截图的获取方式,具体如下:上述处理器504,还用于获取软件测试过程中的运行界面截图包括:用于在软件测试过程中以预定时间为周期获取运行界面截图;或者,用于监测软件测试过程中的操作执行过程,在操作执行完毕后,获取运行界面截图。
[0093]本实施例,软件测试的过程可以是由被测试软件的运行设备来执行,也可以由专门的测试设备来执行。如果是被测试软件的运行设备来执行本实施例的方案,那么运行界面截图获取以后可以被发送给控制模块进行相关(图像识别等)处理;如果由专门的测试设备来执行本实施例的方案,那么截图可以由被测试软件的运行设备来执行截图,截图的指令可以是由上述专门的测试设备下发,也可以由被测试软件的运行设备生成。
[0094]例如:上例中,如果由被测试软件的运行设备来执行本实施例的方案,那么上述在软件测试过程中以预定时间为周期获取运行界面截图可以是:被测试软件的运行设备在软件测试过程中以预定时间为周期获取运行界面截图;或者是:被测试软件的运行设备在软件测试过程中接收以预定时间为周期获取运行界面截图的截图指令后,以上述截图指令指定的时间为周期获取运行界面截图。
[0095]再例如:上例中,如果由被测试软件的运行设备来执行本实施例的方案,那么上述监测软件测试过程中的操作执行过程,在操作执行完毕后,获取运行界面截图可以是:被测试软件的运行设备监测软件测试过程中的操作执行过程,在操作执行完毕后,获取运行界面截图;或者是,被测试软件的运行设备接收到来自测试设备发送的截图指令,获取运行界面截图;上述截图指令在上述测试设备监测到软件测试过程中的操作执行过程,并监测到操作执行完毕后由上述测试设备发出。
[0096]以上给出了两种运行界面截图的获取方案,本领域技术人员可以理解的是,触发对被测试软件的运行界面进行截图还可以有别的方式,本发明实施例不可能对此进行穷举,并且具体的触发方式并不影响本发明实施例的实现,因此本发明实施例对此不予限定,以上优选实现方式的举例也不应理解为对本发明实施例的唯一性限定。
[0097]可选地,由于一个运行界面截图可能会存在两个或者两个以上(即大于一个)的预定的操作元素,本发明实施例还提供了出现此种情况的解决方案,具体如下:若上述运行界面截图包含预定的操作元素大于一个,上述处理器504,用于下发对上述运行界面截图中的操作元素的操作指令包括:用于按照上述运行界面截图中的各操作元素的优先级,依次下发操作指令;或者,用于下发对上述运行界面截图中的各操作元素的操作指令以及各操作指令的执行优先级。
[0098]以上实施例通过优先级的方式确定了存在多个操作元素时对各操作元素如何处理的方案,以上优先级的方式可以实现过操作元素时各操作元素的执行顺序,为了实现对各操作元素执行顺序的控制,还可以采用顺序发送操作指令,各操作指令间隔预定时间,也是可以的。以上举例相对于采用间隔时间方式的方案而言,操作指令的执行速度会更快,也即是说软件测试的效率将会更高。以上采用优先级控制各操作元素的执行顺序的方案举例作为一个优选实现方式,不应理解为对本发明实施例的唯一限定。
[0099]进一步地,本发明实施例还提供了操作指令的发送方案的可选实现方式,具体如下:若上述运行界面截图包含预定的操作元素,上述处理器504,还用于确定操作元素在运行界面截图中的坐标;那么,上述下发对上述运行界面截图中的操作元素的操作指令包括:下发对上述运行界面截图中上述坐标的操作指令。
[0100]以上实施例通过获得操作元素的坐标,在操作指令中直接携带该坐标使被测试软件的运行设备对操作元素进行操作。本领域技术人员可以理解是,由于操作元素已经在运行界面截图中被识别出来,如何实现指令对其进行操作,本领域技术人员可以依据不同的情况采用不同的选择方案,因此操作指令不不仅限于采用携带坐标的方式来实现。因此以上举例不应理解为对本发明实施例的唯一性限定。
[0101]可选地,本发明实施例还提供给了如何确定是否包含预定操作元素的具体实现方式举例,如下:上述处理器504,用于对上述运行界面截图进行图像识别,确定是否包含预定的操作元素包括:用于使用预定的操作元素对上述运行界面截图执行模板匹配,确定是否包含预定的操作元素。
[0102]以上实施例给出了采用模板匹配的方式来实现图像识别,从而确定运行界面是否包含有预定的操作元素。本领域技术人员可以理解的是,图像识别的实现方式有很多,以上举例是基于软件测试【技术领域】,操作元素属于有限集的情况下,一种优选的实现方案。采用其它方案识别并判断是否存在预定的操作元素并不影响本发明实施例的实现,因此以上方案不应理解为对本发明实施例的唯一性限定。
[0103]本发明实施例还提供了另一种软件测试装置,如图6所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该装置以终端为例,终端可以为包括手机、平板电脑、PDA (Personal Digital Assistant,个人数字助理)、POS (Point of Sales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
[0104]图6示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图6,手机包括:射频(Rad1 Frequency,RF)电路610、存储器620、输入单元630、显示单元640、传感器650、音频电路660、无线保真(wireless fidelity,WiFi)模块670、处理器680、以及电源690等部件。本领域技术人员可以理解,图6中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0105]下面结合图6对手机的各个构成部件进行具体的介绍:
[0106]RF电路610可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器680处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier, LNA)、双工器等。此外,RF电路60还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communicat1n, GSM)、通用分组无线服务(General PacketRad1 Service, GPRS)、码分多址(Code Divis1n Multiple Access, CDMA)、宽带码分多址(Wideband Code Divis1n Multiple Access, WCDMA)、长期演进(Long Term Evolut1n,LTE)、电子邮件、短消息服务(Short Messaging Service, SMS)等。
[0107]存储器620可用于存储软件程序以及模块,处理器680通过运行存储在存储器620的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0108]输入单元630可用于接收输入的数字或字符信息,以及产生与手机600的用户设置以及功能控制有关的键信号输入。具体地,输入单元630可包括触控面板631以及其他输入设备632。触控面板631,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板631上或在触控面板631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器680,并能接收处理器680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板631。除了触控面板631,输入单元630还可以包括其他输入设备632。具体地,其他输入设备632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0109]显示单元640可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元640可包括显示面板641,可选的,可以采用液晶显示器(Liquid CrystalDisplay, IXD)、有机发光二极管(Organic Light-Emitting D1de, 0LED)等形式来配置显示面板641。进一步的,触控面板631可覆盖显示面板641,当触控面板631检测到在其上或附近的触摸操作后,传送给处理器680以确定触摸事件的类型,随后处理器680根据触摸事件的类型在显示面板641上提供相应的视觉输出。虽然在图6中,触控面板631与显示面板641是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板631与显示面板641集成而实现手机的输入和输出功能。
[0110]手机600还可包括至少一种传感器650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板641的亮度,接近传感器可在手机移动到耳边时,关闭显示面板641和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0111]音频电路660、扬声器661,传声器662可提供用户与手机之间的音频接口。音频电路660可将接收到的音频数据转换后的电信号,传输到扬声器661,由扬声器661转换为声音信号输出;另一方面,传声器662将收集的声音信号转换为电信号,由音频电路660接收后转换为音频数据,再将音频数据输出处理器680处理后,经RF电路610以发送给比如另一手机,或者将音频数据输出至存储器620以便进一步处理。
[0112]WiFi属于短距离无线传输技术,手机通过WiFi模块670可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块670,但是可以理解的是,其并不属于手机600的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0113]处理器680是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器620内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器680可包括一个或多个处理单元;优选的,处理器680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器680中。
[0114]手机600还包括给各个部件供电的电源690 (比如电池),优选的,电源可以通过电源管理系统与处理器680逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0115]尽管未示出,手机600还可以包括摄像头、蓝牙模块等,在此不再赘述。
[0116]在本发明实施例中,该终端所包括的处理器680还具有以下功能:
[0117]获取软件测试过程中的运行界面截图;对上述运行界面截图进行图像识别,确定是否包含预定的操作元素;若上述运行界面截图包含预定的操作元素,则下发对上述运行界面截图中的操作元素的操作指令。
[0118]在本步骤软件测试过程中,被测试软件会执行点击、拖曳、系统按键等各种操作,具体测试过程依测试目的的不同可能有所不同,本发明实施例对被测试软件的具体的测试过程不予限定。
[0119]上述预定的操作元素,可以是预先确定的需要操作的元素图片,例如在可靠性测试过程中存在一些必须要优先点击或操作的控件,或者需要执行指定的操作序列,可以使用预定的操作元素来确定,例如可以包括:“确定”、“取消”、“关闭”、“下一步”、“上一步”等。本领域技术人员可以理解的是具体的操作元素是依据具体的被测试软件而定的,以上举例仅是常用的几种常用操作元素的举例,不应理解为对本发明实施例的唯一性限定。
[0120]本实施例,通过对测试过程中的运行界面截图的识别,确定其包含预定的操作元素,那么就下发对操作元素的操作指令。这样可以避免完全随机地进行操作很难命中的问题,从而避免自动测试过程中的停滞现象,从而提高了软件测试效率。
[0121]可选地,本发明实施例还提供了运行界面截图的获取方式,具体如下:上述处理器608,还用于获取软件测试过程中的运行界面截图包括:用于在软件测试过程中以预定时间为周期获取运行界面截图;或者,用于监测软件测试过程中的操作执行过程,在操作执行完毕后,获取运行界面截图。
[0122]本实施例,软件测试的过程可以是由被测试软件的运行设备来执行,也可以由专门的测试设备来执行。如果是被测试软件的运行设备来执行本实施例的方案,那么运行界面截图获取以后可以被发送给控制模块进行相关(图像识别等)处理;如果由专门的测试设备来执行本实施例的方案,那么截图可以由被测试软件的运行设备来执行截图,截图的指令可以是由上述专门的测试设备下发,也可以由被测试软件的运行设备生成。
[0123]例如:上例中,如果由被测试软件的运行设备来执行本实施例的方案,那么上述在软件测试过程中以预定时间为周期获取运行界面截图可以是:被测试软件的运行设备在软件测试过程中以预定时间为周期获取运行界面截图;或者是:被测试软件的运行设备在软件测试过程中接收以预定时间为周期获取运行界面截图的截图指令后,以上述截图指令指定的时间为周期获取运行界面截图。
[0124]再例如:上例中,如果由被测试软件的运行设备来执行本实施例的方案,那么上述监测软件测试过程中的操作执行过程,在操作执行完毕后,获取运行界面截图可以是:被测试软件的运行设备监测软件测试过程中的操作执行过程,在操作执行完毕后,获取运行界面截图;或者是,被测试软件的运行设备接收到来自测试设备发送的截图指令,获取运行界面截图;上述截图指令在上述测试设备监测到软件测试过程中的操作执行过程,并监测到操作执行完毕后由上述测试设备发出。
[0125]以上给出了两种运行界面截图的获取方案,本领域技术人员可以理解的是,触发对被测试软件的运行界面进行截图还可以有别的方式,本发明实施例不可能对此进行穷举,并且具体的触发方式并不影响本发明实施例的实现,因此本发明实施例对此不予限定,以上优选实现方式的举例也不应理解为对本发明实施例的唯一性限定。
[0126]可选地,由于一个运行界面截图可能会存在两个或者两个以上(即大于一个)的预定的操作元素,本发明实施例还提供了出现此种情况的解决方案,具体如下:若上述运行界面截图包含预定的操作元素大于一个,上述处理器680,用于下发对上述运行界面截图中的操作元素的操作指令包括:用于按照上述运行界面截图中的各操作元素的优先级,依次下发操作指令;或者,用于下发对上述运行界面截图中的各操作元素的操作指令以及各操作指令的执行优先级。
[0127]以上实施例通过优先级的方式确定了存在多个操作元素时对各操作元素如何处理的方案,以上优先级的方式可以实现过操作元素时各操作元素的执行顺序,为了实现对各操作元素执行顺序的控制,还可以采用顺序发送操作指令,各操作指令间隔预定时间,也是可以的。以上举例相对于采用间隔时间方式的方案而言,操作指令的执行速度会更快,也即是说软件测试的效率将会更高。以上采用优先级控制各操作元素的执行顺序的方案举例作为一个优选实现方式,不应理解为对本发明实施例的唯一限定。
[0128]进一步地,本发明实施例还提供了操作指令的发送方案的可选实现方式,具体如下:若上述运行界面截图包含预定的操作元素,上述处理器680,还用于确定操作元素在运行界面截图中的坐标;那么,上述下发对上述运行界面截图中的操作元素的操作指令包括:下发对上述运行界面截图中上述坐标的操作指令。
[0129]以上实施例通过获得操作元素的坐标,在操作指令中直接携带该坐标使被测试软件的运行设备对操作元素进行操作。本领域技术人员可以理解是,由于操作元素已经在运行界面截图中被识别出来,如何实现指令对其进行操作,本领域技术人员可以依据不同的情况采用不同的选择方案,因此操作指令不不仅限于采用携带坐标的方式来实现。因此以上举例不应理解为对本发明实施例的唯一性限定。
[0130]可选地,本发明实施例还提供给了如何确定是否包含预定操作元素的具体实现方式举例,如下:上述处理器680,用于对上述运行界面截图进行图像识别,确定是否包含预定的操作元素包括:用于使用预定的操作元素对上述运行界面截图执行模板匹配,确定是否包含预定的操作元素。
[0131]以上实施例给出了采用模板匹配的方式来实现图像识别,从而确定运行界面是否包含有预定的操作元素。本领域技术人员可以理解的是,图像识别的实现方式有很多,以上举例是基于软件测试【技术领域】,操作元素属于有限集的情况下,一种优选的实现方案。采用其它方案识别并判断是否存在预定的操作元素并不影响本发明实施例的实现,因此以上方案不应理解为对本发明实施例的唯一性限定。
[0132]值得注意的是,上述装置实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0133]另外,本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0134]以上仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
【权利要求】
1.一种软件测试方法,其特征在于,包括: 获取软件测试过程中的运行界面截图; 对所述运行界面截图进行图像识别,确定是否包含预定的操作元素; 若所述运行界面截图包含预定的操作元素,则下发对所述运行界面截图中的操作元素的操作指令。
2.根据权利要求1所述方法,其特征在于,所述获取软件测试过程中的运行界面截图包括: 在软件测试过程中以预定时间为周期获取运行界面截图;或者, 监测软件测试过程中的操作执行过程,在操作执行完毕后,获取运行界面截图。
3.根据权利要求1或2所述方法,其特征在于,若所述运行界面截图包含预定的操作元素大于一个,所述下发对所述运行界面截图中的操作元素的操作指令包括: 按照所述运行界面截图中的各操作元素的优先级,依次下发操作指令;或者,下发对所述运行界面截图中的各操作元素的操作指令以及各操作指令的执行优先级。
4.根据权利要求1或2所述方法,其特征在于,若所述运行界面截图包含预定的操作元素,还包括:确定操作元素在运行界面截图中的坐标; 所述下发对所述运行界面截图中的操作元素的操作指令包括: 下发对所述运行界面截图中所述坐标的操作指令。
5.根据权利要求1或2所述方法,其特征在于,所述对所述运行界面截图进行图像识另O,确定是否包含预定的操作元素包括: 使用预定的操作元素对所述运行界面截图执行模板匹配,确定是否包含预定的操作元素。
6.一种软件测试装置,其特征在于,包括: 截图获取单元,用于获取软件测试过程中的运行界面截图; 元素确定单元,用于对所述截图获取单元获取的所述运行界面截图进行图像识别,确定是否包含预定的操作元素; 指令下发单元,用于若所述元素确定单元确定所述运行界面截图包含预定的操作元素,则下发对所述运行界面截图中的操作元素的操作指令。
7.根据权利要求6所述装置,其特征在于, 所述截图获取单元,用于在软件测试过程中以预定时间为周期获取运行界面截图;或者,监测软件测试过程中的操作执行过程,在操作执行完毕后,获取运行界面截图。
8.根据权利要求6或7所述装置,其特征在于, 所述指令下发单元,用于若所述元素确定单元确定所述运行界面截图包含预定的操作元素大于一个,则按照所述运行界面截图中的各操作元素的优先级,依次下发操作指令;或者,下发对所述运行界面截图中的各操作元素的操作指令以及各操作指令的执行优先级。
9.根据权利要求6或7所述装置,其特征在于,还包括: 坐标确定单元,用于若所述元素确定单元确定所述运行界面截图包含预定的操作元素,确定操作元素在运行界面截图中的坐标; 所述指令下发单元,用于下发对所述运行界面截图中所述坐标确定单元确定的坐标的操作指令。
10.根据权利要求6或7所述装置,其特征在于, 所述元素确定单元,用于使用预定的操作元素对所述运行界面截图执行模板匹配,确定是否包含预定的操作元素。
【文档编号】G06F11/36GK104516812SQ201310450584
【公开日】2015年4月15日 申请日期:2013年9月27日 优先权日:2013年9月27日
【发明者】吴英, 李凌虹 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1