一种规模软件的测试系统及方法转让专利

申请号 : CN201610947172.9

文献号 : CN106547695B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 白涛胡立生谷鹏飞张建波查敬芳刘真叶王平刘伟唐建中梁慧慧王升超何亚南

申请人 : 中广核工程有限公司上海交通大学

摘要 :

本发明公开了一种规模软件的测试系统及方法,该测试系统包括:向量生成模块,用于针对被测对象采用功能驱动和随机测试的方法生成测试向量;监测模块,用于根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率,并在监测到所述测试目标集的路径覆盖率达到临界状态时,搜索并获取所述被测对象的测试目标集未被覆盖的路径;以及,模型计算模块,用于根据所述测试目标集未被覆盖的路径建立数学模型,对所述数学模型求解获得所述测试目标集未被覆盖的路径的测试向量。本发明提供一种简洁的测试向量集构建方案,能够提高测试目标集的覆盖率,且提高测试可靠性和测试效率。

权利要求 :

1.一种规模软件的测试系统,其特征在于,包括:

向量生成模块,用于针对被测对象采用功能驱动和随机测试的方法生成测试向量;

监测模块,用于根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率,并在监测到所述测试目标集的路径覆盖率达到临界状态时,搜索并获取所述被测对象的测试目标集未被覆盖的路径;以及,模型计算模块,用于根据所述测试目标集未被覆盖的路径建立数学模型,对所述数学模型求解获得所述测试目标集未被覆盖的路径的测试向量;所述监测模块包括:监测单元,用于根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率是否达到临界状态;

搜索获取单元,用于在监测到所述测试目标集的路径覆盖率达到临界状态时,停止采用功能驱动和随机测试的方法生成测试向量,搜索并获取所述被测对象的测试目标集未被覆盖的路径;以及,生成单元,用于在监测到所述测试目标集的路径覆盖率未达到临界状态时,继续采用功能驱动和随机测试的方法生成测试向量。

2.如权利要求1所述的规模软件的测试系统,其特征在于,所述监测单元具体用于根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率是否达到临界状态;

在监测到所述测试目标集的路径覆盖率不小于预设阈值,且后续功能驱动和随机测试未提升所述测试目标集的路径覆盖率时,判定所述测试目标集的路径覆盖率达到临界状态;

在检测到所述测试目标集的路径覆盖率小于预设阈值,或者所述测试目标集的路径覆盖率不小于预设阈值,但后续功能驱动和随机测试仍提升所述测试目标集的路径覆盖率时,判定所述测试目标集的路径覆盖率未达到临界状态。

3.如权利要求1所述的规模软件的测试系统,其特征在于,所述搜索获取单元具体用于在监测到所述测试目标集的路径覆盖率达到临界状态时,停止采用随机测试的方法生成测试向量,并根据测试统计报告获取所述测试目标集的当前路径覆盖信息,根据所述当前路径覆盖信息获取所述测试目标集未被覆盖的路径。

4.如权利要求1至3任一项所述的规模软件的测试系统,其特征在于,所述模型计算模块具体包括:模型建立单元,用于通过逻辑结构对所述测试目标集未被覆盖的路径建立数学模型;

以及,

向量获取单元,用于采用形式化方法对所述数学模型求解,获得所述测试目标集未被覆盖的路径的测试向量。

5.一种规模软件的测试方法,其特征在于,利用如权利要求1所述的规模软件的测试系统,所述的规模软件的测试方法包括:针对被测对象采用功能驱动和随机测试的方法生成测试向量;

根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率;

在监测到所述测试目标集的路径覆盖率达到临界状态时,搜索并获取所述被测对象的测试目标集未被覆盖的路径;

根据所述测试目标集未被覆盖的路径建立数学模型,对所述数学模型求解获得所述测试目标集未被覆盖的路径的测试向量。

6.如权利要求5所述的规模软件的测试方法,其特征在于,所述根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率,具体包括:根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率是否达到临界状态;

在监测到所述测试目标集的路径覆盖率不小于预设阈值,且后续随机测试未提升所述测试目标集的路径覆盖率时,判定所述测试目标集的路径覆盖率达到临界状态;

在检测到所述测试目标集的路径覆盖率小于预设阈值,或者所述测试目标集的路径覆盖率不小于预设阈值,但后续功能驱动和随机测试仍提升所述测试目标集的路径覆盖率时,判定所述测试目标集的路径覆盖率未达到临界状态。

