测试例生成方法和测试例生成设备的制造方法
【技术领域】
[0001]本发明一般地涉及应用程序测试领域。具体而言,本发明涉及一种生成用于测试应用于触摸式操作设备的应用程序的测试例的方法和设备。
【背景技术】
[0002]近年来,随着触摸式操作设备相关技术的飞速发展,触摸式操作设备得到了普遍的应用。触摸式操作设备例如是智能手机、平板电脑、智能电视等。相应地,触摸式操作设备上的应用程序层出不穷。仅在智能手机上使用的应用程序就数以千万计。
[0003]由于竞争激烈,应用程序的开发周期短,对应用程序的要求高。应用程序在发布之前,要经过严格的测试以保证应用程序的质量,但又不希望测试占用的时间过长。测试的基础是测试例。测试例的好坏直接影响测试的结果,并进而影响应用程序的用户体验。然而,测试例的生成通常占用很多时间。
[0004]传统地,依靠人工去设计应用程序的测试例,这样的工作是繁杂、低效、易出错的。人工设计的测试例的广度、深度不容易根据需要灵活地调整。人工设计测试例的方式难以自动、高效、灵活地生成测试例。
[0005]因此,期望一种生成用于测试应用于触摸式操作设备的应用程序的测试例的方法和设备,其能够自动、高效、灵活地生成所需的测试例。
【发明内容】
[0006]在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
[0007]本发明的目的是针对现有技术的上述问题,提出了一种能够自动、高效、灵活地生成所需的用于测试应用于触摸式操作设备的应用程序的测试例的方法和设备。
[0008]为了实现上述目的,根据本发明的一个方面,提供了一种生成用于测试应用于触摸式操作设备的应用程序的测试例的方法,该方法包括:从所述应用程序的候选用户操作队列中,选择一个用户操作并将其从所述队列中删除,所述用户操作是在特定界面上的特定区域中执行的特定动作;执行所选择的用户操作,以获得所述应用程序的当前界面;判断是否访问过当前界面,如果已访问过当前界面,则生成所述测试例,其包括从所述触摸式操作设备的主界面开始的、已执行的、导致当前界面的一系列用户操作,如果未访问过当前界面,则根据当前界面获取当前界面上的用户操作,并将所获取的用户操作加入所述队列中;重复执行上述步骤,直至达到预定条件。
[0009]根据本发明的另一个方面,提供了一种生成用于测试应用于触摸式操作设备的应用程序的测试例的设备,该设备包括:选择装置,被配置为:从所述应用程序的候选用户操作队列中,选择一个用户操作并将其从所述队列中删除,所述用户操作是在特定界面上的特定区域中执行的特定动作;执行装置,被配置为:执行所选择的用户操作,以获得所述应用程序的当前界面;判断装置,被配置为:判断是否访问过当前界面,在判断为已访问过当前界面的情况下,指令生成装置生成所述测试例,所述测试例包括从所述触摸式操作设备的主界面开始的、已执行的、导致当前界面的一系列用户操作,在判断为未访问过当前界面的情况下,指令获取装置根据当前界面获取当前界面上的用户操作,并将所获取的用户操作加入所述队列中;控制装置,被配置为:指令所述选择装置、执行装置、判断装置执行,直至达到预定条件。
[0010]另外,根据本发明的另一方面,还提供了一种存储介质。所述存储介质包括机器可读的程序代码,当在信息处理设备上执行所述程序代码时,所述程序代码使得所述信息处理设备执行根据本发明的上述方法。
[0011 ] 此外,根据本发明的再一方面,还提供了一种程序产品。所述程序产品包括机器可执行的指令,当在信息处理设备上执行所述指令时,所述指令使得所述信息处理设备执行根据本发明的上述方法。
【附图说明】
[0012]参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。附图中的部件只是为了示出本发明的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。附图中:
[0013]图1示出了根据本发明的实施例的测试例生成方法的流程图;
[0014]图2示出了屏幕分块的示例;
[0015]图3示出了根据本发明实施例的测试例生成设备的结构方框图;以及
[0016]图4示出了可用于实施根据本发明实施例的方法和设备的计算机的示意性框图。
【具体实施方式】
[0017]在下文中将结合附图对本发明的示范性实施例进行详细描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施方式的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。
[0018]在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其他细节。另外,还需要指出的是,在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。
[0019]下面将参照图1描述根据本发明的实施例的测试例生成方法的流程。
[0020]图1示出了根据本发明的实施例的测试例生成方法的流程图。如图1所示,根据本发明的实施例的生成用于测试应用于触摸式操作设备的应用程序的测试例的方法,包括如下步骤:从所述应用程序的候选用户操作队列中,选择一个用户操作并将其从所述队列中删除,所述用户操作是在特定界面上的特定区域中执行的特定动作(步骤Si);执行所选择的用户操作,以获得所述应用程序的当前界面(步骤S2);判断是否访问过当前界面,如果已访问过当前界面,则生成所述测试例,其包括从所述触摸式操作设备的主界面开始的、已执行的、导致当前界面的一系列用户操作,如果未访问过当前界面,则根据当前界面获取当前界面上的用户操作,并将所获取的用户操作加入所述队列中(步骤S3);以及判断是否达到预定条件。如果达到预定条件,则结束整个流程。如果未达到预定条件,则进行到步骤SI,重新执行上述步骤S1-S3 (步骤S4)。
[0021]测试例本质上是一系列的用户操作。用户操作是指用户在应用程序上的特定界面上的特定区域中执行的特定动作。测试例模拟的就是用户可能做出的操作的序列。
[0022]由于针对的是触摸式操作设备,所以用户的操作针对应用程序的界面上的区域。应用程序的界面至少包括主界面和从主界面因用户操作而切换到的一级界面。应用程序的界面还可能包括从一级界面因用户操作而切换到的二级界面,依次类推。界面的级别数越大,用户操作涉及的深度越深。
[0023]每个界面都可划分为多个区域。用户操作涉及的一个界面中的区域的数量越多,用户操作涉及的广度越大。在不考虑开销的情况下,测试例所包含的用户操作所涉及的深度越深、广度越大,测试例的测试效果越好。
[0024]用户的动作可以包括用户针对触摸式操作设备可能做出的所有动作,包括,但不限于:单击操作、双击操作、向左滑动操作、向右滑动操作、向上滑动操作、向下滑动操作等。
[0025]在本发明的方法中,维护有一个应用程序的候选用户操作队列。队列可以是先入先出的队列,也可以是按优先级排序的队列,也可以是无顺序排列随机取出项目的队列。应用程序的候选用户操作队列中存储的是待测试应用程序的候选的用户操作。
[0026]在该队列的初始化中,向队列中加入的第一个用户操作是在触摸式操作设备的主界面上启动应用程序的动作。在随后的处理中,如下文中详细描述的那样,将根据当前界面的解析结果,添加新的用户操作。
[0027]在步骤SI中,从所述应用程序的候选用户操作队列中,选择一个用户操作并将其从所述队列中删除。
[0028]从应用程序的候选用户操作队列中选择用户操作的方式可以是随机选择。这种方式的优点是比较灵活,能够解决其它方式中难以选择的情形。例如,在根据优先级进行选择时,如果两个候选用户操作的优先级相同,可以随机选择两者之一。这种方式的不足是缺乏针对性。
[0029]从应用程序的候选用户操作队列中选择用户操作的方式可以是按优先级选择。艮P,选择优先级最高的候选用户操作。这种方式的优点是可以按实际情况的需要,有针对性地进行测试例的生成,更好地体现待测试的重点因素。例如,希望主要针对点击操作进行测试。可以向点击类型的用户操作赋予较高的优先级。再比如,希望深度优先。可以向针对较深界面的用户操作赋予