CN103310073A - 一种考虑软件测试与运行环境差别的软件成本模型建模方法 - Google Patents
一种考虑软件测试与运行环境差别的软件成本模型建模方法 Download PDFInfo
- Publication number
- CN103310073A CN103310073A CN2013102723689A CN201310272368A CN103310073A CN 103310073 A CN103310073 A CN 103310073A CN 2013102723689 A CN2013102723689 A CN 2013102723689A CN 201310272368 A CN201310272368 A CN 201310272368A CN 103310073 A CN103310073 A CN 103310073A
- Authority
- CN
- China
- Prior art keywords
- software
- cost
- test
- model
- fault
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种考虑软件测试与运行环境差别的软件成本模型建模方法,属于软件成本模型研究领域。本发明方法将测试与运行环境的差别考虑到软件成本模型的建模过程中,分析环境差别对软件测试成本和维护成本的影响,基于环境因子,构造软件成本模型中测试阶段内修正单位软件故障的费用c1和测试阶段内单位时间的测试费用c3的函数,进一步得到新的软件成本模型,并依据该模型进行软件成本预测。本发明方法反映了环境差异对软件成本的影响,使软件成本模型预测更符合实际,从而对软件成本进行更精确的预测,并确定软件发布时间。
Description
技术领域
本发明涉及软件成本模型研究领域,特别是考虑了软件测试与运行环境之间的差别,提出了一种基于软件测试与运行环境差别的软件成本模型建模方法。
背景技术
为了使软件达到一个安全稳定的可靠性等级,软件在发布前要经过长时间的测试过程。但测试过程十分消耗时间和金钱。软件测试时间越短,越有利于减少测试成本,但是同时会带来软件的不可靠性,增加维护成本;另一方面,软件的测试时间越长,增加了软件测试成本,同时软件发布时间的推迟可能减少产品的市场占有率。所以,何时停止软件测试、将软件产品发入市场,是实际工程中需要考虑的重要问题。而软件成本模型就是用来帮助软件开发者控制成本和确定发布时间的有效工具。
软件系统特别是嵌入式系统,在运行阶段,与测试环境不同的硬件平台、操作系统和不同的应用软件的作用等,使得软件运行环境和测试环境存在差异。
(1)由于运行环境中的测试十分消耗资源和时间,所以在软件测试过程中,人们会采用多种测试方法和测试工具加速软件的失效,来降低成本,提高效率。测试技术的使用,加速了软件系统的失效过程,利用测试阶段的失效数据来预测运行阶段失效强度,会对运行阶段失效强度的估计较悲观。
(2)测试阶段的故障检测率,与测试方法和测试工具有关,随时间是一个递减的函数,而运行阶段的故障检测率与使用环境、操作人员习惯、软件系统使用频率等有关,变化存在不确定性。
(3)为了提高软件发布时的可靠性,在测试阶段对软件的操作和出现的频率,以及对指定应用的输入都是为了发现软件错误并修正而进行的,和运行阶段用户对软件系统的操作有很大的不同。对软件操作的差异必然导致测试阶段的测试覆盖率和测试速度高于运行阶段。测试覆盖率和测试速度的差异进一步说明了测试剖面和运行剖面的差异。
因此,软件测试环境和运行环境之间存在着差异,这种差异会影响软件成本模型的成本参数以及对软件失效强度的估算,进而对软件的成本估算及最优发布时间造成影响。
软件成本模型是用来帮助软件开发者控制成本和确定发布时间的有效工具。软件成本模型一般包括测试阶段的成本和运行阶段的成本,其中测试阶段的成本又分为测试成本和排错成本。运行阶段的成本也称为维护成本,是指软件发布后的发生失效的排错成本。Okumoto和Goel等提出的经典软件成本模型如下等式所示,
C成本(T)=c1m(T)+c2[m(TL)-m(T)]+c3T
其中,C成本(T)是软件总成本,T是软件的发布时间,TL是软件的运行时间,m(T)为软件故障累计失效数,c1m(T)是测试阶段排除故障的成本,c2[m(TL)-m(T)]是运行阶段排除故障的成本,且c2>>c1。c3是软件在测试阶段内单位时间的测试成本。c1是指测试阶段内修正单位软件故障的费用,c2是运行阶段内修正单位软件故障的费用。
从理论上来将,测试与运行环境的差异对软件成本的影响主要体现在两方面:
1、对测试阶段成本的影响;
环境差异的变化主要体现在测试覆盖率、测试速度和故障检测率上,这些指标也能够有效地反映测试质量。测试质量的高低会影响测试阶段修正一个错误的费用c1、单位时间的测试费用c3等,进而对软件测试阶段的成本造成影响。
2、对软件维护成本的影响;
由于运行环境中的测试十分消耗资源和时间,所以在软件测试过程中,人们会采用多种测试方法和测试工具加速软件的失效,来降低成本,提高效率。测试技术的使用,加速了软件系统的失效过程,利用测试阶段的失效数据来预测运行阶段失效强度,会对运行阶段失效强度的估计较悲观,造成累积失效数m(T)的估计比实际情况中的大,进而影响软件维护成本。
发明内容
本发明的目的是考虑软件测试与运行环境差别,提出一种建立软件成本模型的方法。本发明中提出的方法区别于现有方法的显著特征在于:考虑软件系统中普遍存在的测试环境与运行环境差别,分析环境差别对软件维护成本的影响,以及当环境差别发生变化时对测试期间修正软件故障的费用和单位时间软件测试费用的影响,提出一种新的软件成本函数,并在软件成本函数的基础上提出一种考虑测试与运行环境差别的软件成本模型。
本发明是一种考虑软件测试与运行环境差别的软件成本模型建模方法,通过以下步骤实现:
步骤一、构造软件成本模型中参数c1和c3关于环境因子k的函数:
参数I=(A-B)(1-C),A、B和C是环境因子参数,对应的初始值分别为A0、B0和C0;A表示环境因子变化的比例,B表示环境因子变化的速率,C表示环境因子的调整系数,将环境因子参数的初始值代入I的表达式得到I0。
步骤二、依据参数c1和c3的函数,确定软件成本模型C成本(T):
其中,T是软件的发布时间,TL是软件的运行时间,m(T)为软件故障累计失效数,c2是运行阶段内修正单位软件故障的费用。
步骤三、利用步骤二得到的软件成本模型,对软件成本进行预测,确定软件发布时间。
本发明的优点与积极效果在于:本发明将软件测试与运行环境差别引入到成本模型中,提出了一种新的软件成本函数,反映了环境差异对软件成本的影响,使软件成本模型预测更符合实际,从而可根据该模型对软件成本进行更精确的预测,并确定软件发布时间。
附图说明
图1是本发明建模方法的流程示意图;
图2是三种模型对软件成本进行预测的曲线对比示意图。
具体实施方法
下面将结合附图和实例对本发明作进一步的详细说明。
本发明是考虑软件测试与运行环境差别,提出一种建立软件成本模型的方法。目的是将软件系统中普遍存在的测试与运行环境差别引入到对成本的预测中,分析环境差别对软件维护成本的影响,以及当环境差别发生变化时对测试期间修正软件故障的费用和单位时间软件测试费用的影响,提出一种新的软件成本函数,并在成本函数的基础上提出一种考虑测试与运行环境差别的软件成本模型,实现对成本更精确的预测,从而便于软件项目管理者合理地控制软件成本,确定软件发布时间。
在背景技术部分分析并验证了软件测试环境与运行环境之间是存在差异的。软件系统特别是嵌入式系统,在运行阶段,与测试环境不同的硬件平台、操作系统和不同的应用软件的作用等,使得软件运行环境和测试环境存在差异。因此有必要考虑软件测试与运行环境差别,来进行软件成本模型建模。
在进行说明本发明方法之前,首先选择经典的NHPP(Non-homogeneous Poisson Process,非齐次泊松过程)类软件可靠性模型,对比分析环境差异对软件维护成本的影响。
选择经典G-O模型和基于环境因子函数的软件可靠性模型(可参考文献:闫雪丽.嵌入式软件可靠性模型研究[D].哈尔滨工程大学,2011.)中提出的考虑测试与运行环境差别的软件可靠性增长模型为对比模型,从数学角度验证环境差别对软件成本的影响。
模型1:G-O模型;
G-O模型是经典的NHPP类软件可靠性增长模型,它假设测试情况是理想的,软件故障累计失效数m(t)的期望值函数为:
m(t)=a(1-e-bt)
其中,a是软件中的初始故障,b是残余故障检测率。
模型2:基于环境因子函数的软件可靠性模型;
该模型通过环境因子函数来衡量测试和运行阶段的环境差异,对失效数据的拟合度和预测能力都好于其他模型,从测试到运行阶段的软件故障累计失效数m(t)的期望函数为:
其中,a是软件中的初始故障,b是残余故障发现率,A、B、C为环境因子参数,可以使用最小二乘法估计得到。用A表示环境因子变化的比例。参数B的大小表示环境因子变化的速率。C为环境因子的调整系数,可以实现使离散的环境因子值有正数也有负数。α是学习过程的强度参数,β是故障引入率,可以对失效数据利用最小二乘法估计得到。
应用已有的软件系统失效数据(可参考文献:M.Lyu,Ed.在1996年编写的HandbookSoftware Reliability Engineering.New York:McGraw-Hill.79~109),利用最小二乘法对各可靠性模型中的参数进行估计。并且为了方便,引用研究者收集的成本经验数据(可参考文献:Yang B.,Xie M.,A Study of Operational and Testing Reliability in Software Reliability anal-ysis[J].Reliability Engineering and Systems Safety,2000,70(3):323-329)。通过这两组数据和两种模型,计算软件最小成本C成本(min),如表1所示。
表1 两种模型的参数设置及得到的软件最小成本
由上述的计算结果可知,模型2的成本大于模型1的成本,这是因为模型1的假设条件都是理想状态,比如假设故障一经发现就会被立即排除,并且在修正故障的过程中不会引入新的故障等。但实际上,故障检测和排错过程受到诸多因素的影响,这些理想的假设状态是不可能存在的,比如故障被发现后需要定位、分析,然后才能进行修正,并且在修正过程中经常引入新的错误。因此,G-O模型对软件失效强度的预测结果乐观,对累积失效数的估计偏低,进而会对成本估算造成影响。相比G-O模型,模型2假设故障引入率是随时间变化的,并考虑了测试中的学习过程和环境差别的影响,因此对软件失效强度预测更精确,对累积失效数的估计更符合现实情况。由此可见,测试和运行环境差异存在于实际的测试过程中,它们对测试成本的影响是不可忽略的。
其次,应用实际数据验证环境差异变化时对软件测试成本的影响。
下面通过环境因子讨论环境差异变化对软件成本的具体影响。基于环境因子函数的软件可靠性模型通过环境因子函数来模拟实际工程中测试和运行差异,其形式如下,
其中,btest(t)为软件测试期间的故障检测率。bfield(t)为软件运行期间的故障检测率。t表示时间,k表示环境因子。
应用表1中参数,并假设软件的发布时间固定,即软件测试时间固定,B、C为固定值,当A增加,环境因子k也增加,对成本的影响如表2。
表2 环境因子变化比例改变时对成本的影响
A | C成本(min) |
3.7 | 30546 |
3.8 | 29005 |
3.9 | 28545 |
4.0 | 27289 |
4.1 | 27053 |
假设软件发布时间固定,A、C为固定值,则当B增加,环境因子减少,对成本的影响如表3。
表3 环境因子变化速率改变时对成本的影响
B | C成本(min) |
0.000036 | 30546 |
0.000056 | 30648 |
0.000076 | 30978 |
0.000096 | 30134 |
0.000106 | 31752 |
假设软件发布时间固定,A、B为固定值,则当C增加,环境因子增加,对成本的影响如表4。
表4 环境因子调整参数改变时对成本的影响
C | C成本(min) |
0.01 | 30546 |
0.02 | 30952 |
0.03 | 31453 |
0.04 | 31985 |
0.05 | 32578 |
由计算结果可以看出A、B、C变化对软件成本产生的影响。A越大,环境差异变化越大,环境因子越大,成本误差也越大。B越大,变化速率越大,环境因子越小,成本误差越小。C越大,环境因子越大,成本误差越大。因此环境差异对成本的影响不可忽略,不考虑环境差异对成本的影响将会影响成本预算,进而影响软件质量。
如图1所示,为本发明提供的考虑软件测试与运行环境差别的软件成本模型建模方法的流程,通过分析环境差异对测试期间修正软件故障的费用和单位时间软件测试费用存在影响的原因,提出一种新的软件成本函数,下面对实现方法进行具体说明。
在可靠性模型的分析中,运行阶段的故障检测率与使用环境、操作人员习惯、软件系统的运行时间长度、功能模块使用频率等因素有关,bfield(t)变化是不确定的。本发明实例中在讨论测试与运行差异对软件成本的影响时,假设操作人员固定,使用环境等没有变化,则bfield(t)的变化为确定的,因此环境因子随btest(t)的变化而变化。当测试期间故障检测率较高时,环境因子的值就较大,测试与运行环境差异也比较明显,对成本的影响较大。当测试期间故障检测率较低时,环境因子的值较小,测试与运行环境差异也较小,对成本的影响变小。
故障检测率为软件在经过T时间的测试以后检测出软件故障的概率。故障检测率的高低受测试质量的影响,如果测试质量较高,则软件中残留的故障就少,故障检测率变低;如果测试质量不高,则软件中残留的故障多,检测出的概率就会增大,故障检测率变高。在舒燕君的研究中(参考文献:舒燕君,吴智博,刘宏伟等,基于测试级别的软件成本模型的研究[J]。北京化工大学学报,2007,34(1):59-63),提出了软件测试级别这一概念,合理地反映了软件测试质量的高低,低故障检测率需要较高的测试级别,高故障检测率则需要较低的测试级别,并且传统软件成本模型中的c1关于测试级别递减,c3关于测试级别递增。
通过以上分析可以得到,环境因子增加,则测试阶段故障检测率btest(t)增加,测试级别较低,c1递增,c3递减。所以c1关于环境因子k递增,c3关于环境因子k递减。反映在环境因子函数的参数上,就是c1随A、C递增,随B递减,c3随A、C递减,随B递增。
步骤一:构造软件成本模型中参数c1和c3关于环境因子k的函数。
根据以往开发软件系统的经验数据估计得到c1和c3的估计值和A0、B0、C0是软件系统初始的环境因子参数,根据相似软件或者软件已发布的版本得到。根据c1和c3随环境因子参数A、B和C的变化趋势,构造以下函数
其中,参数I=(A-B)(1-C),I0=(A0-B0)(1-C0)。
步骤二、建立考虑测试与运行环境差异的软件成本模型。
将得到的c1和c3的函数应用于传统软件成本模型中,可以得到一个考虑测试与运行环境差异的软件成本模型:
步骤三、利用步骤二得到的软件成本模型,对软件成本进行预测,确定软件发布时间。
对软件成本进行预测,首先利用可靠性模型得到软件累计失效数m(t),然后根据实际情况选用符合的成本模型,将m(t)代入成本模型中,得到成本随时间变化情况。
应用表1中的数据,选用以下三个模型进行对比分析:
模型1:Okumoto和Goel等提出的经典软件成本模型
C成本(T)=c1m(T)+c2[m(TL)-m(T)]+c3T
其中,m(T)由G-O模型得到。
模型2:进一步的,为了验证环境差异对软件维护成本的影响,取Okumoto和Goel等提出的经典软件成本模型
C成本(T)=c1m(T)+c2[m(TL)-m(T)]+c3T
其中,m(T)由基于环境因子函数的软件可靠性模型得到。
模型3:考虑测试与运行环境差异的软件成本模型:
其中,m(T)由基于环境因子函数的软件可靠性模型得到;为了方便讨论,取初始的环境因子参数为A0=3.9,B0=0.000034,C0=0.02。
成本曲线如图2所示,成本随着测试的进行先下降,降到成本最低点时开始升高。成本曲线的如此特性可以通过分析软件成本模型获得。假设测试时间为T时已经发现了n个错误,此时修正测试期间错误的费用增加了nC1,如果软件中可以检测到的总故障数为常数a,即m(TL)=a,则修正运行期间错误的费用为c2[m(TL)-m(T)],减少了nc2,由于c2>>c1,此时软件成本随测试时间T下降。当成本逐渐下降的过程中,测试时间在不断增加,测试费用c3T也在不断增加,到成本降到最低时再继续进行测试,此时c1m(T)和c3T的增加幅度大于c2[m(TL)-m(T)]减少的幅度,随着测试的进行,软件成本又开始回升,并随着测试时间一直增加。
通过图2可以看出,模型2对成本的估算高于模型1,因为模型1在对故障累计失效数估计时,由于假设条件过于理想,导致估计结果乐观,造成成本预测偏低。模型2在对故障累计失效数估计时,假设故障引入率是随时间变化的,并考虑了测试中的学习过程和环境差别的影响,因此估计更精确,弥补了模型1对软件维护成本预测的不足。模型3在模型2的基础上,考虑了环境差异对c1、c3的影响,使得对软件测试阶段的成本预测更精确。通过实验结果证明,在基于测试与运行环境差异的基础上建立的软件成本模型更符合实际情况,对成本的预测更精确。软件管理者可以根据本发明的建模方法构建成本模型,预测软件成本,确定软件发布时间。
Claims (2)
1.一种考虑软件测试与运行环境差别的软件成本模型建模方法,其特征在于,包括如下操作步骤:
步骤一、构造软件成本模型中参数c1和c3关于环境因子k的函数;
参数I=(A-B)(1-C),A、B和C是环境因子参数,对应的初始值分别为A0、B0和C0;A表示环境因子变化的比例,B表示环境因子变化的速率,C表示环境因子的调整系数,将环境因子参数的初始值代入I的表达式得到I0;
步骤二、依据参数c1和c3的函数,确定软件成本模型C成本(T):
其中,T是软件的发布时间,TL是软件的运行时间,m(T)为软件故障累计失效数,c2是运行阶段内修正单位软件故障的费用;
步骤三、利用步骤二得到的软件成本模型,对软件成本进行预测,确定软件发布时间。
2.根据权利要求1所述的软件成本模型建模方法,其特征在于,所述的环境因子k,关于时间t的表达式为:
其中,btest(t)为软件测试期间的故障检测率,bfield(t)为软件运行期间的故障检测率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310272368.9A CN103310073B (zh) | 2013-07-02 | 2013-07-02 | 一种考虑软件测试与运行环境差别的软件成本模型建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310272368.9A CN103310073B (zh) | 2013-07-02 | 2013-07-02 | 一种考虑软件测试与运行环境差别的软件成本模型建模方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103310073A true CN103310073A (zh) | 2013-09-18 |
CN103310073B CN103310073B (zh) | 2016-04-20 |
Family
ID=49135285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310272368.9A Active CN103310073B (zh) | 2013-07-02 | 2013-07-02 | 一种考虑软件测试与运行环境差别的软件成本模型建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103310073B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871310A (zh) * | 2017-12-04 | 2019-06-11 | 北京京东尚科信息技术有限公司 | 一种版本质量测试的方法和装置 |
CN111475137A (zh) * | 2020-04-17 | 2020-07-31 | 中国铁建重工集团股份有限公司 | 一种软件开发需求预测的方法、系统及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100121809A1 (en) * | 2008-11-13 | 2010-05-13 | Joachim Holz | Method and system for predicting test time |
CN102508774A (zh) * | 2011-10-28 | 2012-06-20 | 哈尔滨工程大学 | 基于新环境因子函数的软件可靠性增长模型的建模方法 |
-
2013
- 2013-07-02 CN CN201310272368.9A patent/CN103310073B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100121809A1 (en) * | 2008-11-13 | 2010-05-13 | Joachim Holz | Method and system for predicting test time |
CN102508774A (zh) * | 2011-10-28 | 2012-06-20 | 哈尔滨工程大学 | 基于新环境因子函数的软件可靠性增长模型的建模方法 |
Non-Patent Citations (2)
Title |
---|
舒燕君等: "基于测试级别的软件成本模型的研究", 《北京化工大学学报》 * |
高峰等: "基于指数环境因子函数的软件可靠性增长模型", 《系统工程与电子技术》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871310A (zh) * | 2017-12-04 | 2019-06-11 | 北京京东尚科信息技术有限公司 | 一种版本质量测试的方法和装置 |
CN109871310B (zh) * | 2017-12-04 | 2023-05-02 | 北京京东尚科信息技术有限公司 | 一种版本质量测试的方法和装置 |
CN111475137A (zh) * | 2020-04-17 | 2020-07-31 | 中国铁建重工集团股份有限公司 | 一种软件开发需求预测的方法、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103310073B (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wan et al. | Probabilistic forecasting of wind power generation using extreme learning machine | |
US9740545B2 (en) | Equipment evaluation device, equipment evaluation method and non-transitory computer readable medium | |
CN103279804B (zh) | 超短期风电功率的预测方法 | |
Wan et al. | Optimal prediction intervals of wind power generation | |
CN108038040A (zh) | 计算机集群性能指标检测方法、电子设备及存储介质 | |
CN103268519B (zh) | 基于改进Lyapunov指数的电力系统短期负荷预测方法及装置 | |
CN104216783B (zh) | 云游戏中虚拟gpu资源自主管理与控制方法 | |
CN102508774A (zh) | 基于新环境因子函数的软件可靠性增长模型的建模方法 | |
CN105243502B (zh) | 一种基于径流区间预测的水电站调度风险评估方法及系统 | |
CN104639626A (zh) | 一种多级负载预测与云资源弹性配置方法与监控配置系统 | |
JP6498976B2 (ja) | 推定装置、推定方法およびコンピュータプログラム | |
Shoukourian et al. | Using machine learning for data center cooling infrastructure efficiency prediction | |
CN104462861A (zh) | 一种基于水库调度规则合成的水库调度决策方法 | |
CN105305439A (zh) | 一种考虑输入变量相关性的概率动态潮流计算方法及系统 | |
CN105933932A (zh) | 复杂环境下无线传感器网络的实时故障诊断方法及系统 | |
CN103885867B (zh) | 一种模拟电路性能的在线评价方法 | |
CN108205713A (zh) | 一种区域风电功率预测误差分布确定方法和装置 | |
Liu et al. | Machine learning-based stochastic subspace identification method for structural modal parameters | |
CN103530229A (zh) | 一种考虑测试效用的软件可靠性检测方法 | |
Xiyun et al. | Wind power probability interval prediction based on bootstrap quantile regression method | |
CN106897505A (zh) | 一种考虑时‑空相关性的结构监测数据异常识别方法 | |
CN115391048A (zh) | 基于趋势预测的微服务实例动态水平扩展收缩方法及系统 | |
CN103514488A (zh) | 基于组合预测模型的电力系统短期负荷预测装置及方法 | |
Burhenne | Monte Carlo based uncertainty and sensitivity analysis for building performance simulation | |
CN103310073A (zh) | 一种考虑软件测试与运行环境差别的软件成本模型建模方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |