生成应用程序的测试用例的方法和装置与流程

文档序号:12596961阅读:220来源:国知局
生成应用程序的测试用例的方法和装置与流程

本发明涉及应用程序测试领域,更具体地涉及一种生成应用程序的测试用例的方法和装置。



背景技术:

随着适配手机、平板电脑、PC等的网页应用程序的快速发展,开发人员和测试人员在应用测试上花费的时间和精力越来越多。不同的系统,不同的浏览器,不同的屏幕分辨率等导致了很大的困难。测试人员需要为每个系统编写独立的测试用例,而这些测试用例很难用于其他系统。目前对于每一个待测应用程序,测试人员必须手写很多测试用例,这是非常耗时耗力和不便的。并且通常来说,这些测试用例基本上不适用于一个新的待测应用程序,对于一个新的待测应用程序,测试人员必须重新编写新的测试用例。这类工作是非常耗时的。

因此,需要一种能够辅助测试人员更加智能和方便地生成应用程序的测试用例的方法和装置。



技术实现要素:

在下文中给出关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。

本发明的一个主要目的在于,提供了一种生成应用程序的测试用例的方法,包括:根据待测应用程序中的各个控件的特征来分别构建各个控件的特征向量;根据多个历史测试用例中的控件的特征分别构建各个控件的特征向量,并基于所构建的所有历史测试用例中的控件的特征向量来计算表示控件在历史测试用例中的优先级的参考向量;计算所述待测应用程序 的各个控件的特征向量与所述参考向量的相似度;取第一预定数量的相似度大的控件或者所述相似度大于预定阈值的控件作为所述待测应用程序的待测控件;以及基于所述待测控件来生成所述待测应用程序的测试用例。

根据本发明的一个方面,提供一种生成应用程序的测试用例的装置,包括:控件特征向量构建单元,被配置为根据待测应用程序中的各个控件的特征来分别构建各个控件的特征向量;参考向量构建单元,被配置为根据多个历史测试用例中的控件的特征分别构建各个控件的特征向量,并基于所构建的所有历史测试用例中的控件的特征向量来计算表示控件在历史测试用例中的优先级的参考向量;相似度计算单元,被配置为计算所述待测应用程序的各个控件的特征向量与所述参考向量的相似度;待测控件确定单元,被配置为取第一预定数量的相似度大的控件或者所述相似度大于预定阈值的控件作为所述待测应用程序的待测控件;以及测试用例生成单元,被配置为基于所述待测控件来生成所述待测应用程序的测试用例。

另外,本发明的实施例还提供了用于实现上述方法的计算机程序。

此外,本发明的实施例还提供了至少计算机可读介质形式的计算机程序产品,其上记录有用于实现上述方法的计算机程序代码。

通过以下结合附图对本发明的最佳实施例的详细说明,本发明的这些以及其他优点将更加明显。

附图说明

参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。附图中的部件只是为了示出本发明的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。

图1示出了根据本发明的一个实施例的生成应用程序的测试用例的总体框架图;

图2示出了根据本发明的一个实施例的生成网页页面的测试用例的方法200的示例性过程的流程图;

图3示出了图2中的步骤S202的一种示例性过程的流程图;

图4示出了图2中的步骤S202的另一种示例性过程的流程图;

图5示出了根据本发明的另一个实施例的生成应用程序的测试用例的方法500的示例性过程的流程图;

图6示出了测试用例生成的示意流程图;

图7是示出根据本发明的一个实施例的生成应用程序的测试用例的装置700的示例性配置的框图;

图8示出了图7中的控件特征向量构建单元702的一个示例性配置的结构框图;以及

图9示出了控件特征向量构建单元702的另一个示例性配置的结构框图;

图10是示出根据本发明的另一个实施例的生成应用程序的测试用例的装置1000的示例性配置的框图;以及

图11是示出可以用于实施本发明的生成网页页面的测试用例的方法和装置的计算设备的示例性结构图。

具体实施方式

在下文中将结合附图对本发明的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。

在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的设备结构和/或处理步骤,而省略了与本发明关系不大的其他细节。

