APP下载

云计算中分布式软件系统兼容性自动检测方法

2021-12-27史绍恩

机械与电子 2021年12期
关键词:嵌套粒子软件

史绍恩

(青海卫生职业技术学院,青海 西宁 810001)

0 引言

在计算机技术带动下,分布式系统纷纷推出海量分布式应用,如常见的B/S架构等,与集中式软件系统不同,一般由多个分布式子系统进行协作共同完成任务。该系统将信息共享和增强计算能力当作首要目标,异构性和开放性较强,但也具有故障独立性。在分布式系统中,软件的兼容性使系统具备良好性能。兼容性是指软件之间互相协调的性能,在工作过程中,软件之间可以做到协调稳定运行,表明兼容性较好。由于软件开发的复杂度逐渐提高,系统运行过程中突发状况频频发生,软件不兼容变得较为普遍。对于一个软件而言,无论其他功能是否强大,只要与其他软件产生冲突,就会降低应用价值。因此,软件兼容性测试是分布式系统开发过程中的必要过程。

丁群[1]提出基于脆弱导向的软件性能仿真方法,利用错误传播方法获取软件存在的脆弱点,将脆弱点中的敏感字节当作脆弱特征,构建弱点评价体系,分析软件的脆弱性影响,结合分析结果完成兼容性测试;惠子青等[2]提出一种动态加权组合神经网络模型的软件兼容性测试方法,该方法分析软件的多样性,根据故障引进过程,通过神经网络建立动态加权模型,实现软件性能测试。上述方法虽然取得一定研究成果,但测试难度较大,当系统存在较多软件时,检出率降低。云计算凭借规模大和扩展性强等特点为软件系统兼容性测试提供了新思路。因此,本文在云计算环境下,对分布式软件系统的兼容性进行测试。基于云计算框架[3],将待测的软件系统部署在架构中,再融入粒子群算法,以最省力的自动化方式输出检测信息,粒子群算法以其超强的全局搜索性能,有效减少测试次数。

1 云计算体系架构分析

通常情况下,云计算包括私有云、社区云、公共云和混合云4种类型。私有云能够让用户清楚了解“云”的基本结构,提高服务安全性;社区云则存在多个管理组织,主要任务是保证调度安全;公共云可提供对外服务,能够被用户拥有;混合云表示多种云的组合形式,可掌握关键数据。云计算的结构如图1所示。

图1 云计算结构

服务模式分为以下3种:

a.基础设备服务。

云架构中最底端服务[4],利用虚拟化技术提供计算与储存等功能,便于用户运行软件。

b.平台服务。

以基础设备服务层为核心建立的,用户可在该服务中进行软件开发,同时能部署想要的运行环境,且不用了解底层有关技术。

c.软件服务。

最顶端的服务层,用户利用客户端即可实现对此层服务的调控,同时可根据自身实际需要,对软件服务进行个性化定制。

2 融入粒子群算法的软件兼容性自动检测

2.1 基本粒子群算法模型

(1)

(2)

vi为粒子i的移动速度;ω为现阶段粒子群的权值;c1与c2均为粒子群的学习因子;xi为粒子i的位置;rand()为(0,1)范围内的随机数。

2.2 基于离散度调整的粒子群算法改进

2.2.1 离散度调整

上述粒子群模型在搜索时太过依赖权重ω,增加出现局部最优的可能,影响搜索能力,不容易获得精准的检测结果。因此,本文在离散度调整基础上对上述模型进行改进。

为准确把握收敛程度,需确定收敛量纲,也就是粒子群离散度[6]。该值不但能够准确判断出早熟现象,还能实现粒子的动态追踪。离散度能够准确体现粒子之间的汇集程度,如果算法不符合约束条件,离散度很小,表明进入早熟状态,需要对其进行处理。当出现早熟现象时,应将权重值增大,进而加强全局搜索性能,确保粒子更具多样性特征;减轻全局极值对粒子造成的影响,提高检测精度。

2.2.2 适应度函数确立

调整完离散度后,还需通过分支路径覆盖的形式构建理想的适应度函数。由于分支路径覆盖包括嵌套与谓词2种不同元素,嵌套越深,越不容易实现全面覆盖。因此,本文利用嵌套权重Qωn(bchi)来判断嵌套深度是否合理。设定bchi为某个分支;lmax和lmin分别为最大与最小嵌套深度;li'为现阶段嵌套深度。因此,嵌套权重表达式为

(3)

最终针对检测程序P建立适应度函数为

(4)

