应用程序的模糊测试方法、装置及系统与流程

文档序号:11133832阅读:来源:国知局

技术特征:

1.一种应用程序的模糊测试方法,其特征在于,所述方法包括以下步骤:

选择与被测应用程序对应的数据生成规则,并根据所述数据生成规则与被测应用程序的协议特征生成本次测试数据;

根据所述本次测试数据对所述被测应用程序进行测试;

在所述根据所述本次测试数据对所述被测应用程序进行测试的测试过程中进行代码覆盖率搜集;

判断所述本次测试数据对应的代码覆盖率与上次测试数据对应的代码覆盖率相比是否存在有效变化;以及

若所述本次测试数据对应的代码覆盖率相对于所述上次测试数据对应的代码覆盖率存在有效变化,则将所述本次测试数据写入基线库。

2.如权利要求1所述的应用程序的模糊测试方法,其特征在于,所述方法还包括:

若所述本次测试数据对应的代码覆盖率相对于所述上次测试数据对应的代码覆盖率无有效变化,则进一步判断所述本次测试数据与所述上次测试数据是否来自同一数据生成规则;以及

若所述本次测试数据与所述上次测试数据来自同一数据生成规则,则所述被测应用程序的测试跳过所述本次测试数据与所述上次测试数据对应的数据生成规则下生成的所有测试数据。

3.如权利要求1所述的应用程序的模糊测试方法,其特征在于,所述方法还包括:

若检测到所述被测应用程序的源代码有更新,则对所述被测应用程序的源代码变更的部分所对应的接口建立所述被测应用程序对应的基线库。

4.如权利要求1所述的应用程序的模糊测试方法,其特征在于,所述选 择与被测应用程序对应数据生成规则,并根据所述数据生成规则与被测应用程序的协议特征生成本次测试数据包括:

解析所述被测应用程序的协议,在协议管理库中查询所述被测应用程序的协议,生成所述协议对应的描述文件;

调度所述描述文件中对应的所述数据生成规则;以及

根据所述数据生成规则生成所述本次测试数据,并将所述本次测试数据作为待用测试数据进行存储。

5.如权利要求1所述的应用程序的模糊测试方法,其特征在于,所述根据所述本次测试数据对所述被测应用程序进行测试包括:

将所述本次测试数据注入所述被测应用程序中;以及

输出根据所述本次测试数据得到的测试报告。

6.如权利要求5所述的应用程序的模糊测试方法,其特征在于,所述方法还包括:

在所述根据所述本次测试数据对所述被测应用程序进行测试时,对所述测试过程进行异常监控。

7.如权利要求1所述的应用程序的模糊测试方法,其特征在于,所述在所述根据所述本次测试数据对所述被测应用程序进行测试的测试过程中进行代码覆盖率搜集包括:

在所述测试之前,对被测应用程序进行插桩;以及

根据所述本次测试数据完成测试之后,搜集所述代码覆盖率。

8.如权利要求1所述的应用程序的模糊测试方法,其特征在于,所述判断所述本次测试数据对应的代码覆盖率与上次测试数据对应的代码覆盖率相比是否存在有效变化包括:

分析所述本次测试数据对应的代码覆盖率与所述上次测试数据对应的代码覆盖率的差距,若存在差距则表示所述本次测试数据对应的代码覆盖率与所述上次测试数据对应的代码覆盖率存在有效变化,若不存在差距则表示所 述本次测试数据对应的代码覆盖率与所述上次测试数据对应的代码覆盖率不存在有效变化。

9.一种应用程序的模糊测试装置,其特征在于,所述装置包括:

测试数据生成模块,用于选择与被测应用程序对应的数据生成规则,并根据所述数据生成规则与被测应用程序的协议特征生成本次测试数据;

测试执行模块,用于根据所述本次测试数据对所述被测应用程序进行测试;

覆盖率搜集模块,用于在所述根据所述本次测试数据对所述被测应用程序进行测试的测试过程中进行代码覆盖率搜集;