本发明提出了一种能够辅助测试人员自动或者更智能地生成应用程序的测试用例的方法和装置。应用程序是由一系列控件(control)组成的,对于待测应用程序,测试人员会按照用户使用习惯或者程序设计目标,首先对其最感兴趣的控件进行集中测试,以保证程序在最重要的控件中不会出现错误。事实上,测试人员往往将主要精力集中在他们最感兴趣的控件上,也就是实际的用户最感兴趣的控件。无论是用户还是开发人员还是测 试人员,都希望他们最感兴趣的核心功能运行良好不出错,这也是应用程序最基本的要求。

对于那些相比较并不非常重要的模块,比如程序底部的版权栏等,可以认为有着较低的权重。对于登录界面,最重要的控件莫过于登录相关的控件,如用户名和密码输入框,登录按钮等等。发明人发现,如果我们的测试用例覆盖到这些主要控件,那么主要的测试任务就已经完成了。

所以在本发明的方法中,首先确定应用程序中控件的权重,将高权重的控件集中处理,自动生成相关测试用例。最终,通过分析控件权重,可以自动生成测试用例,大大提高了工作效率。

下面结合附图详细说明根据本发明的实施例的生成应用程序的测试用例的方法和装置。下文中的描述按如下顺序进行:

1.生成应用程序的测试用例的方法

2.生成应用程序的测试用例的装置

3.用以实施本申请的方法和装置的计算设备

[1.生成应用程序的测试用例的方法]

图1示出了根据本发明的一个实施例的生成应用程序的测试用例的总体框架图。

图1中展示了生成应用程序的测试用例的总流程,其中包括两个关键点:1)控件权重的定义和计算;2)根据控件权重生成测试用例。

下面将结合附图详细说明控件权重的定义和计算以及如何生成测试用例。

图2示出了根据本发明的一个实施例的生成网页页面的测试用例的方法200的示例性过程的流程图。

首先,在S202中,根据待测应用程序中的各个控件的特征来分别构建各个控件的特征向量。

构建控件的特征向量是为了定义控件的权重。首先要找出影响控件权重的因素,然后根据影响控件权重的因素,来计算控件权重。

在本发明中,通过观察和实验选择了如下表1中的一个或多个特征作为影响控件权重的因素。

表1控件特征

在表1中,特征1-5是与控件的内容相关的特征。特征1表示这个控件上面的文本,比如“提交”按钮上的“提交”文本,高权重的控件通常拥有相似的文本。特征2指的是控件的标识符,是该界面中,控件的唯一标识符,通常是一到两个短语,比如:“com.android.input/username”。特征3表示控件所属的类,比如:“android.widget.RelativeLayout”。特征4表示控件所属的包。特征5表示控件的文本描述,指的是程序内部描述控件的注释。特征6-9是与控件的操作相关的特征。特征6表示控件是否能被勾选。特征7表示控件是否能被点击。特征8表示控件是否可用。特征9表示控件是否支持被长按。特征10-11是与控件的外观相关的特征。特征10-11示出了控件的位置和大小,位置信息是坐标值,例如(100,200),可以将这两个值相加作为位置特征值。这些特征专注于控件的基本属性,在本发明中认为高权重的控件通常拥有相似的特征值。

本领域技术人员可以理解,影响控件权重的因素的特征不限于表1中列出的控件的特征。

图3示出了图2中的步骤S202的一种示例性过程的流程图。步骤S202可以包括以下子步骤:S2021,提取与控件的内容相关的特征;S2022,针对这些特征在历史测试用例中出现的每个单词,根据该单词对其所在的历史测试用例的重要程度来计算该单词的特征值;以及S2023,将所计算的 各个单词的特征值作为特征向量的元素来构建特征向量。

图4示出了图2中的步骤S202的另一种示例性过程的流程图。在图4中所示的示例中,步骤S202包括的子步骤S2021和S2022与图3中的子步骤S2021和S2022类似,在此不再赘述。除此之外,步骤S202还可以包括以下子步骤:S2024,提取与控件的操作相关的特征和与控件的外观相关的特征;S2025,向与控件的操作相关的特征和与控件的外观相关的特征中的每个特征分配特定的特征值;S2026,以及将所分配的特定的特征值连同所计算的各个单词的特征值作为特征向量的元素来构建特征向量。