s为分支数量;ωi′为惯性权重;f(bchi)为分支bchi的适应度函数。由此可知,添加分支权重后,适应度函数可体现每个路径覆盖的全部信息,提高粒子群搜索的全明性。

2.3 建立系统兼容性测试模型

在检测过程中,结合碰撞域有关理论,经过对碰撞域半径的不断调节,得出覆盖率的理想值。利用上述改进的粒子群算法对测试用例做迭代处理,迅速建立兼容性较好的测试用例集合[7-8]。

合理设置兼容性检测数据变量的关键参考量,确保该值在一定区间内,为从测试数据中确定参数范围,必须获取被测软件参数的参考量。

计算碰撞半径后,需进一步统计碰撞次数。如果碰撞次数高于设定阈值,则表明在此参数区间内,生成大量测试用例,这时需要缩小碰撞半径,进而减少检测碰撞域。

调节碰撞半径的主要目的:在参数范围较广时,提高碰撞半径的下调速度,避免粒子群算法的迭代次数较多[9-10]。

将经过修正的测试用例添加到样本集合,在粒子群算法的每一代中获得优秀用例,迭代过程可帮助生成覆盖率高的检测用例,迭代过程为

(5)

将上述算法代入到云计算中,利用云交互平台为用户提供检测服务,则基于云计算的软件兼容性检测流程如图2所示。

图2 检测流程

3 实验分析

通过建立云计算平台,对本文测试算法进行仿真实验。仿真云环境体系如图3所示,其中包括主机、主储存器和集群等设备。

图3 仿真云环境体系

云计算下本文测试方法能够准确测试出由于软件不兼容导致的干扰频率。检测结果如图4所示。

图4 软件不兼容时系统干扰波频

在图4中,共检测出4次不兼容情况,当有不兼容现象存在时,干扰波频的幅度会明显增大。检出率是评价软件兼容性测试效果的关键指标。通过不断增加分布式软件数量,以人工方式向系统中由少到多添加不兼容软件,并利用本文方法与脆弱导向、动态加权组合网络神经方法进行不兼容检测,检出率如图5所示。

图5 不同方法检出率对比

由图5可知,随着分布系统中软件总数的不断增多,且人工添加的不兼容软件数量也逐渐增加,本文方法的检出率没有出现大幅度下降趋势,而其他2种方法在软件总数为60个左右时,检测性能下降,不能有效检测出不兼容的软件。这是因为粒子群算法的全局搜索能力较强,即使在较多样本环境下,也能找出目标样本。

此外,用户检测等待时间是衡量不同方法自动化程度的标准。如果自动化程度较高,不需要人工参与,进而提高检测速度。对3种方法的用户等待时间测试结果如图6所示。

分析图6可知,在5次检测实验中,本文方法的用户等待时间均在20 s以下,而动态加权神经网络方法的等待时间波动较大,说明检测算法的性能不稳定。这表明,云计算与粒子群相结合的方式不但提高了检测过程的自动化程度,也保证算法具有稳定性能。

图6 用户等待时间对比

软件测试过程会对系统资源造成较大压力,有些被测软件和操作系统之间存在一定相关性。因此,分析粒子群算法与其他2种方法应用在云计算中虚拟机的CPU利用情况,测试结果如图7所示。

图7 不同检测方法CPU利用率

通常情况下,CPU利用率的变化幅度应该在0~70%之间,CPU利用率越高,系统反应速度越慢。由图7可知,在检测的全过程中,本方法的CPU利用率表现良好,没有超过70%的现象。利用该方法进行软件兼容检测时,不会给系统造成额外负担,因此在检测时系统可以正常使用。

4 结束语

兼容性测试是软件系统正常运行的必要保障,本文在云计算中,利用粒子群算法对分布式软件系统的兼容性进行测试。仿真实验表明,该方法能够准确检测出不兼容的软件,同时具有较高的自动化程度。云计算是软件性能测试领域中的新形势,在此环境下,能够提高检测效果,更加省时省力,在今后研究中可通过云计算技术测试软件的其他性能,使分布式系统更好地为人们提供服务。

猜你喜欢

嵌套粒子软件
禅宗软件
软件对对碰
基于粒子群优化的桥式起重机模糊PID控制
基于粒子群优化极点配置的空燃比输出反馈控制
嵌套交易如何实现逆市盈利
程序设计中的嵌套循环
即时通讯软件WhatsApp
大小交路嵌套方式下城市轨道交通列车最优车组数开行方案
基于Matlab的α粒子的散射实验模拟
基于两粒子纠缠态隐形传送四粒子GHZ态