第一判断模块,用于判断所述本次测试数据对应的代码覆盖率与上次测试数据对应的代码覆盖率相比是否存在有效变化;以及

数据写入模块,用于若所述第一判断模块判断所述本次测试数据对应的代码覆盖率相对于所述上次测试数据对应的代码覆盖率存在有效变化,则将所述本次测试数据写入基线库。

10.如权利要求9所述的应用程序的模糊测试装置,其特征在于,若所述第一判断模块判断所述本次测试数据对应的代码覆盖率相对于所述上次测试数据对应的代码覆盖率无有效变化,则所述装置还包括:

第二判断模块,用于判断所述本次测试数据与所述上次测试数据是否来自同一数据生成规则;以及

若所述第二判断模块判断所述本次测试数据与所述上次测试数据来自同一数据生成规则,则所述测试执行模块,还用于使所述被测应用程序的测试跳过所述本次测试数据与所述上次测试数据对应的数据生成规则下生成的所有测试数据。

11.如权利要求9所述的应用程序的模糊测试装置,其特征在于,所述装置还包括:

基线库重建模块,用于若检测到所述被测应用程序的源代码有更新,则对所述被测应用程序的源代码变更的部分所对应的接口建立所述被测应用程序对应的基线库。

12.如权利要求9所述的应用程序的模糊测试装置,其特征在于,所述测试数据生成模块包括:

协议解析单元,用于解析所述被测应用程序的协议,在协议管理库中查询所述被测应用程序的协议,生成所述协议对应的描述文件;

调度单元,用于调度所述描述文件中对应的所述数据生成规则;

数据生成单元,用于根据所述数据生成规则生成所述本次测试数据;以及

存储单元,用于将所述本次测试数据作为待用测试数据进行存储。

13.如权利要求9所述的应用程序的模糊测试装置,其特征在于,所述测试执行模块包括:

测试数据注入单元,用于将所述本次测试数据注入所述被测应用程序中;以及

输出报告单元,用于输出根据所述本次测试数据得到的测试报告。

14.如权利要求13所述的应用程序的模糊测试装置,其特征在于,所述测试执行模块还包括:

异常监控单元,用于在根据所述本次测试数据对所述被测应用程序进行测试时,对所述测试过程进行异常监控。

15.如权利要求9所述的应用程序的模糊测试装置,其特征在于,所述覆盖率搜集模块包括:

插桩单元,用于在所述测试之前,对所述被测应用程序进行插桩;以及

搜集覆盖率单元,用于根据所述本次测试数据完成测试之后,搜集所述代码覆盖率。

16.如权利要求9所述的应用程序的模糊测试装置,其特征在于,所述 第一判断模块还用于分析所述本次测试数据对应的代码覆盖率与所述上次测试数据对应的代码覆盖率的差距,若存在差距则表示所述本次测试数据对应的代码覆盖率与所述上次测试数据对应的代码覆盖率存在有效变化,若不存在差距则表示所述本次测试数据对应的代码覆盖率与所述上次测试数据对应的代码覆盖率不存在有效变化。

17.一种应用程序的模糊测试系统,其特征在于,所述系统包括:测试数据生成服务器、测试服务器、覆盖率搜集服务器以及基线库;

所述测试数据生成服务器,用于选择与被测应用程序对应的数据生成规则,并根据所述数据生成规则与被测应用程序的协议特征生成本次测试数据;

所述测试服务器,用于根据所述本次测试数据对所述被测应用程序进行测试;

所述覆盖率搜集服务器,用于在所述测试服务器根据所述本次测试数据对所述被测应用程序进行测试的测试过程中搜集代码覆盖率;还用于判断所述本次测试数据对应的代码覆盖率与上次测试数据对应的代码覆盖率相比是否存在有效变化;以及

若所述覆盖率搜集服务器判断所述本次测试数据测试对应的代码覆盖率相对于所述上次测试数据测试对应的代码覆盖率存在有效变化,所述测试服务器还用于将所述本次测试数据写入所述基线库。

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