一种基于AP-PSO算法的组合测试用例生成方法技术

技术编号:15225343 阅读:49 留言:0更新日期:2017-04-27 03:58
本发明专利技术公开了一种基于AP‑PSO算法的组合测试用例生成方法,属于软件测试领域。本发明专利技术包括:通过静态分析获得需覆盖的组合级;调整one‑test‑at‑a‑time策略,将随机选取一个组合改为构造一个优先级度量函数,对每个组合进行优先级度量,选取优先级最高的组合;采用自适应粒子群算法生成单条测试用例,以种群粒子优劣为依据对惯性权重进行自适应调整,对粒子的最大速度进行控制,采用离散化方式对每个粒子的速度进行取整运算,并使用反射墙策略对粒子位置进行边界处理,防止飞出有效的搜索空间。本发明专利技术可适用于不同覆盖强度的覆盖表生成,有效缩减了组合测试用例集的规模,并大幅度提升了组合测试用例的生成效率。

【技术实现步骤摘要】

本专利技术属于软件测试领域,具体涉及一种基于AP-PSO算法的组合测试用例生成方法
技术介绍
软件测试是软件工程中保证软件质量的至关重要的环节,理想的软件测试方法需要同时具有高错误检测能力、低成本消耗和广泛的适用性等特点。组合测试作为一种基于规约的软件测试方法,旨在从待测软件面临的庞大组合空间中,选取少量但有效的测试用例,生成覆盖程度高、揭错能力强的测试用例集。粒子群算法作为一种较新的启发式搜索算法,具有易理解、易实现、全局搜索能力强等特点,目前也被应用于该领域中。目前,在利用粒子群优化生成覆盖表的相关研究中,主要实现了两两组合覆盖测试用例生成,并未考虑更高覆盖力度以及交互力度不统一的情况。同时,参数的选取对算法性能有很大影响,绝大多数研究工作通常选取一组经验参数,没有考虑到参数选择在不同覆盖表上的特殊性。因此,在粒子群算法具有良好的鲁棒性的前提下,将one-test-at-a-time策略和自适应粒子群算法相结合,根据粒子的优劣对惯性权重进行自适应调整,提出了一种可处理任意覆盖强度的组合测试用例生成方法。该算法能使该算法在覆盖表生成上具有更强的适用能力,在测试用例集规模和执行时间上均具有一定的优势。
技术实现思路
本专利技术的目的是对原始PSO算法进行改进,增加优先级度量函数和惯性权值的自适应调整策略,提供一种更加有效的组合测试用例生成方法。本专利技术解决其技术问题所采用的技术方案如下:定义:测试用例——假设一个待测软件系统(SUT)受到n个独立因素的影响,这些因素形成一个有限集合F={f1,f2,…,fk

【技术保护点】
一种基于AP‑PSO算法的组合测试用例生成方法,其特征在于,包括如下步骤:1)对输入空间进行建模,获取各因素及其取值范围;2)通过对约束条件和覆盖强度的分析,获取需覆盖的所有因素的取值组合,即组合覆盖集;3)构造一个优先级度量函数,对组合覆盖集中的每个取值组合进行优先级度量,选取权值最大的取值组合用于单个测试用例的生成;4)步骤3)选取的取值组合可对应于一条仅有部分取值确定的测试用例,采用自适应粒子群算法给缺省的参数选取合适的取值;根据粒子的当前状态来对每个粒子的惯性权重进行自适应调整,得到覆盖组合数量最多的单条测试用例,存入测试用例集TS中;从组合覆盖集中剔除已覆盖的组合,得到新的组合覆盖集,5)重复步骤3)~4),直到组合覆盖集为空,输出测试用例集TS。

【技术特征摘要】
1.一种基于AP-PSO算法的组合测试用例生成方法,其特征在于,包括如下步骤:1)对输入空间进行建模,获取各因素及其取值范围;2)通过对约束条件和覆盖强度的分析,获取需覆盖的所有因素的取值组合,即组合覆盖集;3)构造一个优先级度量函数,对组合覆盖集中的每个取值组合进行优先级度量,选取权值最大的取值组合用于单个测试用例的生成;4)步骤3)选取的取值组合可对应于一条仅有部分取值确定的测试用例,采用自适应粒子群算法给缺省的参数选取合适的取值;根据粒子的当前状态来对每个粒子的惯性权重进行自适应调整,得到覆盖组合数量最多的单条测试用例,存入测试用例集TS中;从组合覆盖集中剔除已覆盖的组合,得到新的组合覆盖集,5)重复步骤3)~4),直到组合覆盖集为空,输出测试用例集TS。2.根据权利要求1所述的一种基于AP-PSO算法的组合测试用例生成方法,其特征在于所述的优先级度量函数:rk=Σ...

【专利技术属性】
技术研发人员:包晓安杨亚娟张娜张唯滕赛娜
申请(专利权)人:浙江理工大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1