CN111538654B - 一种软件可靠性测试方法、系统、存储介质 - Google Patents
一种软件可靠性测试方法、系统、存储介质 Download PDFInfo
- Publication number
- CN111538654B CN111538654B CN202010275488.4A CN202010275488A CN111538654B CN 111538654 B CN111538654 B CN 111538654B CN 202010275488 A CN202010275488 A CN 202010275488A CN 111538654 B CN111538654 B CN 111538654B
- Authority
- CN
- China
- Prior art keywords
- fault
- test
- model
- software
- function
- 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.)
- Active
Links
- 238000010998 test method Methods 0.000 title claims description 22
- 238000012360 testing method Methods 0.000 claims abstract description 163
- 230000008439 repair process Effects 0.000 claims abstract description 73
- 238000001514 detection method Methods 0.000 claims abstract description 51
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000008569 process Effects 0.000 claims abstract description 37
- 238000010276 construction Methods 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 85
- 230000001186 cumulative effect Effects 0.000 claims description 11
- 238000011160 research Methods 0.000 claims description 7
- 238000006467 substitution reaction Methods 0.000 claims description 2
- 238000013522 software testing Methods 0.000 abstract description 14
- 238000004458 analytical method Methods 0.000 abstract description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 26
- 238000013178 mathematical model Methods 0.000 description 6
- 230000007547 defect Effects 0.000 description 4
- 230000000052 comparative effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- PQKRYXHYWWQULJ-JMKYFRMNSA-N [(8r,9s,10r,13s,14s,17s)-13-methyl-3-oxo-2,6,7,8,9,10,11,12,14,15,16,17-dodecahydro-1h-cyclopenta[a]phenanthren-17-yl] 3-(4-hexoxyphenyl)propanoate Chemical compound C1=CC(OCCCCCC)=CC=C1CCC(=O)O[C@@H]1[C@@]2(C)CC[C@@H]3[C@H]4CCC(=O)C=C4CC[C@H]3[C@@H]2CC1 PQKRYXHYWWQULJ-JMKYFRMNSA-N 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明属于软件测试技术领域,公开了一种软件可靠性测试方法、系统、存储介质、计算机程序,建立了基于故障检测率函数、故障修复函数和新故障引入函数的故障检测、修复与引入模型,对模型进行求解;求解得到统一的测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试模型;求得软件中总故障数量和累积修复的故障数量;完成了测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试框架模型的构建,得到了表示截止时刻累积检测到和修复的故障数量,软件中总的故障数量。本发明提出一种全面考虑不完美排错的软件可靠性过程分析方法,并明确考虑到测试覆盖,所提出的模型能够更加准确地描述软件测试过程。
Description
技术领域
本发明属于软件测试技术领域,尤其涉及一种软件可靠性测试方法、系统、存储介质。
背景技术
目前,软件测试是提高可靠性的必不可少的关键环节,是软件可靠性不断增长的过程。软件测试过程是软件测试人员在某种测试环境下,按照预定的测试策略或计划,执行测试案例,发现与检测软件运行中的失效,定位、收集、记录故障,并进行修复故障的过程。整个过程大致由三个部分组成,即故障检测过程、故障分析过程、故障修复过程。随着故障被不断的检测和修复,软件的可靠性得到提高。由于软件测试与排错的随机性、复杂性,被检测到的故障在修复阶段可能没有被成功排除,出现排错的不完全现象;另外,在故障的修复过程中,由于可能破坏程序的内在结构逻辑,存在引入新故障的可能。包括这两种情况等实际测试情况在内的复合现象通常被称为不完美排错现象。因此,不完美排错是更加软件测试过程实际的过程。因此,近年来,不完美排错得到了一定程度的研究。
软件可靠性增长模式SRGM可被用来建模软件测试过程,利用数学手段来定量描述故障检测、修复等关系,是对软件可靠性进行有效度量与预测的重要工具。在现有SRGM研究看来,不完美排错是对实际软件测试过程的一种近似抽象,包括排错的不彻底现象、引入新故障现象或者是软件中总故障数量a(t)的不断增长上。这些研究都是从不同角度和内容对测试过程的不完美排错建模,有力地推动了SRGM的发展,但对不完美排错的全面准确描述不够深入。例如,很多大型软件的测试过程中,故障排错的不完全与引入新故障通常是同时存在的,二者相互交织在一起。从测试覆盖角度来看,包括经典的G-O模型在内的很多完美排错和不完美排错模型,均默认或假定测试覆盖满足100%,但显然这是不切合实际的。测试覆盖针对程序结构进行测试策略下的测试,涵盖语句覆盖、分支覆盖、条件覆盖、路径覆盖、数据流覆盖、函数覆盖、调用覆盖,因此从测试覆盖的角度研究可靠性可以更加细腻地剖析可靠性的变动。事实上,软件测试过程是较为复杂的随机过程。为了得到更加有效的可靠性模型,就需要能够对测试过程中的随机因素进行考虑。
通过上述分析,现有技术存在的问题及缺陷为:现有技术从不同角度和内容对测试过程的不完美排错建模,但缺乏将多种真实测试过程中的随机因素进行系统考虑,没有将故障自检测至修复以及新故障引入三者之间的关系进行建模,没有形成更为精准的数学模型,因而对不完美排错的全面准确描述不够深入。
解决以上问题及缺陷的难度为:更加精准的建立测试过程中多个过程的数学模型是SRGM研究的重点与难点,这里将故障检测、修复与引入新故障三个子过程建立了较为严密的数学模型,突破了以往缺乏从故障检测率、故障修复率、故障引入率角度综合衡量软件测试的整体功效的不足,并使得所建立的模型具有良好性能。
解决以上问题及缺陷的意义为:所建立的不完美排错框架模型,覆盖了故障检测、修复与引入等多种实际情况,使得从严密的数学模型角度研究可靠性的动态变化带来可能。将测试覆盖融入到数学模型中,能够有助于研究测试中的多种测试覆盖形式对模型引发的扰动影响。整体解决方法能够为测试过程中选择合适的不完美排错下测试覆盖相关的软件可靠性增长模型带来理论与现实上的指导,对于从测试覆盖角度提高测试效率、优化资源分配和提高可靠性的持续增长等具有重要意义。
发明内容
针对现有技术存在的问题,本发明提供了一种软件可靠性测试方法、系统、存储介质。
本发明是这样实现的,一种软件可靠性测试方法,其特征在于,所述软件可靠性测试方法包括:
第一步,建立了基于故障检测率函数、故障修复函数和新故障引入函数的故障检测、修复与引入模型,对模型进行求解;
第二步,求解得到统一的测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试模型;
第三步,求得软件中总故障数量和累积修复的故障数量;
第四步,完成了测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试框架模型的构建,得到了表示截止时刻累积检测到和修复的故障数量,软件中总的故障数量。
进一步,所述软件可靠性测试方法令m(t)和r(t)分别表示截止t时刻累积检测到和修复的故障数量,a(t)表示t时刻软件中总的故障数量;建立了基于故障检测率函数b(t)、故障修复函数p(t)和新故障引入函数γ(t)的故障检测、修复与引入模型:
b(t)是故障检测率,表示在测试环境下测试人员运用测试技术故障被检测出来的概率,从多种角度进行设定;当考虑测试覆盖的角度时,故障检测率b(t)表示如下:
c(t)表示截止至t时刻已经被测试代码的百分比;1-c(t)表示到t时刻尚未被测试覆盖的比例,c(t)的导数c’(t),则表示t时刻点上的测试覆盖率,故障检测率FDR与c’(t)成正比例,且与1-c(t)成反比例,b(t)=c’(t)/[1-c(t)];r(t)表示新故障引入率,p(t)表示t时刻故障被成功修复的比例函数;
此微分方程组的边界条件为:
对模型进行求解:
a(t)=a+γ(t)·r(t);
令则得:
将代入a(t)=a+γ(t)·r(t),则有:
代入/>得:
令则:
解得:
将代入/>得:
由此求解得到统一的测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试模型:
则失效率λ(t)为:
求得软件中总故障数量a(t)和累积修复的故障数量r(t):
至此,完成了测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试框架模型的构建,得到了m(t),r(t)和a(t)。
进一步,所述软件可靠性测试方法的测试阶段的软件可靠性表示为R(x|T),软件上一次失效时间是T(T≥0,x>0),则在(T,T+x)内的软件可靠性表示为:
R(x|T)=e-[m(T+x)-m(T)];
若从T=0开始,则m(t)=0,将代入R(x|T)=e-[m(T+x)-m(T)],则得到可靠性R(x):
进一步,所述软件可靠性测试方法的测试覆盖函数视角下完美测试框架模型,c’(t)/(1-c(t))被用来度量该时刻的故障检测率b(t),c(t)描述测试用例的执行情况,通过c(t)的变动获得不同的FDR函数,得到不完美排错过程模型:
求解得到测试覆盖函数下的不完美测试模型中的m(t):
至此,从测试覆盖函数c(t)的角度得到了SRGM研究中的关键待求变量m(t)。通过设定各类测试覆盖函数c(t),则得到一系列相关的m(t),p(t)=p,γ(t)=γ,则求得m(t)如下:
本发明的另一目的在于提供一种接收用户输入程序存储介质,所存储的计算机程序使电子设备执行下列步骤:
第一步,建立了基于故障检测率函数、故障修复函数和新故障引入函数的故障检测、修复与引入模型,对模型进行求解;
第二步,求解得到统一的测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试模型;
第三步,求得软件中总故障数量和累积修复的故障数量;
第四步,完成了测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试框架模型的构建,得到了表示截止时刻累积检测到和修复的故障数量,软件中总的故障数量。
本发明的另一目的在于提供一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施所述的软件可靠性测试方法。
本发明的另一目的在于提供一种实施所述的软件可靠性测试方法的软件可靠性测试系统,所述软件可靠性测试系统包括:
模型函数引入模块,用于建立了基于故障检测率函数、故障修复函数和新故障引入函数的故障检测、修复与引入模型,对模型进行求解;
不完美测试模型求解模块,用于求解得到统一的测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试模型;
故障数量获取模块,用于求得软件中总故障数量和累积修复的故障数量;
模型构建模块,用于完成测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试框架模型的构建,得到了表示截止时刻累积检测到和修复的故障数量,软件中总的故障数量。
本发明的另一目的在于提供一种终端,所述终端安装有所述的软件可靠性测试系统。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:准确地建模软件可靠性并进行有效的度量与预测可靠性趋势对于软件开发至关重要,越靠近软件测试的真实过程,所提出的不完美排错模型就应该考虑并融入更多具体的影响因素,建立构成要素间更加精准的软件可靠性增长模型SRGM(Software Reliability Growth Model)。考虑故障检测、修复与引入三个子过程之间的内在联系,建立统一的、柔韧的不完美排错框架模型,对累积检测、修复与引入的故障数量之间的关联实施研究,从故障检测率、故障修复率、故障引入率角度衡量软件测试的整体功效。进一步,从测试覆盖的角度,建立测试覆盖函数相关的可靠性模型,以便于研究其对模型的扰动影响,用以评测模型的性能。最后,在真实的应用场景进行验证所提出模型的有效性与合理性,模型具有较好的拟合与预测性能,整体上优于其他模型。本发明所提出的模型,对于选择合适的不完美排错下测试覆盖相关的软件可靠性增长模型,提高测试效率与软件可靠性具有重要意义。
本发明提出一种全面考虑不完美排错的软件可靠性过程分析方法,并明确考虑到测试覆盖,所提出的模型能够更加准确地描述软件测试过程。
附图说明
图1是本发明实施例提供的软件可靠性测试方法流程图。
图2是本发明实施例提供的软件可靠性测试系统的结构示意图;
图中:1、模型函数引入模块;2、不完美测试模型求解模块;3、故障数量获取模块;4、模型构建模块。
图3是本发明实施例提供的各个模型的累积检测故障数量m(t)的拟合曲线示意图;
图中:(a)模型在DS1上的拟合曲线;(b)模型在DS2上的拟合曲线;(c)模型在DS3上的拟合曲线;(d)模型在DS4上的拟合曲线;(e)曲线符号含义。
图4是本发明实施例提供的各个模型的预测RE曲线比较示意图;
图中:(a)模型在DS1上的预测曲线;(b)模型在DS2上的预测曲线;(c)模型在DS3上的预测曲线;(d)模型在DS4上的预测曲线;(e)曲线符号含义。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种软件可靠性测试方法、系统、存储介质,下面结合附图对本发明作详细的描述。
如图1所示,本发明提供的软件可靠性测试方法包括以下步骤:
S101:建立了基于故障检测率函数、故障修复函数和新故障引入函数的故障检测、修复与引入模型,对模型进行求解;
S102:求解得到统一的测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试模型;
S103:求得软件中总故障数量和累积修复的故障数量;
S104:完成了测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试框架模型的构建,得到了表示截止时刻累积检测到和修复的故障数量,软件中总的故障数量。
如图2所示,本发明提供的软件可靠性测试系统包括:
模型函数引入模块1,用于建立了基于故障检测率函数、故障修复函数和新故障引入函数的故障检测、修复与引入模型,对模型进行求解。
不完美测试模型求解模块2,用于求解得到统一的测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试模型。
故障数量获取模块3,用于求得软件中总故障数量和累积修复的故障数量。
模型构建模块4,用于完成测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试框架模型的构建,得到了表示截止时刻累积检测到和修复的故障数量,软件中总的故障数量。
下面结合附图对本发明的技术方案作进一步的描述。
1、不完美排错下测试覆盖相关的软件可靠性增长框架模型
基本假设
基于对测试环境的认知,考虑测试覆盖下的不完美排错模型的假设如下:
(1)故障检测与修复过程服从NHPP过程;
(2)软件失效由软件中剩余的故障引发;
(3)在时间区间(t,t+Δt)内,最多发生一个故障,且所检测到的故障数量与当前剩余的故障总数成比例;
(4)在时间区间(t,t+Δt)内,被修复的故障数量与被检测的故障数量成比例;
(5)故障修复的过程中,存在引入新故障现象,引入的故障数量与累积修复的故障数量成比例。
2不完美测试框架模型
令m(t)和r(t)分别表示截止t时刻累积检测到和修复的故障数量,a(t)表示t时刻软件中总的故障数量。则基于上述假设,本发明建立了下面的基于故障检测率函数b(t)、故障修复函数p(t)和新故障引入函数γ(t)的故障检测、修复与引入模型,如(1)式所示:
b(t)是故障检测率,表示在测试环境下测试人员运用测试技术故障被检测出来的概率,可以从多种角度进行设定。当考虑测试覆盖的角度时,故障检测率b(t)可表示如下:
c(t)表示截止至t时刻已经被(测试案例)测试代码的百分比;1-c(t)表示到t时刻尚未被测试覆盖的比例。显然,c(t)的导数c’(t),则表示t时刻点上的测试覆盖率。易知,故障检测率FDR与c’(t)成正比例,且与1-c(t)成反比例,b(t)=c’(t)/[1-c(t)]。r(t)表示新故障引入率,p(t)表示t时刻故障被成功修复的比例函数。
此微分方程组的边界条件为:
这里,对前述模型进行求解,采用如下的大致过程进行描述,为方便令:
a(t)=a+γ(t)·r(t) (5)
令则由(6)可得:
将(7)代入(5),则有:
(8)、(7)代入(4)得:
令则:
解得:
将(11)代入(9)得:
由此求解得到统一的测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试模型:
则失效率λ(t)为:
相应地,可求得软件中总故障数量a(t)和累积修复的故障数量r(t):
至此,完成了测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试框架模型的构建,得到了SRGM研究中重要的关键内容:m(t),r(t)和a(t)。从测试过程的整体来看,截止t时刻,累积修复的故障数量r(t)小于等于累积检测的故障数量m(t),m(t)小于软件中故障总数。上述模型简记为TCDSRGFMID(Testing Coverage Dependent SoftwareReliability Growth Framework Model under Imperfect Debugging)。
测试阶段的软件可靠性表示为R(x|T),即假定软件上一次失效时间是T(T≥0,x>0),则在(T,T+x)内的软件可靠性可表示为:
若假定从T=0开始,则m(t)=0,将式(13)代入(17)式,则可以得到更为容易理解的可靠性R(x),如式(18)所示:
3相关讨论——关于模型的柔韧型
TCDSRGFMID采用微分方程组的形式对不完美排错下的测试过程进行建模,其中融入了故障排错率p(t)、故障检测率b(t)、新故障引入率γ(t),则求解得到的m(t),r(t)和a(t)是多参数的融合体。模型具有较强的柔韧性,是框架模型,支持成系列的不完美排错相关具体模型的构建。
(1)关键的故障数量表达式,即m(t),c(t)和a(t)均是求解出来,且具体由3个参变量函数来决定,即故障检测率b(t),故障修复概率p(t),以及故障引入率γ(t),这些参变量函数可根据实际情况进行设定,这为模型的框架性、统一性和柔韧性提供了支撑。这使得SRGM所关注的m(t)等信息提供了更为客观的依据,且更加直接地受制于实际的因素;
(2)故障引入发生于故障修复过程中,因此,单位时间内新增加的故障数量应与累积修复的故障数量成比例。
4测试覆盖函数视角下TCDSRGFMID
故障检测率FDR:b(t)是可靠性建模中必须可少的构成元素,描述了测试环境下故障被检测出的能力。由于测试环境的复杂性,不同测试阶段、测试策略等因素使得FDR会呈现多种变化形式。测试覆盖函数与FDR紧密相关,可以成为FDR建模的元素,并提出c’(t)/(1-c(t))可被用来度量该时刻的故障检测率b(t)。c(t)描述了测试用例的执行情况,通过c(t)的变动可以获得不同的FDR函数。这样,可以得到下述的不完美排错过程模型:
依据上述求解过程进行求解,可以得到测试覆盖函数下的不完美测试模型中的m(t):
至此,从测试覆盖函数c(t)的角度得到了SRGM研究中的关键待求变量m(t)。通过设定各类测试覆盖函数c(t),则可以得到一系列相关的m(t)。为简化计算处理,不妨令p(t)=p,γ(t)=γ。这里令则可求得m(t)如下:
上述得到的可靠性模型简记为TCDSRGFMID。可以看出,测试覆盖函数视角下TCDSRGFMID将可靠性研究由传统的FDR演进为测试覆盖相关的可靠性模型。
下面结合数值算例对本发明的技术方案作进一步的描述。
1、数值算例
1.1参与比较的模型
这里,本发明选定了一系列典型的不完美排错模型参与比较,对比模型之间的性能差异,如表1所示。同时,选取4个已被广泛用来进行验证可靠性模型性能的失效数据集DS1 [16],DS2 [20],DS3 [21],DS4 [13],它们均来自国际知名公司在系统开发过程中所搜集的软件测试失效数据,表征多样的软件测试场景,具有广泛的代表性。
表1参与比较的模型
表1注:类型包括,①ID:不完美排错类型;②S-shaped:S型;③Concave:凹形;④TC:考虑到测试覆盖类型。
[13]Pham H.Software reliability and cost models:Perspectives,comparison,and practice[J].European Journal of Operational Research,2003,volume149(3):475-489.
[15]Pham H,Nordmann L,Zhang X.A general imperfect-software-debuggingmodel with S-shaped fault-detection rate[J].IEEE Transactions on Reliability,1999,48(2):169-175.
[16]Wood A.Predicting software reliability[J].Computer,1996,29(11):69-77.
[17]Pham H,Zhang X M.NHPP software reliability and cost models withtesting coverage[J].European Journal of Operational Research,2003,145(2):443-454.
[20]Stringfellow C,Andrews AA.An empirical method for selectingsoftware reliability growth models.Empirical Software Engineering,2002,7(4):319-343.
[21]Zhang X,Pham H.Software field failure rate prediction beforesoftware deployment.Journal of Systems and Software,2006,79(3):291-300.
[22]Yamada S,Tokuno K,Osaki S.Imperfect debugging models with faultintroduction rate for software reliability assessment.International Journalof Systems Science,1992,23(12):2241-2252.
[23]Pham H,Zhang X.An NHPP software reliability model and itscomparison.International Journal of Reliability,Quality and SafetyEngineering,1997,4(03):269-282.
[24]Zhang X,Teng X,Pham H.Considering fault removal efficiency insoftware reliability assessment.IEEE Transactions on Systems,Man andCybernetics,Part A:Systems and Humans,2003,33(1):114-120.
[25]Ohba M,Chou X M.Does imperfect debugging affect softwarereliability growth?In:Proc.of the 11th international conference on Softwareengineering.Pittsburgh,PA,USA:ACM,1989:237-244.
1.2比较标准
采用均方误差值(Mean Square Error,MSE),Variation,RMS-PE和回归曲线方程的相关指数(R-square)度量曲线拟合效果,利用相对误差(Relative Error,RE)度量模型的预测能力。
其中,yi表示到ti时累积失效个数,m(ti)表示到ti时利用模型得到的估算值,k表示失效数据样本数量。显然,MSE,Variance,RMS-PE和BMMRE的值越小,R-square值越接近于1,拟合效果越好;RE越趋近于0,模型预测效果越好。
1.3性能验证
为了验证所提出模型的有效性,本发明将表1中的模型在4个公开发表的真实数据集DS1~DS4上进行实验。基于拟合得到的参数值,本发明计算4个失效数据下不同时刻时各个模型的m(t),绘制出m(t)与真实失效数据间的拟合曲线,如图3所示。从图3可以直观看出。
(1)在DS1、DS2和DS4上,个别模型已经严重偏离真实的失效曲线(M-1模型与DS1、DS2和DS4的失效数据曲线走势发生严重不符;M-3模型在DS2和DS4上遇到同样情况),表明模型已经严重失真。在DS3上参与比较的模型,在整体趋势上与真实的失效数据相一致。
(2)在所有4个数据集上,本发明提出的模型TCDSRGFMID与真实的失效数据曲线发生了较大程度的重合,这表明模型具有较好的拟合性能。
为了进一步区分不能模型的性能差异,本发明定量化地计算并列出了模型在5个拟合标准上的数值,如表2所示。
表2模型的拟合度量性能比较
从表2可以直观看到,与图3曲线相一致,个别模型的拟合指标数值不理想,反应出其性能较差(M-1模型在DS1、DS2和DS4上性能欠佳;M-3模型在DS2和DS4上遇到同样情况)。在DS2数据集上,本发明所提出的模型在4个指标上优于其他模型(MSE,Variance,RMS-PE,BMMRE数值越小表明模型性能越好:R-square越接近于1表明模型性能越好),并在数值上具有明显的比较优势,显示出了模型优异的性能。在DS3上,本发明所提出的模型TCDSRGFMID在前4个指标上同样表现出了优秀性能;在BMMRE指标上与其他模型处于相同量级,没有出现明显的差异,这表明模型TCDSRGFMID具有优秀性能。在DS3上,M-5和本发明所提出的模型表现出了优异性能,二者在数值上较为接近,处于同一数量级别(M-5在MSE,Variance,RMS-PE这3个指标上略优于TCDSRGFMID,TCDSRGFMID在R-square和BMMRE上优于M-5),显示出了TCDSRGFMID的良好性能;在全部数据集中,M-5仅仅在DS4上表现优秀,表明模型具有很强的不稳定性能,难以适应更多的数据集。因此TCDSRGFMID的性能要明显优于M-5。同样,M-4也仅仅在DS1上显示出了优秀性能,同样具有较强的随机性,不如本发明所提出的模型具有在多个数据集上的连续优秀的稳定性。
综上可以看出,本发明所提出的模型TCDSRGFMID的性能能够保持连贯的性能,在全部失效数据集上或者处于最优或者良好(且与某个数据集上表现优秀的模型之间差异较小)。
(1)TCDSRGFMID在建模中充分考虑到了排错的不完全性与排错中引入新故障这种真实存在的客观现象,将更多的软件测试过程中的随机性纳入到模型中,将不完美排错用微分方程进行了准确的建模。相比之下,包括在个别数据集上表现优秀的M-4与M-5模型,缺少将真实不完美排错因素进行考虑,或者仅从单一方面建模不完全排错或引入新故障。
(2)在测试覆盖方面,本发明模型在建模中引入测试覆盖函数用以描述与建模测试过程中故障被测试覆盖以检测出故障的程度,更加精准的刻画了测试的真实情形;相比之下,其他模型认为测试覆盖是100%,这与真实的测试过程并不相符。
关于模型的预测性能,图4分别绘制了不同模型在4个失效数据集上的相对误差RE曲线。整体上看,在失效数据集的后半程时间内,模型开始快速的进行收敛,逐渐向着0曲线靠拢,表明预测性能在提高。从图2可以看出,本发明所提出的模型能够较好的向着0曲线收缩,特别是在测试时间过半以后收缩速度加快。
至此,从图3、图4和表2可以看出,本发明所提出的模型充分考虑到了软件测试与排错过程的不完美特点,并将测试覆盖作为重要的影响因素进行考虑,所建立的模型具有较好的拟合与预测性能,整体上优于其他模型。
针对测试环境的复杂性和随机性,以及当前研究所做假设偏离实际问题,本发明建立涵盖故障检测、修复和新故障引入的统一的不完美排错框架模型,模型中融入测试覆盖因素,使得测试中的实施细节得以在数学模型中得以呈现,进而从测试覆盖的角度研究分类模式下测试覆盖的能力,对可靠性性能影响评测进行深入研究。因考虑到更多真实的测试随机性,本发明所建立的模型不仅具有良好的柔韧性,在拟合与预测两个方面均具有较好的性能,整体上优于其他模型。后续研究中,还应该深入研究软件排错过程中的随机性,包括多个测试阶段内的延迟、多种测试覆盖类型函数等,以及针对大型开源软件和复杂网络软件的测试阶段可靠性建模与评测,同时要采用人工神经网络、遗传算法和随机过程等数学工具建立更加精准的验证模型。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (6)
1.一种软件可靠性测试方法,其特征在于,所述软件可靠性测试方法包括:
第一步,建立了基于故障检测率函数、故障修复函数和新故障引入函数的故障检测、修复与引入模型,对模型进行求解;
第二步,求解得到统一的测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试模型;
第三步,求得软件中总故障数量和累积修复的故障数量;
第四步,完成了测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试框架模型的构建,得到了表示截止时刻累积检测到和修复的故障数量,软件中总的故障数量;
所述软件可靠性测试方法令m(t)和r(t)分别表示截止t时刻累积检测到和修复的故障数量,a(t)表示t时刻软件中总的故障数量;建立了基于故障检测率函数b(t)、故障修复函数p(t)和新故障引入函数γ(t)的故障检测、修复与引入模型:
b(t)是故障检测率,表示在测试环境下测试人员运用测试技术故障被检测出来的概率,从多种角度进行设定;当考虑测试覆盖的角度时,故障检测率b(t)表示如下:
c(t)表示截止至t时刻已经被测试代码的百分比;1-c(t)表示到t时刻尚未被测试覆盖的比例,c(t)的导数c’(t),则表示t时刻点上的测试覆盖率,故障检测率FDR与c’(t)成正比例,且与1-c(t)成反比例,b(t)=c’(t)/[1-c(t)];r(t)表示新故障引入率,p(t)表示t时刻故障被成功修复的比例函数;
此微分方程组的边界条件为:
对模型进行求解:
;
a(t)=a+γ(t)·r(t);
令则得:
将代入a(t)=a+γ(t)·r(t),则有:
代入/>得:
令则:
解得:
将代入/>得:
由此求解得到统一的测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试模型:
则失效率λ(t)为:
求得软件中总故障数量a(t)和累积修复的故障数量r(t):
至此,完成了测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试框架模型的构建,得到了m(t),r(t)和a(t)。
2.如权利要求1所述的软件可靠性测试方法,其特征在于,所述软件可靠性测试方法的测试阶段的软件可靠性表示为R(x|T),软件上一次失效时间是T(T≥0,x>0),则在(T,T+x)内的软件可靠性表示为:
R(x|T)=e-[m(T+x)-m(T)];
若从T=0开始,则m(t)=0,将代入R(x|T)=e-[m(T+x)-m(T)],则得到可靠性R(x):
3.如权利要求1所述的软件可靠性测试方法,其特征在于,所述软件可靠性测试方法的测试覆盖函数视角下完美测试框架模型,c’(t)/(1-c(t))被用来度量该时刻的故障检测率b(t),c(t)描述测试用例的执行情况,通过c(t)的变动获得不同的FDR函数,得到不完美排错过程模型:
求解得到测试覆盖函数下的不完美测试模型中的m(t):
至此,从测试覆盖函数c(t)的角度得到了SRGM研究中的关键待求变量m(t);通过设定各类测试覆盖函数c(t),则得到一系列相关的m(t),p(t)=p,γ(t)=γ,则求得m(t)如下:
4.一种接收用户输入程序存储介质,所存储的计算机程序使电子设备执行权利要求1~3任意一项所述软件可靠性测试方法包括下列步骤:
第一步,建立了基于故障检测率函数、故障修复函数和新故障引入函数的故障检测、修复与引入模型,对模型进行求解;
第二步,求解得到统一的测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试模型;
第三步,求得软件中总故障数量和累积修复的故障数量;
第四步,完成了测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试框架模型的构建,得到了表示截止时刻累积检测到和修复的故障数量,软件中总的故障数量。
5.一种实施权利要求1~3任意一项所述的软件可靠性测试方法的软件可靠性测试系统,其特征在于,所述软件可靠性测试系统包括:
模型函数引入模块,用于建立了基于故障检测率函数、故障修复函数和新故障引入函数的故障检测、修复与引入模型,对模型进行求解;
不完美测试模型求解模块,用于求解得到统一的测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试模型;
故障数量获取模块,用于求得软件中总故障数量和累积修复的故障数量;
模型构建模块,用于完成测试覆盖函数下考虑故障不完全修复与引入新故障的不完美测试框架模型的构建,得到了表示截止时刻累积检测到和修复的故障数量,软件中总的故障数量。
6.一种终端,其特征在于,所述终端安装有权利要求5所述的软件可靠性测试系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010275488.4A CN111538654B (zh) | 2020-04-09 | 2020-04-09 | 一种软件可靠性测试方法、系统、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010275488.4A CN111538654B (zh) | 2020-04-09 | 2020-04-09 | 一种软件可靠性测试方法、系统、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538654A CN111538654A (zh) | 2020-08-14 |
CN111538654B true CN111538654B (zh) | 2024-02-13 |
Family
ID=71978558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010275488.4A Active CN111538654B (zh) | 2020-04-09 | 2020-04-09 | 一种软件可靠性测试方法、系统、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111538654B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783772B (zh) * | 2021-01-22 | 2023-09-15 | 哈尔滨工业大学(威海) | 软件可靠性分析方法、系统、介质、设备、终端及应用 |
CN112988564B (zh) * | 2021-01-22 | 2023-05-23 | 哈尔滨工业大学(威海) | 一种考虑成本-可靠性的srgm决策模型及其构建方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003005248A2 (en) * | 2001-07-05 | 2003-01-16 | Motorola Inc | Using a bayesian belief network |
CN102760098A (zh) * | 2012-06-13 | 2012-10-31 | 北京航空航天大学 | 面向bit软件测试的处理器故障注入方法及其模拟器 |
CN103744780A (zh) * | 2013-12-29 | 2014-04-23 | 哈尔滨工业大学 | 考虑排错等待延迟的基于fsq的软件可靠性增长模型的建立方法 |
CN107291606A (zh) * | 2016-03-31 | 2017-10-24 | 四川大学 | 演绎最弱前置条件的模型和算法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080038751A (ko) * | 2006-10-31 | 2008-05-07 | 현대자동차주식회사 | 바디컨트롤모듈의 소프트웨어 검증장치 및 방법 |
-
2020
- 2020-04-09 CN CN202010275488.4A patent/CN111538654B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003005248A2 (en) * | 2001-07-05 | 2003-01-16 | Motorola Inc | Using a bayesian belief network |
CN102760098A (zh) * | 2012-06-13 | 2012-10-31 | 北京航空航天大学 | 面向bit软件测试的处理器故障注入方法及其模拟器 |
CN103744780A (zh) * | 2013-12-29 | 2014-04-23 | 哈尔滨工业大学 | 考虑排错等待延迟的基于fsq的软件可靠性增长模型的建立方法 |
CN107291606A (zh) * | 2016-03-31 | 2017-10-24 | 四川大学 | 演绎最弱前置条件的模型和算法 |
Non-Patent Citations (1)
Title |
---|
考虑故障检测与修正的软件可靠性增长模型;高峰;袁赣南;刘厂;;华中科技大学学报(自然科学版)(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111538654A (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111538654B (zh) | 一种软件可靠性测试方法、系统、存储介质 | |
CN111538655B (zh) | 软件故障检测方法、系统、存储介质、终端 | |
CN102708052B (zh) | 一种单元测试中软件故障自动定位方法 | |
CN112711537B (zh) | 软件缺陷定位方法及装置、电子设备及存储介质 | |
Najafi et al. | Bisecting commits and modeling commit risk during testing | |
CN111782532B (zh) | 一种基于网络异常节点分析的软件故障定位方法及系统 | |
CN115061049B (zh) | 一种数据中心ups电池故障快速检测方法及系统 | |
CN112817842B (zh) | 不完美排错srgm决策方法、系统、介质、设备及应用 | |
CN112128950B (zh) | 一种基于多种模型对比的机房温湿度预测方法及系统 | |
TW200411508A (en) | Method for analyzing in-line QC parameters | |
CN112199295A (zh) | 一种基于频谱的深度神经网络缺陷定位方法及系统 | |
CN108733407A (zh) | 一种基于屏蔽数据的开源软件可靠性评估方法 | |
CN112685320A (zh) | 一种基于多候选程序的软件缺陷修复方法及装置 | |
CN113112123A (zh) | 一种基于关联矩阵的飞机航电系统故障诊断评估方法 | |
CN117290666A (zh) | 一种光伏异常功率数据清洗方法 | |
CN108229586B (zh) | 一种数据中的异常数据点的检测方法及系统 | |
CN113887990A (zh) | 电气设备维修决策优化方法 | |
CN107957269B (zh) | 一种惯导系统故障特性判定及测试性预计方法 | |
CN112783772B (zh) | 软件可靠性分析方法、系统、介质、设备、终端及应用 | |
Siddique et al. | Hybrid Framework To Exclude Similar and Faulty Test Cases In Regression Testing | |
Zhao et al. | How to Manage Change-Induced Incidents? Lessons from the Study of Incident Life Cycle | |
JP3913393B2 (ja) | 半導体欠陥解析システムおよび方法 | |
US11847447B2 (en) | Anomaly identification within software project under development | |
CN117951626B (zh) | 一种基于智能优化算法的电网异常状态检测方法及系统 | |
CN116453437A (zh) | 显示屏模组的测试方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |