论文部分内容阅读
随着计算机软件的快速发展,使得软件系统的复杂度剧烈增长,为了保证软件系统的可靠性,不可避免的带来了软件测试资源消耗的增长。在测试资源日趋紧张的今天,如何在达到软件可靠性要求的前提下,尽可能的减少测试资源的消耗变得越来越重要。软件测试资源分配问题涉及软件可靠性、代价等模型的建立以及如何在软件可靠性、测试资源消耗和软件发布时间之间寻求有效的平衡,因此优化软件测试资源分配就是一个多目标优化问题。本文在分析现有的软件可靠性增长模型的基础上,发现很多可靠性模型在建模过程中忽略了故障修正过程,针对此问题本文采用兼具故障修正的软件可靠性增长模型作为可靠性评估函数;典型的参数评估方法通过求解一阶偏导获得参数评估值,该方法不能保证全局最优解,针对该问题本文提出一种基于差分进化算法的最小二乘法,来得到更为精准的参数评估值。以往的优化软件测试资源分配就是在有限测试资源的条件下,最小化测试代价,最大化可靠性,本文将最小化软件发布周期做为第三个优化目标,并且使用本文提出的基于自适应算子和邻域种群选择的差分进化算法解决该优化问题。本文的主要工作及创新点如下:(1)经研究发现,被广泛使用的非齐次泊松过程类软件可靠性增长模型都完全依赖于这样一个假设:一个潜在故障被检测到之后,会立即被移除。而在实际的测试工作中,发现故障检测和故障修正之间必然会存在一个时间延迟,而且有可能故障修正严重滞后于故障检测。针对此问题,本文采用基于时间延迟的软件可靠性增长模型(Based on Time Delay-Software Reliability Growth Model,BTD-SRGM)作为可靠性评估函数。(2)本文提出一种基于进化算法的最小二乘法参数(Evol-utionary Algorithmbased Least Squares,LSEA)估计办法。一般学者在对软件可靠性模型进行参数估计时会对损失函数求一阶偏导,这样并不能保证全局最优解,很大可能得出的结果只是一个局部最优解,会给实验结果带来很大的偏差,本文根据差分进化算法良好的全局收敛性,将差分进化算法应用到最小二乘法的求解过程中,并给出了与典型最小二乘法的对比实验。(3)提出了一种基于多臂老虎机(Multi-armed Bandits,MAB)的自适应算子选择的差分进化算法。在进化算法的迭代过程中,不存在任何一个算子或者邻域种群大小能够很好地适用于整个搜索阶段,然而很多进化算法在搜索过程中都存在单一算子和邻域种群的不足。针对该问题本文提出基于MAB理论的算法来决定如何选择合适的算子(Adaptive Operator Selection,AOS)和邻域种群,并且通过衰减机制来提高表现好的算子的利用率。考虑到Pareto前沿的多样性,在提出的算法中嵌入距离排序(distance-sorting,DS),得到了基于多臂老虎机的差分进化算法(Multi-Armed Bandits and Decomposition-based Multi-Objectives Differential Evolution,DMAB-MODED),实验表明MAB-MODED能在更短的时间内和更低的测试代价情况下,达到可接受的软件可靠性。