7.如权利要求6所述的规模软件的测试方法,其特征在于,所述规模软件的测试方法还包括:在监测到所述测试目标集的路径覆盖率未达到临界状态时,继续采用功能驱动和随机测试的方法生成测试向量。

8.如权利要求5所述的规模软件的测试方法,其特征在于,所述在监测到所述测试目标集的路径覆盖率达到临界状态时,搜索并获取所述被测对象的测试目标集未被覆盖的路径,具体包括:在监测到所述测试目标集的路径覆盖率达到临界状态时,停止采用功能驱动和随机测试的方法生成测试向量,并根据测试统计报告获取所述测试目标集的当前路径覆盖信息,根据所述当前路径覆盖信息获取所述测试目标集未被覆盖的路径。

9.如权利要求5至8任一项所述的规模软件的测试方法,其特征在于,所述根据所述测试目标集未被覆盖的路径建立数学模型,对所述数学模型求解获得所述测试目标集未被覆盖的路径的测试向量,具体包括:通过逻辑结构对所述测试目标集未被覆盖的路径建立数学模型;

采用形式化方法对所述数学模型求解,获得所述测试目标集未被覆盖的路径的测试向量。

说明书 :

一种规模软件的测试系统及方法

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种规模软件的测试系统及方法。

背景技术

