本发明专利技术公开了一种手机APP的并行测试方法具体包括:构建APP页面的依赖图;将所述依赖图进行分割,并且保证分割后各个依赖子集之间相互没有依赖性;将分割后的依赖子集进行分配到不同引擎中进行测试,并且将测试结果存储到数据库中。本发明专利技术的有益效果为:通过我们使用现有技术进行构建App的页面依赖图,然后使用Prime算法建立最小连接树进行依赖关系的分割,最后进行并行分配使得测试浏览可以同时进行,并且把每个测试路径集合在测试报告数据库中,保证了测试的自动化以及高效性。
【技术实现步骤摘要】
一种手机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的情况是在做测试前构建的依赖图,依赖图的构建保证了每一个实时集合点都能连在一起,但此时的过程过于赘述,产生了多余的连接节点,这样对测试的时候就会产生不必要的本文档来自技高网...
【技术保护点】
一种手机APP的并行测试方法,其特征在于,预先准备好若干测试引擎,将手机APP在测试引擎中进行测试,其中对手机APP的测试方法具体包括如下步骤:构建APP页面的依赖图;将所述依赖图进行分割,并且保证分割后各个依赖子集之间相互没有依赖性;将分割后的依赖子集分配到不同引擎中进行并行测试,并且将测试结果存储到数据库中。
【技术特征摘要】
1.一种手机APP的并行测试方法,其特征在于,预先准备好若干测试引擎,将手机APP在测试引擎中进行测试,其中对手机APP的测试方法具体包括如下步骤:构建APP页面的依赖图;将所述依赖图进行分割,并且保证分割后各个依赖子集之间相互没有依赖性,其中分割具体包括将所有的根节点进行复制n次,n的个数和第二层根节点的个数相同,然后将整个数集按照复制的次数将依赖图分割成n个依赖子集,分割后的每个依赖子集保证每个节点之间都是最小连接关系,并不会产生或者找出节点之间的多余连接关系;将分割后的依赖子集分配到不同引擎中进行并行测试,并且将测试结果存储到数据库中。2.根据权利要求1所述的手机APP的并行测试方法,其特征在于,在构建所述APP页面的依赖图之前还要进行如下步骤:根据APP中变量的定义和使用关系来定义各个数据之间的依赖图;根据数据依赖图的映射形成页面的依赖图。3.根据权利要求1所述的手机APP的并行测试方法,其特征在于,对依赖图进行分割包括如下具体步骤:利用Prime图论算法建立最小连接树;将建立的最小连接树的根节点进行连接进而得到最小依赖子集。4.一种手机APP的并行测试系统,其特征在于:包括如下模块:依赖图构建...
【专利技术属性】
技术研发人员:师江帆,
申请(专利权)人:龙测科技北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。