本发明专利技术涉及的是软件性能测试领域,具体涉及一种利用加速生命测试理论对产生老化现象的软件进行寿命测试的软件加速生命测试方法。软件加速生命测试方法包括:添加注入内存故障的代码;设置加速水平的压力值N为4,8,12,16,运行程序;记录失效时间TTF,保存数据;估计软件寿命的样本分布,建立合适的寿命和压力之间的关系,估计非加速情况下被测试系统的平均失效时间的分布。本发明专利技术部署和实施针对发生老化现象的软件的加速生命测试,通过耗时较短的加速生命测试得到加速情况下软件的寿命数据,计算非加速情况下软件的真实寿命,在更短的时间内,得到软件正常使用情况下寿命的概率分布。
【技术实现步骤摘要】
本专利技术涉及的是软件性能测试领域,具体涉及一种利用加速生命测试理论对产生老化现象的软件进行寿命测试的软件加速生命测试方法。
技术介绍
软件老化现象是软件长时间运行时,由于计算机资源的消耗而造成软件性能逐渐下降的现象。这种现象可能造成的后果是严重的,它不仅影响普通服务器软件的运行,并且可能对要求高可靠性的关键领域,如商业、金融、科技和军事等领域中使用的软件造成影响,在安全性要求极高的软件环境中,软件老化现象甚至可能造成人员伤害甚至生命损失。针对这种现象,学者提出了一种称作“软件再生(Software Rejuvenation)”的方法,也就是通过定期地重新启动服务器软件或者整个计算机系统,重新初始化服务器的内部状态,释放可能造成老化的被占用系统资源,使得软件的状态和性能得到恢复,从而避免或减缓老化造成的严重性能下降甚至软件系统宕机造成的损失。软件再生方法的应用当中,再生时间间隔的确定是一个非常重要的问题,若再生时间间隔选择过长,则可能不能避免软件老化现象造成的危害,若再生时间间隔选择过短,则主动再生行为本身为软件系统带来的开销就可能过大,造成软件实际使用效率的降低。通常,软件再生时间间隔会选择一个适当短于软件预期寿命的值,因此,对软件寿命的预测和估计一直是软件老化领域相关研究中的一个焦点。为了估计软件寿命的概率分布,可以对实际软件系统进行充分地抽象,利用马尔科夫模型、半马尔科夫模型、随机回报网、随机Petri网等数学模型对系统进行建模,从而抽象出软件寿命的特征;也可以研究真实的软件系统,利用各种性能参数的检测手段设计实验,从真实的实验中采集系统性能参数的各种变化数据,然后利用统计方法或者人工智能算法等,描述并且预测软件的寿命。对真实软件系统进行测试的一大障碍就是,通常情况下服务器软件都被设计成连续不间断地运行提供服务,即使存在老化现象,软件的寿命也会很长,很难直接通过实验得到软件失效时间的样本。传统的测试方式受制于测试时间和成本的限制,通常采用建立系统模型、预测模型或人工智能等方法,从较短时间的测试中采集适量性能数据,建模预测软件的寿命。
技术实现思路
本专利技术的目的在于利用加速测试理论提供一种快速的测试手段,本专利技术的目的在于利用加速测试理论提供一种更快速推导出受到老化现象影响的软件在正常压力水平下的寿命的软件加速生命测试方法。本专利技术的目的是这样实现的:软件加速生命测试方法:(1)向服务器软件中的模块添加注入内存故障的代码,周期性调用模块使故障重复发生,在加速压力N的控制下发生内存泄漏;(2)分别设置加速水平的压力值N为4,8,12,16,在每个加速水平下重复运行程序7次,共进行28组测试;(3)记录每次发生内存泄漏即注入内存故障时的时间点即失效时间TTF,同时监测内存系统的内存使用情况,当内存量为零时,停止测试,保存数据;(4)根据数据计算内存消耗速率,估计软件寿命的样本分布,绘制每一加速压力水平下的寿命分布曲线,建立合适的寿命和压力之间的关系,估计非加速情况下被测试系统的平均失效时间MTTF的分布。添加注入内存故障的代码,在加速水平N的控制下发生内存泄漏,在第一次访问页面时,立即注入内存泄漏,即申请一片内存,保证内存在服务区软件重启之前不会释放,由于被申请的内存不能被回收,因此发生了内存泄漏,产生一个0到N之间的随机数,随机数决定了下次注入内存泄漏之前,页面还能够被正常访问的次数,每一次访问该页面,随机数减1,当随机数减为0时,注入一块新的内存泄漏,同时产生一个新的随机数,随机数服从均匀分布,注入内存泄漏的速度取决于这个页面被访问的频率和控制随机数上限的N值即加速压力水平。本专利技术的有益效果在于:本专利技术利用传统工业领域中已经得到了广泛应用的加速生命测试理论,部署和实施针对发生老化现象的软件的加速生命测试,通过耗时较短的加速生命测试得到加速情况下软件的寿命数据,计算非加速情况下软件的真实寿命,在更短的时间内,得到软件正常使用情况下寿命的概率分布。附图说明图1是本专利技术的执行流程示意图;图2是加速压力与寿命的关系示意图。具体实施方式下面结合附图对本专利技术做进一步描述:专利技术的目的在于利用加速测试理论提供一种快速的测试手段,设计一组耗时较短的加速实验,测试加速情况下软件的寿命数据,从而推导出受到老化现象影响的软件在正常压力水平下的寿命。这个目的可以按照以下步骤实现(如图1所示):1.本专利技术的目的在于利用加速测试理论提供一种快速的测试手段,设计一组耗时较短的加速实验,测试加速情况下软件的寿命数据,从而推导出受到老化现象影响的软件在正常压力水平下的寿命。这个目的可以按照以下步骤实现:1.1待测试的对象应为服务器软件。1.2修改该服务器软件中的模块,添加注入内存故障的代码,使其能在加速压力N的控制下发生内存泄漏,其中该模块应能周期性地被调用,从而它内部存在的故障能重复发生。1.3分别设置加速水平的压力值N为4,8,12,16,然后在每个加速水平下重复运行程序7次,共28组实验。1.4在进行每组实验时,记录每次发生内存泄漏即注入内存故障时的时间点,同时用监测内存使用量的工具监测内存系统的内存使用情况,当监测工具显示内存量接近于零时,停止实验,保存并整理实验数据。1.5总共分析每次实验得到的在内存注入点上采集的数据,将最后一次成功注入之后,下一个失败的内存注入点为失效时间(TTF),同时分析监测工具获取的内存占用量,用斜率估计方法计算内存消耗速率。1.6由于这些失效时间代表不同加速水平下被测系统的寿命样本值,因此从这些样本值中估计寿命样本的概率分布,如图2中每一加速压力水平下的寿命分布曲线。接下来,可以建立合适的寿命和压力之间的关系,如IPL-Weibull、IPL-Lognormal等,以利用加速和非加速情况下的压力水平,以及实验得到的加速情况下的失效时间样本,估计出非加速情况下被测试系统的平均失效时间(MTTF)的分布,如图2中正常压力水平下的寿命分布曲线。根据权利要求1所述的添加注入内存故障的代码,在加速水平N的控制下发生内存泄漏,其具体方法是:第一次访问该页面时,立即注入内存泄漏,也就是申请一片内存,而且这片内存在服务区软件重启之前不会释放。由于被申请的内存不能被回收,因此视为发生了内存泄漏,同时,产生一个0到N之间的随机数,随后,刚刚产生的随机数决定了下次注入内存泄漏之前,这个页面还能够被正常访问的次数。每一次访问这个页面,随机数都会减1,当随机本文档来自技高网...
【技术保护点】
一种软件加速生命测试方法,其特征在于:(1)向服务器软件中的模块添加注入内存故障的代码,周期性调用模块使故障重复发生,在加速压力N的控制下发生内存泄漏;(2)分别设置加速水平的压力值N为4,8,12,16,在每个加速水平下重复运行程序7次,共进行28组测试;(3)记录每次发生内存泄漏即注入内存故障时的时间点即失效时间TTF,同时监测内存系统的内存使用情况,当内存量为零时,停止测试,保存数据;(4)根据数据计算内存消耗速率,估计软件寿命的样本分布,绘制每一加速压力水平下的寿命分布曲线,建立合适的寿命和压力之间的关系,估计非加速情况下被测试系统的平均失效时间MTTF的分布。
【技术特征摘要】
1.一种软件加速生命测试方法,其特征在于:
(1)向服务器软件中的模块添加注入内存故障的代码,周期性调用模块使故障重复发生,
在加速压力N的控制下发生内存泄漏;
(2)分别设置加速水平的压力值N为4,8,12,16,在每个加速水平下重复运行程序
7次,共进行28组测试;
(3)记录每次发生内存泄漏即注入内存故障时的时间点即失效时间TTF,同时监测内存
系统的内存使用情况,当内存量为零时,停止测试,保存数据;
(4)根据数据计算内存消耗速率,估计软件寿命的样本分布,绘制每一加速压力水平下
的寿命分布曲线,建立合适的寿命和压力之间的关系,估计非加速情况下被测试系统的平均
失效时...
【专利技术属性】
技术研发人员:赵靖,王延斌,靳瑜亮,李志娟,杨武,王慧强,
申请(专利权)人:哈尔滨工程大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。