[0002] 软件测试(Software testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。或者说,软件测试是一种实际输出与预期输出间审核或者比较的过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量并对其是否能满足设计要求进行评估的过程。软件测试是软件开发及软件验证与确认活动中确保软件质量的重要技术手段。
[0003] 软件测试所面临的现实问题是对于算法逻辑复杂,输入状态空间规模大的软件,测试难以遍历所有可能的输入状态。对于有高安全性、高可靠性应用要求的软件,如何通过有限数量的测试提高测试目标集的覆盖率,从而保证软件的质量是软件测试中的重要问题。
[0004] 软件测试中最重要的一点是设计测试向量(也称为测试用例),测试向量是为某个特殊测试目标而设计的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实某个程序路径是否满足某个特定需求。测试向量是对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。针对被测对象选取不同的测试目标集,其测试向量将有所不同。
[0005] 现有技术中测试向量的生成方法主要是直接测试和随机测试。直接测试击中的是测试空间中某个特定的点,要求测试人员对被测对象的所有功能都非常清楚,并且需要针对每个功能点设计测试向量,这种方法对测试人员的要求非常高,且没有太多的精简余地。随机测试可能击中输入状态空间的任何一个功能点,有可能击中测试人员都未想到的功能点,从而减轻测试人员的工作负荷,但这种随机性有可能导致功能点的重复覆盖,随机测试往往不能达到预期的测试目标集覆盖率、许多测试向量对于功能点是冗余的,需要多次重建测试,从而降低了测试的可靠性和测试效率。

发明内容

[0006] 本发明针对现有技术中存在的问题,提供了一种规模软件的测试系统及方法,能够提高测试目标集的覆盖率,且提高测试可靠性和测试效率。
[0007] 本发明就上述技术问题而提出的技术方案如下:
[0008] 一方面,本发明提供一种规模软件的测试系统,包括:
[0009] 向量生成模块,用于针对被测对象采用功能驱动和随机测试的方法生成测试向量;
[0010] 监测模块,用于根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率,并在监测到所述测试目标集的路径覆盖率达到临界状态时,搜索并获取所述被测对象的测试目标集未被覆盖的路径;以及,
[0011] 模型计算模块,用于根据所述测试目标集未被覆盖的路径建立数学模型,对所述数学模型求解获得所述测试目标集未被覆盖的路径的测试向量。
[0012] 进一步地,所述监测模块包括:
[0013] 监测单元,用于根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率是否达到临界状态;
[0014] 搜索获取单元,用于在监测到所述测试目标集的路径覆盖率达到临界状态时,停止采用功能驱动和随机测试的方法生成测试向量,搜索并获取所述被测对象的测试目标集未被覆盖的路径;以及,
[0015] 生成单元,用于在监测到所述测试目标集的路径覆盖率未达到临界状态时,继续采用功能驱动和随机测试的方法生成测试向量。
[0016] 进一步地,所述监测单元具体用于根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率是否达到临界状态;
[0017] 在监测到所述测试目标集的路径覆盖率不小于预设阈值,且后续功能驱动和随机测试未提升所述测试目标集的路径覆盖率时,判定所述测试目标集的路径覆盖率达到临界状态;
[0018] 在检测到所述测试目标集的路径覆盖率小于预设阈值,或者所述测试目标集的路径覆盖率不小于预设阈值,但后续功能驱动和随机测试仍提升所述测试目标集的路径覆盖率时,判定所述测试目标集的路径覆盖率未达到临界状态。
[0019] 进一步地,所述搜索获取单元具体用于在监测到所述测试目标集的路径覆盖率达到临界状态时,停止采用功能驱动和随机测试的方法生成测试向量,并根据测试统计报告获取所述测试目标集的当前路径覆盖信息,根据所述当前路径覆盖信息获取所述测试目标集未被覆盖的路径。
[0020] 进一步地,所述模型计算模块具体包括:
[0021] 模型建立单元,用于通过逻辑结构对所述测试目标集未被覆盖的路径建立数学模型;以及,
[0022] 向量获取单元,用于采用形式化方法对所述数学模型求解,获得所述测试目标集未被覆盖的路径的测试向量。
[0023] 另一方面,本发明提供一种规模软件的测试方法,包括:
[0024] 针对被测对象采用功能驱动和随机测试的方法生成测试向量;
[0025] 根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率;
[0026] 在监测到所述测试目标集的路径覆盖率达到临界状态时,搜索并获取所述被测对象的测试目标集未被覆盖的路径;
[0027] 根据所述测试目标集未被覆盖的路径建立数学模型,对所述数学模型求解获得所述测试目标集未被覆盖的路径的测试向量。
[0028] 进一步地,所述根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率,具体包括:
[0029] 根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率是否达到临界状态;
[0030] 在监测到所述测试目标集的路径覆盖率不小于预设阈值,且后续功能驱动和随机测试未提升所述测试目标集的路径覆盖率时,判定所述测试目标集的路径覆盖率达到临界状态;
[0031] 在检测到所述测试目标集的路径覆盖率小于预设阈值,或者所述测试目标集的路径覆盖率不小于预设阈值,但后续功能驱动和随机测试仍提升所述测试目标集的路径覆盖率时,判定所述测试目标集的路径覆盖率未达到临界状态。
[0032] 进一步地,所述规模软件的测试方法还包括:
[0033] 在监测到所述测试目标集的路径覆盖率未达到临界状态时,继续功能驱动和采用随机测试的方法生成测试向量。
[0034] 进一步地,所述在监测到所述测试目标集的路径覆盖率达到临界状态时,搜索并获取所述被测对象的测试目标集未被覆盖的路径,具体包括:
[0035] 在监测到所述测试目标集的路径覆盖率达到临界状态时,停止采用功能驱动和随机测试的方法生成测试向量,并根据测试统计报告获取所述测试目标集的当前路径覆盖信息,根据所述当前路径覆盖信息获取所述测试目标集未被覆盖的路径。
[0036] 进一步地,所述根据所述测试目标集未被覆盖的路径建立数学模型,对所述数学模型求解获得所述测试目标集未被覆盖的路径的测试向量,具体包括:
[0037] 通过逻辑结构对所述测试目标集未被覆盖的路径建立数学模型;
[0038] 采用形式化方法对所述数学模型求解,获得所述测试目标集未被覆盖的路径的测试向量。
[0039] 本发明实施例提供的技术方案带来的有益效果是:
[0040] 在测试初始阶段,针对被测对象采用功能驱动和随机测试的方法生成大量测试向量,当生成的测试向量使测试目标集的路径覆盖率达到临界状态时,将测试目标集未被覆盖的路径建立数学模型,并对其进行求解,以获取测试目标集未被覆盖的路径的测试向量,有效提高测试目标集的覆盖率,且有效降低测试复杂度,提高测试可靠性和测试效率。

附图说明

[0041] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0042] 图1是本发明实施例一提供的规模软件的测试系统的结构示意图;
[0043] 图2是本发明实施例一提供的规模软件的测试系统中测试目标集的路径覆盖率与时间的关系示意图;
[0044] 图3是本发明实施例一提供的规模软件的测试系统中的逻辑结构图;
[0045] 图4是本发明实施例二提供的规模软件的测试方法的流程示意图;
[0046] 图5是本发明实施例二提供的规模软件的测试方法的具体流程示意图。

具体实施方式

