一种手机APP的并行测试方法及系统与流程

文档序号:18271019发布日期:2019-07-27 09:40阅读:443来源:国知局
一种手机APP的并行测试方法及系统与流程

本发明涉及一种手机APP的并行测试方法及系统。



背景技术:

手机App测试现在处于一个初始阶段,面临许多挑战。IT界主要是做手工测试。这个带来3个弊端:1)影响App的迭代开发效率,进而影响产品的发布周期;2)容易因测试内容的枯燥重复导致人为的漏掉或测试错误;3)降低测试人员的创造性,而影响公司的整体资源配置。

目前最佳解决方案是逐步使手工测试转为半自动测试。代表性的方法包括:1)record-and-replay(录制并播放);2)根据测试框架比如Appium,Calabas,Expresso,Robotium和UIAutomator,测试人员开发测试用例来模拟最终用户对App的交互。

这样的解决方案对上面3个弊端明显是个提高,尤其是对于迭代开发所需要的回归测试。但是由于手机App,尤其是手机游戏App,开发过程中需求包括UI变化非常快,1-2天或周,这个导致原先写/录制好的自动化测试用例没办法原封不动的使用。一旦涉及到要改变测试代码来适应改变的产品代码,甚至重新录制/编写自动化测试用例。这个有涉及到效率问题,为什么要重新编写/录制不能重用的测试用例呢?IT公司倾向于直接绕过测试半自动化这一步骤(半指的是测试人员需要写测试用例),而是直接手工测试。

对于手机App测试来说,核心问题依旧:因为半自动化不能解决快速迭代开发,导致IT公司放弃半自动化的解决方案。为解决这个核心问题,我们提出了一套“全”自动化测试工具,这样可以更大幅度解决IT公司接纳自动化测试工具/方法,从而根本上解决上面3个手工测试所带来的巨大问题。

针对相关技术中的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明的目的是提供一种手机APP的并行测试方法及系统,以克服目前现有技术存在的上述不足。

本发明的目的是通过以下技术方案来实现:

一种手机APP的并行测试方法,包括如下步骤:

构建APP页面的依赖图;

将所述依赖图进行分割,并且保证分割后各个依赖子集之间相互没有依赖性;

将分割后的依赖子集进行分配到不同引擎中进行测试,并且将测试结果存储到数据库中。

进一步的,在构建所述APP页面的依赖图之前还要进行如下步骤:

静态分析APP,我们的方法是基于记录-挖掘-生成-验证的框架。它依赖记录App执行期的事件记录;挖掘这些事件记录并利用统计语言模型,静态和动态分析来产生执行场景;并且最后在真机上交互使用这些场景来验证产生的使用场景。它能产生可用的和完全可以重放反映或者自然用户的使用场景或不经常使用的场景。然后将这些场景、事件构建成数据集,将数据集构建成依赖图;

根据APP中变量的定义和使用关系来定义数据依赖图;

将数据依赖图根据层级关系依次将上下层的数据图连接进而形成整体的依赖图,

根据数据依赖图的映射形成页面的依赖图,将所有的数据的依赖图连接在一起进而形成页面的依赖图。

进一步的,对依赖图进行分割包括如下具体步骤:

利用Prime图论算法建立最小连接树;

其中最小连接树的建立既保证了各个子集之间的连接关系最小,并不会产生多余的连接。

将建立的最小连接树的根节点进行连接进而得到最小依赖子集。

将统一层级的不同节点进行连接进而形成最小依赖子集。

一种手机APP的并行测试系统,包括如下模块:

依赖图构建模块:数据集分割模块:并行测试模块:其中,

依赖图构建模块:用于构建APP页面的依赖图;

数据集分割模块:用于将所述依赖图进行分割,并且保证分割后各个依赖子集之间相互没有依赖性

并行测试模块:将分割后的依赖子集进行分配到不同引擎中进行测试,并且将测试结果存储到数据库中。

进一步的,所述依赖图构建模块还包括数据依赖图模块以及依赖图形成模块,其中

数据依赖图模块:用于根据APP中变量的定义和使用关系来定义数据依赖图;

依赖图形成模块:用于根据数据依赖图的映射形成页面的依赖图。

进一步的,所述数据集分割模块还包括最小连接树建立模块、依赖子集形成模块,其中

最小连接树建立模块:用于利用Prime图论算法建立最小连接树;

依赖子集形成模块:用于将建立的最小连接树的根节点进行连接进而得到最小依赖子集。

本发明的有益效果为:通过我们使用现有技术进行构建App的页面依赖图,然后使用Prime算法建立最小连接树进行依赖关系的分割,最后进行并行分配使得测试浏览可以同时进行,并且把每个测试路径集合在测试报告数据库中,保证了测试的自动化以及高效性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的测试流程图之一;

图2是根据本发明实施例的页面依赖图;

图3是根据本发明实施例的图2 的最小连接树图;

图4是根据本发明实施例的分割子集结构图之一;

图5是根据本发明实施例的分割子集结构图之二;

图6是根据本发明实施例的分割子集结构图之三

图7是根据本发明实施例的测试流程图之二;