注意到特征1-特征5的内容都是一个字符串,包含了一个或者多个词语,比如‘com.chineseskill:id/img_unit_index_icon’,‘android.widget.ImageView’等等。所以需要将其转化成能够进行数值运算的形式,为了解决这个问题,在一个实施例中,将与控件的内容相关的特征1-特征5在所有历史测试用例中出现的单词的特征值放在一起,形成特征向量的一部分,再结合特征6-特征11,最终生成描述控件的特征向量,用来表示:

<mrow> <mover> <mi>C</mi> <mo>&RightArrow;</mo> </mover> <mo>=</mo> <mrow> <mo>(</mo> <msub> <mi>Value</mi> <mrow> <mi>w</mi> <mi>o</mi> <mi>r</mi> <mi>d</mi> <mn>1</mn> </mrow> </msub> <mo>,</mo> <msub> <mi>Value</mi> <mrow> <mi>w</mi> <mi>o</mi> <mi>r</mi> <mi>d</mi> <mn>2</mn> </mrow> </msub> <mn>...</mn> <msub> <mi>Value</mi> <mrow> <mi>w</mi> <mi>o</mi> <mi>r</mi> <mi>d</mi> <mi>n</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>Value</mi> <mrow> <mi>f</mi> <mi>e</mi> <mi>a</mi> <mi>t</mi> <mi>u</mi> <mi>r</mi> <mi>e</mi> <mn>6</mn> </mrow> </msub> <mo>,</mo> <msub> <mi>Value</mi> <mrow> <mi>f</mi> <mi>e</mi> <mi>a</mi> <mi>t</mi> <mi>u</mi> <mi>r</mi> <mi>e</mi> <mn>7</mn> </mrow> </msub> <mo>,</mo> <mn>...</mn> <msub> <mi>Value</mi> <mrow> <mi>f</mi> <mi>e</mi> <mi>a</mi> <mi>t</mi> <mi>u</mi> <mi>r</mi> <mi>e</mi> <mn>11</mn> </mrow> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

在向量中,word1-wordn表示在历史测试用例中出现的词语集合中的每个单词,Valuewordn表示该单词在本控件的特征向量中的特征值,该特征值可以根据该单词对其所在的历史测试用例的重要程度来计算;Valuefeature6至Valuefeature11的类型是布尔值或整数。

在一个示例中,可以使用下面的公式2来计算每个单词的Valuewordn

<mrow> <msub> <mi>Value</mi> <mrow> <mi>w</mi> <mi>o</mi> <mi>r</mi> <mi>d</mi> <mi>n</mi> </mrow> </msub> <mo>=</mo> <msub> <mi>Frequency</mi> <mrow> <mi>c</mi> <mi>o</mi> <mi>n</mi> <mi>t</mi> <mi>r</mi> <mi>o</mi> <mi>l</mi> </mrow> </msub> <mo>*</mo> <mfrac> <mrow> <msub> <mi>Summary</mi> <mrow> <mi>h</mi> <mi>i</mi> <mi>s</mi> <mi>t</mi> <mi>o</mi> <mi>r</mi> <mi>y</mi> </mrow> </msub> </mrow> <mrow> <msub> <mi>Count</mi> <mrow> <mi>h</mi> <mi>i</mi> <mi>s</mi> <mi>t</mi> <mi>o</mi> <mi>r</mi> <mi>y</mi> </mrow> </msub> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

在公式2中,Valueword表示wordn的特征值,Frequencycontrol表示该控件中出现wordn的频次,次数越多该词汇权重越高,Summaryhistory表示wordn在整个历史测试用例中出现的总次数,次数越多该词汇权重越高,Counthistory表示历史测试用例的总个数。

上面通过步骤S202,构建了待测应用程序中的各个控件的特征向量。

接下来,在步骤S204中,根据多个历史测试用例中的控件的特征分别构建各个控件的特征向量,并基于所构建的所有历史测试用例中的控件 的特征向量来计算表示控件在历史测试用例中的优先级的参考向量。

按照与上述构建待测应用程序中的各个控件的特征向量相同的方法,来构建多个任意应用程序的历史测试用例中的每个控件的特征向量。

然后基于所构建的所有历史测试用例中的控件的特征向量,来确定一个可以反映控件在历史测试用例中的优先级的参考向量。

在一个示例中,使用公式3来计算历史测试用例中的控件的参考向量,也称为控件的中心向量。

<mrow> <msub> <mover> <mi>C</mi> <mo>&RightArrow;</mo> </mover> <mi>c</mi> </msub> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mn>1</mn> <mi>n</mi> </munderover> <msub> <mover> <mi>C</mi> <mo>&RightArrow;</mo> </mover> <mi>n</mi> </msub> </mrow> <mi>n</mi> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

在公式3中,表示历史测试用例中的控件的中心向量,通过计算所有控件的特征向量的平均向量,得到了所有控件的中心向量。

对于待测应用程序的控件,只需计算该控件的特征向量和历史测试用例中控件的中心向量的相似度,就可以判定该控件的权重高低。

因此,在步骤S206中,计算待测应用程序的各个控件的特征向量与中心向量的相似度。

在一个示例中,使用公式4来计算两个特征向量之间的相似度,也就是向量的夹角余弦值,作为控件的权重值:

<mrow> <msub> <mi>S</mi> <mi>c</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mover> <mi>S</mi> <mo>&RightArrow;</mo> </mover> <mo>&CenterDot;</mo> <msub> <mover> <mi>C</mi> <mo>&RightArrow;</mo> </mover> <mi>c</mi> </msub> </mrow> <mrow> <mrow> <mo>|</mo> <mover> <mi>S</mi> <mo>&RightArrow;</mo> </mover> <mo>|</mo> </mrow> <mo>&CenterDot;</mo> <mrow> <mo>|</mo> <msub> <mover> <mi>C</mi> <mo>&RightArrow;</mo> </mover> <mi>c</mi> </msub> <mo>|</mo> </mrow> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

本发明中,认为得到的权重值最高的特定数量的控件是应当在测试用例中进行测试的控件。

在步骤S208中,取预定数量的相似度大的控件或者相似度大于预定阈值的控件作为待测应用程序的待测控件。

如果该控件的特征向量和中心向量相似度高于某一设定的阈值,即可以认为这个控件足够重要,可以将其放在下一步的自动测试用例生成中;或者如果一个界面中有N个控件,可以取权重值最高的前40%的控件,进行进一步的分析,来生成测试用例。例如,如果总共有10个控件,将选择具有最高权重的4个控件进行测试。

最后,在步骤S210中,基于确定的待测控件来生成待测应用程序的测试用例。

在生成测试用例时,可以使用权重高的控件来生成测试用例。可以理解,不同的控件拥有不同的操作。比如,文本框有输入操作,按钮有点击操作,可滚动的视图(viewer)有滚动操作。可以将不同的操作和不同的控件关联在一起,形成针对该控件的特定操作,然后在这些操作中选取权重高的一部分操作,将这些操作按顺序执行,生成测试用例。

图5示出了根据本发明的另一个实施例的生成应用程序的测试用例的方法500的示例性过程的流程图。

图5中的生成应用程序的测试用例的方法500的步骤S502至S508与图2中的生成应用程序的测试用例的方法200的步骤S202至S208类似,在此不再赘述。

在方法500中,步骤S508之后还包括步骤S511,确定待测控件的各个操作的权重,该权重表示该操作在历史测试用例中的常用度,以及步骤S512,选择第二预定数量的权重高的操作作为该待测控件的待测操作。

因为与控件相关联的操作有很多种,所以首先确定在特定控件中,最常用的操作。在本发明中,基于历史测试用例来确定操作的常用度,用操作的权重来表示该操作在历史测试用例中的常用度。在一个示例中,使用公式5来计算操作的权重:

<mrow> <msubsup> <mi>Operation</mi> <mrow> <mi>w</mi> <mi>e</mi> <mi>i</mi> <mi>g</mi> <mi>h</mi> <mi>t</mi> </mrow> <mrow> <mi>c</mi> <mi>o</mi> <mi>n</mi> <mi>t</mi> <mi>r</mi> <mi>o</mi> <mi>l</mi> </mrow> </msubsup> <mo>=</mo> <mfrac> <mrow> <msubsup> <mi>Frequency</mi> <mrow> <mi>o</mi> <mi>p</mi> <mi>e</mi> <mi>r</mi> <mi>a</mi> <mi>t</mi> <mi>i</mi> <mi>o</mi> <mi>n</mi> </mrow> <mrow> <mi>c</mi> <mi>o</mi> <mi>n</mi> <mi>t</mi> <mi>r</mi> <mi>o</mi> <mi>l</mi> </mrow> </msubsup> </mrow> <mrow> <msub> <mi>Frequncy</mi> <mrow> <mi>c</mi> <mi>o</mi> <mi>n</mi> <mi>t</mi> <mi>r</mi> <mi>o</mi> <mi>l</mi> </mrow> </msub> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

在本公式中,表示该操作在特定控件中的权重。右边分子表示该操作在特定控件中出现的次数,分母表示控件本身出现的次数。比如对于一个文本框控件Control_TextBox,它在历史测试用例中出现的次数是100,可以认为每次控件出现,必然伴随一种操作,如输入,点击等,其中在这100次出现中,点击操作出现了50次,那么这个点击操作在文本框控件中的权重就是50/100。一个操作出现的次数越多,则其权重越高。在计算了每个操作的权重之和,选择预定数量的权重高的操作作为该待测控件的待测操作。例如,对于一个待测控件,可以选择前5个或者前10个权重高的操作来生成测试用例。

在方法500中,最后在步骤S513中,基于所确定的待测控件和待测 控件的待测操作来生成测试用例。

图6示出了测试用例生成的示意流程图。应用程序的每个activity(界面)都包含着针对其中控件的一系列操作。本发明的方法首先选中特定数量的最高权重(权重值根据公式(5)获得)的操作,针对每一个操作,将其施加于和其关联的所有高权重的控件上,该操作完成后,在新的界面上重复该流程,直到每个界面中的每个操作以及每个控件都被覆盖到。图4中的每个独立的路径,或者每个环形路径,都是一个独立的用例,由此,就可以生成一系列的测试用例,提供给测试人员进行测试了。

比如:对于登录界面,计算得到高权重的操作有点击、输入等,而高权重的控件有用户名、密码输入框,以及提交按钮。那么系统会将点击、输入等操作分别关联每个高权重的控件,然后按照图6中的有向图结构,执行每个操作序列。如首先点击用户名输入框,然后输入特定文字,接着点击提交按钮。通过执行每个有向图中的操作序列,在自动生成测试用例的过程中,同时也能达到高覆盖率的目的。

[2.生成应用程序的测试用例的装置]

图7是示出根据本发明的一个实施例的生成应用程序的测试用例的装置700的示例性配置的框图。

如图7所示,生成应用程序的测试用例的装置700包括控件特征向量构建单元702、参考向量构建单元704、相似度计算单元706、待测控件确定单元708、测试用例生成单元710。

其中,控件特征向量构建单元702被配置为根据待测应用程序中的各个控件的特征来分别构建各个控件的特征向量。

参考向量构建单元704被配置为根据多个历史测试用例中的控件的特征分别构建各个控件的特征向量,并基于所构建的所有历史测试用例中的控件的特征向量来计算表示控件在历史测试用例中的优先级的参考向量。

相似度计算单元706被配置为计算待测应用程序的各个控件的特征向量与参考向量的相似度。

待测控件确定单元708被配置为取第一预定数量的相似度大的控件或者相似度大于预定阈值的控件作为待测应用程序的待测控件。

测试用例生成单元710被配置为基于待测控件来生成待测应用程序的 测试用例。

图8示出了图7中的控件特征向量构建单元702的一个示例性配置的结构框图。如图8所示,控件特征向量构建单元702包括:第一特征提取子单元7021,被配置为提取与控件的内容相关的特征;特征值计算子单元7022被配置为针对这些特征在历史测试用例中出现的每个单词,根据该单词对其所在的历史测试用例的重要程度来计算该单词的特征值;以及特征向量构建子单元7023被配置为将所计算的各个单词的特征值作为特征向量的元素来构建特征向量。

图9示出了控件特征向量构建单元702的另一个示例性配置的结构框图。在图9所示的示例中,控件特征向量构建单元702包括的子单元7021和7022与图8中的子单元7021和7022类似,在此不再赘述。除此之外,图9中的控件特征向量构建单元702还可以包括:第二特征提取子单元7024,被配置为提取与控件的操作相关的特征和与控件的外观相关的特征;以及特征值分配子单元7025,被配置为向与控件的操作相关的特征和与控件的外观相关的特征中的每个特征分配特定的特征值。图9中的特征向量构建子单元7026进一步被配置为将所分配的特定的特征值连同所计算的各个单词的特征值作为特征向量的元素来构建特征向量。

其中,与控件的内容相关的特征包括以下中的至少一项:控件上的文本、控件的标识符、控件所属的类、控件所属的包以及控件的文本描述。

其中,与控件的操作相关的特征包括以下中的至少一项:控件是否可勾选、控件是否可点击、控件是否可用以及控件是否支持被长按。

其中,与控件的外观相关的特征包括以下中的至少一项:控件在待测应用程序中运行时在显示界面中的位置以及控件的大小。

其中,特征值计算子单元7022进一步被配置为:将该单词在该控件中出现的次数乘以该单词在所有历史测试用例中出现的总次数再除以历史测试用例的总个数来计算该单词的特征值。

图10是示出根据本发明的另一个实施例的生成应用程序的测试用例的装置1000的示例性配置的框图。

图10所示的生成应用程序的测试用例的装置1000所包括的控件特征向量构建单元1002、参考向量构建单元1004、相似度计算单元1006、待测控件确定单元1008与图7中的生成应用程序的测试用例的装置700所包括的控件特征向量构建单元702、参考向量构建单元704、相似度计算 单元706、待测控件确定单元708类似,在此不再赘述。

图10所示的生成应用程序的测试用例的装置1000还包括操作权重确定单元1011,被配置为确定待测控件的各个操作的权重,权重表示该操作在历史测试用例中的常用度,以及待测操作确定单元1012被配置为选择第二预定数量的权重大的操作作为该待测控件的待测操作。

在图10所示的生成应用程序的测试用例的装置1000中,测试用例生成单元1013进一步被配置为:基于待测控件和待测控件的待测操作来生成测试用例。

其中,操作权重确定单元1011进一步被配置为:通过将历史测试用例中该操作在该控件中出现的次数除以该控件出现的总次数来计算权重。

关于生成应用程序的测试用例的装置700和1000的各个部分的操作和功能的细节可以参照结合图1-6描述的本发明的生成应用程序的测试用例的方法的实施例,这里不再详细描述。

在此需要说明的是,图7-10所示的装置及其组成单元的结构仅仅是示例性的,本领域技术人员可以根据需要对图7-10所示的结构框图进行修改。

本发明提出一种能够辅助测试人员自动或者更智能地生成应用程序的测试用例的方法和装置。根据本发明的方法和装置,首先确定应用程序中控件的权重,将高权重的控件集中处理,自动生成相关测试用例。最终,通过分析控件权重,可以自动生成测试用例,大大提高了工作效率。

[3.用以实施本申请的方法和装置的计算设备]

以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。

因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序 产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。

在通过软件和/或固件实现本发明的实施例的情况下,从存储介质或网络向具有专用硬件结构的计算机,例如图11所示的通用计算机1100安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等等。

在图11中,中央处理单元(CPU)1101根据只读存储器(ROM)1102中存储的程序或从存储部分1108加载到随机存取存储器(RAM)1103的程序执行各种处理。在RAM 1103中,也根据需要存储当CPU 1101执行各种处理等等时所需的数据。CPU 1101、ROM 1102和RAM 1103经由总线1104彼此链路。输入/输出接口1105也链路到总线1104。

下述部件链路到输入/输出接口1105:输入部分1106(包括键盘、鼠标等等)、输出部分1107(包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等)、存储部分1108(包括硬盘等)、通信部分1109(包括网络接口卡比如LAN卡、调制解调器等)。通信部分1109经由网络比如因特网执行通信处理。根据需要,驱动器1110也可链路到输入/输出接口1105。可拆卸介质1111比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器1110上,使得从中读出的计算机程序根据需要被安装到存储部分1108中。

在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质1111安装构成软件的程序。

本领域的技术人员应当理解,这种存储介质不局限于图11所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质1111。可拆卸介质1111的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM 1102、存储部分1108中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。

本发明还提出一种存储有机器可读取的指令代码的程序产品。指令代码由机器读取并执行时,可执行上述根据本发明实施例的方法。

相应地,用于承载上述存储有机器可读取的指令代码的程序产品的存 储介质也包括在本发明的公开中。存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等。

本领域的普通技术人员应理解,在此所例举的是示例性的,本发明并不局限于此。

在本说明书中,“第一”、“第二”以及“第N个”等表述是为了将所描述的特征在文字上区分开,以清楚地描述本发明。因此,不应将其视为具有任何限定性的含义。

作为一个示例,上述方法的各个步骤以及上述设备的各个组成模块和/或单元可以实施为软件、固件、硬件或其组合,并作为相应设备中的一部分。上述装置中各个组成模块、单元通过软件、固件、硬件或其组合的方式进行配置时可使用的具体手段或方式为本领域技术人员所熟知,在此不再赘述。

作为一个示例,在通过软件或固件实现的情况下,可以从存储介质或网络向具有专用硬件结构的计算机(例如图11所示的通用计算机1100)安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等。

在上面对本发明具体实施例的描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其他实施方式中使用,与其他实施方式中的特征相组合,或替代其他实施方式中的特征。

应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其他特征、要素、步骤或组件的存在或附加。

此外,本发明的方法不限于按照说明书中描述的时间顺序来执行,也可以按照其他的时间顺序地、并行地或独立地执行。因此,本说明书中描述的方法的执行顺序不对本发明的技术范围构成限制。

本发明及其优点,但是应当理解在不超出由所附的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替代和变换。而且,本发明的范围不仅限于说明书所描述的过程、设备、手段、方法和步骤的具体实施例。本领域内的普通技术人员从本发明的公开内容将容易理解,根据本发明可以使用执行与在此的相应实施例基本相同的功能或者获得与其基本相同的结果的、现有和将来要被开发的过程、设备、手段、方法或者步骤。因此,所附的权利要求旨在在它们的范围内包括这样的过程、设 备、手段、方法或者步骤。

基于以上的说明,可知公开至少公开了以下技术方案:

1、一种生成应用程序的测试用例的方法,包括:

根据待测应用程序中的各个控件的特征来分别构建各个控件的特征向量;

根据多个历史测试用例中的控件的特征分别构建各个控件的特征向量,并基于所构建的所有历史测试用例中的控件的特征向量来计算表示控件在历史测试用例中的优先级的参考向量;

计算所述待测应用程序的各个控件的特征向量与所述参考向量的相似度;

取第一预定数量的相似度大的控件或者所述相似度大于预定阈值的控件作为所述待测应用程序的待测控件;以及

基于所述待测控件来生成所述待测应用程序的测试用例。

2、根据附记1所述的方法,其中,根据待测应用程序中的各个控件的特征来分别构建各个控件的特征向量包括:

提取与控件的内容相关的特征;

针对这些特征在历史测试用例中出现的每个单词,根据该单词对其所在的历史测试用例的重要程度来计算该单词的特征值;以及

将所计算的各个单词的特征值作为特征向量的元素来构建特征向量。

3、根据附记2所述的方法,其中,

所述与控件的内容相关的特征包括以下中的至少一项:控件上的文本、控件的标识符、控件所属的类、控件所属的包以及控件的文本描述。

4、根据附记2所述的方法,其中,根据待测应用程序中的各个控件的特征来分别构建各个控件的特征向量进一步包括:

提取与控件的操作相关的特征和与控件的外观相关的特征;

向所述与控件的操作相关的特征和所述与控件的外观相关的特征中 的每个特征分配特定的特征值;以及

将所分配的特定的特征值连同所计算的各个单词的特征值作为特征向量的元素来构建特征向量。

5、根据附记4所述的方法,其中,

所述与控件的操作相关的特征包括以下中的至少一项:控件是否可勾选、控件是否可点击、控件是否可用以及控件是否支持被长按;以及

所述与控件的外观相关的特征包括以下中的至少一项:控件在待测应用程序中运行时在显示界面中的位置以及控件的大小。

6、根据附记1所述的方法,还包括:

确定所述待测控件的各个操作的权重,所述权重表示该操作在历史测试用例中的常用度;以及

选择第二预定数量的权重大的操作作为该待测控件的待测操作。

7、根据附记6所述的方法,其中,基于所述待测控件来生成所述待测应用程序的测试用例进一步包括:

基于所述待测控件和所述待测控件的待测操作来生成测试用例。

8、根据附记6所述的方法,其中,针对所述待测控件的各个操作,确定表示该操作在历史测试用例中的常用度的权重包括:

通过将历史测试用例中该操作在该控件中出现的次数除以该控件出现的总次数来计算所述权重。

9、根据附记2所述的方法,其中根据该单词对其所在的历史测试用例的重要程度来计算该单词的特征值包括:

将该单词在该控件中出现的次数乘以该单词在所有历史测试用例中出现的总次数再除以历史测试用例的总个数来计算该单词的特征值。

10、一种生成应用程序的测试用例的装置,包括:

控件特征向量构建单元,被配置为根据待测应用程序中的各个控件的特征来分别构建各个控件的特征向量;

参考向量构建单元,被配置为根据多个历史测试用例中的控件的特征分别构建各个控件的特征向量,并基于所构建的所有历史测试用例中的控件的特征向量来计算表示控件在历史测试用例中的优先级的参考向量;

相似度计算单元,被配置为计算所述待测应用程序的各个控件的特征向量与所述参考向量的相似度;

待测控件确定单元,被配置为取第一预定数量的相似度大的控件或者所述相似度大于预定阈值的控件作为所述待测应用程序的待测控件;以及

测试用例生成单元,被配置为基于所述待测控件来生成所述待测应用程序的测试用例。

11、根据附记10所述的装置,其中,所述控件特征向量构建单元包括:

第一特征提取子单元,被配置为提取与控件的内容相关的特征;

特征值计算子单元,被配置为针对这些特征在历史测试用例中出现的每个单词,根据该单词对其所在的历史测试用例的重要程度来计算该单词的特征值;以及

特征向量构建子单元,被配置为将所计算的各个单词的特征值作为特征向量的元素来构建特征向量。

12、根据附记11所述的装置,其中,所述与控件的内容相关的特征包括以下中的至少一项:

控件上的文本、控件的标识符、控件所属的类、控件所属的包以及控件的文本描述。

13、根据附记11所述的装置,其中,所述控件特征向量构建单元进一步包括:

第二特征提取子单元,被配置为提取与控件的操作相关的特征和与控 件的外观相关的特征;以及

特征值分配子单元,被配置为向所述与控件的操作相关的特征和所述与控件的外观相关的特征中的每个特征分配特定的特征值,

其中,所述特征向量构建子单元进一步被配置为将所分配的特定的特征值连同所计算的各个单词的特征值作为特征向量的元素来构建特征向量。

14、根据附记13所述的装置,其中,

所述与控件的操作相关的特征包括以下中的至少一项:控件是否可勾选、控件是否可点击、控件是否可用以及控件是否支持被长按;以及

所述与控件的外观相关的特征包括以下中的至少一项:控件在待测应用程序中运行时在显示界面中的位置以及控件的大小。

15、根据附记10所述的装置,还包括:

操作权重确定单元,被配置为确定所述待测控件的各个操作的权重,所述权重表示该操作在历史测试用例中的常用度;以及

待测操作确定单元,被配置为选择第二预定数量的权重大的操作作为该待测控件的待测操作。

16、根据附记15所述的装置,其中,所述测试用例生成单元进一步被配置为:

基于所述待测控件和所述待测控件的待测操作来生成测试用例。

17、根据附记15所述的装置,其中,所述操作权重确定单元进一步被配置为:

通过将历史测试用例中该操作在该控件中出现的次数除以该控件出现的总次数来计算所述权重。

18、根据附记11所述的装置,其中,所述特征值计算子单元进一步 被配置为:

将该单词在该控件中出现的次数乘以该单词在所有历史测试用例中出现的总次数再除以历史测试用例的总个数来计算该单词的特征值。

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