[0047] 为了解决现有技术在规模软件的测试系统中存在的测试可靠性差、测试效率低等技术问题,本发明旨在提供一种规模软件的测试系统,其核心思想是:提供了一种向量生成模块、监测模块和模型计算模块,其中,向量生成模块针对被测对象采用功能驱动和随机测试的方法生成大量测试向量,监测模块根据生成的向量对测试目标集的路径覆盖率进行监测,当检测到路径覆盖率达到临界状态时,获取测试目标集未被覆盖的路径,使模型计算模块根据测试目标集未被覆盖的路径建立数学模型,进而对模型进行求解获取测试目标集未被覆盖的路径的测试向量。本发明所提供的规模软件的测试系统提供一种简洁的有效测试向量的构建方案,有效提高测试目标集的覆盖率,且有效降低测试复杂度,提高测试可靠性和测试效率。
[0048] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0049] 实施例一
[0050] 本发明实施例提供了一种规模软件的测试系统,参见图1,该测试系统包括:
[0051] 向量生成模块1,用于针对被测对象采用随机测试的方法生成测试向量;
[0052] 监测模块2,用于根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率,并在监测到所述测试目标集的路径覆盖率达到临界状态时,搜索并获取所述被测对象的测试目标集未被覆盖的路径;以及,
[0053] 模型计算模块3,用于根据所述测试目标集未被覆盖的路径建立数学模型,对所述数学模型求解获得所述测试目标集未被覆盖的路径的测试向量。
[0054] 需要说明的是,在测试执行前,搭建测试平台,将各种测试软件集成到同一计算机平台上。在测试初始阶段,向量生成模块1针对被测对象以功能驱动和随机测试的方法生成测试向量。其中,向量生成模块1可利用现有技术中的任意一种测试向量生成软件在测试初始阶段以功能驱动和随机测试的方法生成测试向量,不以本实施例为限。
[0055] 在生成测试向量时,监测模块2实时监测向量生成模块1生成的测试向量对被测对象的测试目标集的路径覆盖率。如图2所示,在0~t1时刻,搭建测试平台,测试目标集的路径覆盖率为0;在测试初始阶段,即在t1~t2时刻,向量生成模块1生成测试向量,测试目标集的路径覆盖率呈阶梯状不断上升。在监测模块2监测到在t2时刻测试目标集的路径覆盖率达到临界状态时,停止以功能驱动和随机测试的方法生成测试向量,搜索并获取测试目标集未被覆盖的路径。模型计算模块3对测试目标集未被覆盖的路径建立数学模型,并对该数学模型求解,通过求解后即可得到能够覆盖测试目标集未被覆盖的路径的测试向量。如图2所示,在测试目标集的路径覆盖率达到临界状态,即t2时刻后继续上升,最终在t3时刻趋近于100%。本发明所提供的规模软件的测试系统适用于功能和算法逻辑复杂、状态空间数量大,或安全可靠性要求高、测试目标要求高的软件。本发明实施例组合应用功能驱动、随机测试和覆盖率驱动方法快速生成有效测试向量,提高测试目标集的覆盖率,采用有效测试向量对规模软件进行测试,有效降低测试复杂度,提高测试可靠性和测试效率。
[0056] 进一步地,所述监测模块包括:
[0057] 监测单元,用于根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率是否达到临界状态;
[0058] 搜索获取单元,用于在监测到所述测试目标集的路径覆盖率达到临界状态时,停止采用功能驱动和随机测试的方法生成测试向量,搜索并获取所述被测对象的测试目标集未被覆盖的路径;以及,
[0059] 生成单元,用于在监测到所述测试目标集的路径覆盖率未达到临界状态时,继续采用功能驱动和随机测试的方法生成测试向量。
[0060] 需要说明的是,监测单元实时根据生成的测试向量对被测对象的测试目标集的路径覆盖率进行监测,判断其是否达到临界状态。若路径覆盖率达到临界状态,则停止以功能驱动和随机测试的方法生成测试向量,获取测试目标集未被覆盖的路径;若路径覆盖率未达到临界状态,则继续以功能驱动和随机测试的方式生成测试向量,直到路径覆盖率达到临界状态为止。
[0061] 进一步地,所述监测单元具体用于根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率是否达到临界状态;
[0062] 在监测到所述测试目标集的路径覆盖率不小于预设阈值,且后续功能驱动和随机测试未提升所述测试目标集的路径覆盖率时,判定所述测试目标集的路径覆盖率达到临界状态;
[0063] 在检测到所述测试目标集的路径覆盖率小于预设阈值,或者所述测试目标集的路径覆盖率不小于预设阈值,但后续功能驱动和随机测试仍提升所述测试目标集的路径覆盖率时,判定所述测试目标集的路径覆盖率未达到临界状态。
[0064] 需要说明的是,监测单元对临界状态的判断条件为:以功能驱动和随机测试的方法生成的测试向量对被测对象的路径覆盖率是否不小于预设阈值,且路径覆盖率有无明显提升。其中,预设阈值一般为90%,路径覆盖率有无明显上升的判断标准可根据不同情况进行设定,例如增长率。具体地,若测试目标集的路径覆盖率达到90%以上,且路径覆盖率基本稳定,未明显上升,则判定路径覆盖率已处于临界状态;若测试目标集的路径覆盖率未达到90%以上,或者路径覆盖率达到90%以上,但路径覆盖率仍在不断上升,则判定路径覆盖率还未达到临界状态。
[0065] 如图2所示,在t2时刻,测试目标集的路径覆盖率达到91.8%,此时以功能驱动和随机测试的方法生成的测试向量的数据达到20~30个,而路径覆盖率未明显上升,基本稳定在91.8%,则判定t2时刻的路径覆盖率已经处于临界状态。
[0066] 进一步地,所述搜索获取单元具体用于在监测到所述测试目标集的路径覆盖率达到临界状态时,停止采用功能驱动和随机测试的方法生成测试向量,并根据测试统计报告获取所述测试目标集的当前路径覆盖信息,根据所述当前路径覆盖信息获取所述测试目标集未被覆盖的路径。
[0067] 需要说明的是,在测试目标集的路径覆盖率达到临界状态时,根据测试统计报告,得到测试目标集的当前路径覆盖率信息,再根据测试目标集的路径信息,即可得到测试目标集未被覆盖的路径。
[0068] 进一步地,所述模型计算模块具体包括:
[0069] 模型建立单元,用于通过逻辑结构对所述测试目标集未被覆盖的路径建立数学模型;以及,
[0070] 向量获取单元,用于采用形式化方法对所述数学模型求解,获得所述测试目标集未被覆盖的路径的测试向量。
[0071] 需要说明的是,通过程序逻辑结构对测试目标集未被覆盖的路径建立数学模型,再采用形式化方法对该数学模型进行求解。其中,形式化方法为任何形式化方法,包括但不限于基于布尔可满足性(SAT)的形式化方法,通过对数学模型求解即可得到能够覆盖测试目标集未被覆盖的路径的测试向量。
[0072] 如图3所示,图中的粗线段为获取到的测试目标集未被覆盖的路径,通过逻辑结构图自动对该测试目标集未被覆盖的路径建立数学模型,如下:
[0073]
[0074] 其中,BI2.D和BI3.D为实际输入参数,BI1.S、BI2.S、BI3.S和BI4.S为输入质量标识参数,其通过上述逻辑关系构建出图3中测试目标集未被覆盖的路径的数学模型。采用形式化方法对该数学模型进行求解,即调整数学模型的输入参数,使数学模型的输出结果满足形式化问题,调整后获得的输入参数所构成的向量即为测试目标集未被覆盖的路径的测试向量,从而获得能够覆盖测试目标集未被覆盖的路径的测试向量。其中,采用形式化方法对数学模型进行求解的具体过程为现有技术,在此不做详细描述。如图2所示,在获取覆盖测试目标集未被覆盖的路径的测试向量后,路径覆盖率在临界状态后继续上升,最终趋近于100%。
[0075] 使用硬件描述语言进行程序设计时不仅需要考虑程序逻辑,还需要从硬件角度考虑设计的可行性;而使用软件高级语言等进行程序设计时仅需考虑程序逻辑,相对于硬件描述语言的程序设计而言,单纯的软件设计相对简单。本发明的规模软件的测试系统适用于硬件描述语言的程序设计、软件高级语言程序设计的测试及验证。
[0076] 本发明实施例在测试初始阶段,针对被测对象采用随机测试的方法生成大量测试向量,当生成的测试向量使测试目标集的路径覆盖率达到临界状态时,将测试目标集未被覆盖的路径建立数学模型,并对其进行求解,以获取测试目标集未被覆盖的路径的测试向量,有效提高测试目标集的覆盖率,且有效降低测试复杂度,提高测试可靠性和测试效率。
[0077] 实施例二
[0078] 本发明实施例提供了一种规模软件的测试方法,能够应用于上述实施例中的规模软件的测试系统,参见图4,包括:
[0079] S1、针对被测对象采用功能驱动和随机测试的方法生成测试向量;
[0080] S2、根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率;
[0081] S3、在监测到所述测试目标集的路径覆盖率达到临界状态时,搜索并获取所述被测对象的测试目标集未被覆盖的路径;
[0082] S4、根据所述测试目标集未被覆盖的路径建立数学模型,对所述数学模型求解获得所述测试目标集未被覆盖的路径的测试向量。
[0083] 进一步地,所述根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率,具体包括:
[0084] 根据所述生成测试向量,监测所述被测对象的测试目标集的路径覆盖率是否达到临界状态;
[0085] 在监测到所述测试目标集的路径覆盖率不小于预设阈值,且后续功能驱动和随机测试未提升所述测试目标集的路径覆盖率时,判定所述测试目标集的路径覆盖率达到临界状态;
[0086] 在检测到所述测试目标集的路径覆盖率小于预设阈值,或者所述测试目标集的路径覆盖率不小于预设阈值,但后续功能驱动和随机测试仍提升所述测试目标集的路径覆盖率时,判定所述测试目标集的路径覆盖率未达到临界状态。
[0087] 进一步地,所述规模软件的测试方法还包括:
[0088] 在监测到所述测试目标集的路径覆盖率未达到临界状态时,继续功能驱动和采用随机测试的方法生成测试向量。
[0089] 进一步地,所述在监测到所述测试目标集的路径覆盖率达到临界状态时,搜索并获取所述被测对象的测试目标集未被覆盖的路径,具体包括:
[0090] 在监测到所述测试目标集的路径覆盖率达到临界状态时,停止采用功能驱动和随机测试的方法生成测试向量,并根据测试统计报告获取所述测试目标集的当前路径覆盖信息,根据所述当前路径覆盖信息获取所述测试目标集未被覆盖的路径。
[0091] 进一步地,所述根据所述测试目标集未被覆盖的路径建立数学模型,对所述数学模型求解获得所述测试目标集未被覆盖的路径的测试向量,具体包括:
[0092] 通过逻辑结构对所述测试目标集未被覆盖的路径建立数学模型;
[0093] 采用形式化方法对所述数学模型求解,获得所述测试目标集未被覆盖的路径的测试向量。
[0094] 参见图5,是本发明实施例提供的规模软件的测试方法的具体流程示意图,包括:
[0095] S101、在测试初期,针对被测对象采用功能驱动和随机测试方法生成测试向量;
[0096] S102、根据生成测试向量,判断所述被测对象的测试目标集的路径覆盖率是否处于临界状态;若否,则返回步骤S101,若是,则执行步骤S103;
[0097] S103、获取所述被测对象的测试目标集未被覆盖的路径;
[0098] S104、对所述未被覆盖的路径建立数学模型,并对所述数学模型求解获得所述未被覆盖的路径的测试向量;
[0099] S105、判断测试向量是否达到测试目标集的覆盖要求;若否,则返回步骤S104,若是,则结束本次测试。
[0100] 本发明实施例在测试初始阶段,针对被测对象采用功能驱动和随机测试的方法生成大量测试向量,当生成的测试向量使测试目标集的路径覆盖率达到临界状态时,将测试目标集未被覆盖的路径建立数学模型,并对其进行求解,以获取测试目标集未被覆盖的路径的测试向量,有效提高测试目标集的覆盖率,且有效降低测试复杂度,提高测试可靠性和测试效率。
[0101] 综上所述,本发明提出了一种规模软件的测试系统及方法,其具有较好的实用效果:在测试初始阶段,针对被测对象采用功能驱动和随机测试的方法生成测试向量,监测测试向量对被测对象的测试目标集的路径覆盖率,并判断测试目标集的路径覆盖率是否处于临界状态,若测试目标集的路径覆盖率未处于临界状态,继续以功能驱动和随机测试的方法生成测试向量,若测试目标集覆盖率达到临界状态,则停止以功能驱动和随机测试的方法生成测试向量,获取被测对象中测试目标集未被覆盖的路径。对测试目标集未被覆盖的路径建立数学模型,并以形式化方法对所述数学模型求解,以得到测试向量将测试目标集未被覆盖的路径覆盖。本发明是一项组合应用功能驱动、随机测试和覆盖率驱动方法生成测试向量的技术,提供了一种简洁的测试向量集构建方案,有效地降低测试复杂度,提高测试目标集的覆盖率,且提高了测试可靠性和测试效率。因此,本发明具高度产业利用价值。
[0102] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。