图8是根据本发明实施例的测试流程图之三。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,根据本发明的实施例所述的一种手机APP的并行测试方法,预先准备好若干测试引擎,将手机APP在测试引擎中进行测试其中对手机APP的测试方法具体包括如下步骤:

构建APP页面的依赖图;

将所述依赖图进行分割,并且保证分割后各个依赖子集之间相互没有依赖性;

将分割后的依赖子集分配到不同引擎中进行并行测试,并且将测试结果存储到数据库中。

进一步的,在构建所述APP页面的依赖图之前还要进行如下步骤:

根据APP中变量的定义和使用关系来定义各个数据之间的依赖图;

根据数据依赖图的映射形成页面的依赖图。

进一步的,对依赖图进行分割包括如下具体步骤:

利用Prime图论算法建立最小连接树;

将建立的最小连接树的根节点进行连接进而得到最小依赖子集。

一种手机APP的并行测试系统,包括如下模块:

依赖图构建模块,数据集分割模块,并行测试模块,其中,

依赖图构建模块:用于构建APP页面的依赖图;

数据集分割模块:用于将所述依赖图进行分割,并且保证分割后各个依赖子集之间相互没有依赖性

并行测试模块:将分割后的依赖子集进行分配到不同引擎中进行测试,并且将测试结果存储到数据库中。

进一步的,所述依赖图构建模块还包括数据依赖图模块以及依赖图形成模块,其中

数据依赖图模块:用于根据APP中变量的定义和使用关系来定义数据依赖图;

依赖图形成模块:用于根据数据依赖图的映射形成页面的依赖图。

进一步的,所述数据集分割模块还包括最小连接树建立模块、依赖子集形成模块,其中

最小连接树建立模块:用于利用Prime图论算法建立最小连接树;

依赖子集形成模块:用于将建立的最小连接树的根节点进行连接进而得到最小依赖子集。

其中在一个实施例中,参照图2,图2的情况是在做测试前构建的依赖图,依赖图的构建保证了每一个实时集合点都能连在一起,但此时的过程过于赘述,产生了多余的连接节点,这样对测试的时候就会产生不必要的繁琐性,然后参照图3将图中各个数集中的不必要连接线去除,最终保证所有的数据节点之间都能产生连接,这种连接保证了任何两个数据节点之间没有多余的连接线,进而达到最小连接,然后对数据节点进行分割成不同的最小连接的子集,其中自己的分割具体包括将所有的根节点进行复制n次,其中n的个数和第二层根节点的个数相同,然后将整个数集按照复制的次数将依赖图分割成n个依赖子集,分割后的每个依赖子集保证了每个节点之间都是最小连接关系,并不会产生或者找出节点之间的多余连接关系,然后在具体测试的时候只需要进最后分割成的依赖子集放到每个引擎中进行测试,并且得到了不同的测试实例,最后将得到的各个测试例进行数据汇总,并且将结果报告给数据库中。实施例1:将今日新闻作为一个例子进行测试,今日新闻,作为贯穿全文的例子。今日新闻主要是介绍实时的世界新闻。主要有以下几个功能,用户可以按照栏目进行浏览,比如按照时政,热点,体育等。用户也可以进行评论,进行互动。社交共享也是一个功能模块。

首先构建依赖图,其中依赖图中的对象分别包括如下的功能图像:第一层的用户启动、第二层节点中的时政、热点、体育,以及第三层子集合中的时政新闻、热点视频、体育图片,最后一层节点中的评论以及社会共享,对上述图像中的各个节点进行连接每一个层级之间进行顺次连接,最后的时政新闻、热点视频以及体育图片和底层的评论、社会共享依次连接,这样就保证了在图2中所述的各个节点之间都连接的依赖性,然后将依赖图采用Prime图论算法构建最小连接树,具体的包括只将评论和社会共享连接在其中的一个关联集合模块中,这样就保证了左右的节点之间都可以产生连接,进而生成了最小连接树,如图3中所述,然后将采用最小连接树的依赖图进行分割,因为第二层包括3个节点所以分割的个数为3个,最后分割成3个分割子集,具体参照图4-6就是最后的分割结果,每个分割子集包括启动,第二节点时政第三层,时政新闻,最底层节点,评论,和社会共享。图5分割集包括启动、热点、热点视频,图6包括启动、体育以及体育图片,综上所述最终保证了每个节点之间为同一系列的相关节点,并且保证了各个节点之间的连接关系最小,并且相互之间没有任何交互。

参照图7和图8;具体的测试流程包括,首先将测试APP进行静态分析,并且构建成页面依赖图,然后利用最小连接数算法将依赖图分割成若干相互之间你没有交互关系的依赖子集,然后将依赖子集放到测试引擎中进行并行测试,其中进而得到了不同测试结果,最后将不同的测试结果进行整合并且存储到服务器中。

本发明的有益效果为:通过我们使用现有技术进行构建App的页面依赖图,然后使用Prime算法建立最小连接树进行依赖关系的分割,最后进行并行分配使得测试浏览可以同时进行,并且把每个测试路径集合在测试报告数据库中,保证了测试的自动化以及高效性。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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