CN102831064A - 一种面向可靠性评估的软件自适应测试方法 - Google Patents
一种面向可靠性评估的软件自适应测试方法 Download PDFInfo
- Publication number
- CN102831064A CN102831064A CN2012103233358A CN201210323335A CN102831064A CN 102831064 A CN102831064 A CN 102831064A CN 2012103233358 A CN2012103233358 A CN 2012103233358A CN 201210323335 A CN201210323335 A CN 201210323335A CN 102831064 A CN102831064 A CN 102831064A
- Authority
- CN
- China
- Prior art keywords
- eta
- test
- test case
- theta
- testing
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
一种面向可靠性评估的软件自适应测试方法,它用五大步骤:步骤一、根据可控马尔可夫链模型,得到测试过程的控制器方程;步骤二、由控制器方程,在软件测试过程中,每一步选取的测试决策应满足期望目标函数值最小;步骤三、如果被测软件参数已知,就可直接根据上述方式求得测试决策,从而逐步把测试进行下去;步骤四、如果被测软件参数未知,利用自适应测试,在每步测试中通过在线估计***参数;步骤五、利用估计值求得最优测试决策,逐步把测试进行下去,直到满足测试停止条件。本发明在可靠性评估中充分考虑了不同失效对软件可靠性的影响的不同,通过引入反馈和自适应控制的思想,对测试过程进行在线的控制和优化,从而提高可靠性评估的精度。
Description
技术领域
本发明涉及一种面向可靠性评估的软件自适应测试方法,特别是一种考虑失效分级的自适应测试方法。属于软件可靠性评估技术领域。
背景技术
随着近年来软件在现代飞行控制***、核电站的控制***等安全关键、任务关键***中的广泛应用,软件可靠性的重要程度被提到了一个前所未有的高度。如何对这些高可信软件进行测试,以获得全面、精确和鲁棒的可靠性评估结果,是软件可靠性评估领域的一个重要研究课题。
自适应控制***是通过在线实时了解被控对象,不断调节控制器,使***的性能达到技术要求或最优。自适应***有三大要素:一是在线的实时的了解对象;二是有一个可调环节;三是使***性能达到要求或最优。自适应控制可以分为直接自适应控制和间接自适应控制。在间接自适应控制中,被控对象的参数未知,首先在线估计对象参数,利用估计值对控制器参数进行调整使***性能指标达到要求;而在直接自适应控制中,不对对象参数进行估计,直接通过调整控制器参数使改进***性能。
自适应测试的理论基础是以自适应控制***为基础,即受控马尔可夫链。以软件测试为例,自适应测试方法把被测软件当作控制对象,利用受控马尔可夫链理论设计和优化软件测试策略,并把测试策略作为控制器和被测软件构成一个闭环反馈***,它是软件测试的控制论方法的具体实现。
现有的面向可靠性评估的测试技术存在两个问题:
1)被测软件的可靠性模型基于二元失效假设,即仅考虑软件在测试过程中发生或者没有发生失效,而不考虑发生的失效是否对***的安全性和任务的成功有重要影响,及忽略了失效的严重程度及其对可靠性评估的影响。
2)没有利用面向可靠性评估的测试过程中收集到的测试数据(失效发生时刻、失效等级等)对测试策略进行在线的调整,以改进测试的效果。
由此,产生的结果是:
1)对测试对象可靠性缺乏精确的刻画,难以给出符合实际需求的精确的可靠性评估;
2)缺乏对测试过程的改进,不能得到最有效的测试过程。
而面向可靠性评估的自适应测试方法,正是利用测试过程中的历史信息,并用它来指导未来的测试步骤(比如,测试用例的选择),同时用这些测试信息估计被测对象的性质和参数,根据这些参数可以更有针对性的选取测试用例,提高可靠性评估测试的精度。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种面向可靠性评估的软件自适应测试方法,该方法不仅在可靠性评估中充分考虑了不同失效对软件可靠性的影响的不同,而且通过引入反馈和自适应控制的思想,对测试过程进行在线的控制和优化,从而提高可靠性评估的精度。
本发明的技术解决方案是:一种面向可靠性评估的软件自适应测试方法,其特点在于它包括下列步骤:
在测试过程中,以面向可靠性评估的软件测试为例,针对软件模型的参数未知,需通过在线估计参数,再利用估计值调整控制器,即采用间接自适应控制方法进行软件测试,形成所谓的软件测试的自适应策略,具体步骤为:
步骤一:针对被测软件的失效严重程度,将其划分为两大类失效:关键
失效和非关键失效,并对可靠性模型进行如下修改:
以考虑不同等级的失效对可靠性的不同影响,并通过权重参数α和β对其影响的差异进行量化描述;
其中,式中符号说明如下:R为被测软件的可靠性;被测软件的测试用例库被分为了m个子域,pi为第i个测试用例子域的选择概率,也即从第i个测试用例子域中选择测试用例的概率;和分别表示从第i个测试用例子域中选择测试用例,测试执行后发生关键(critical)失效与非关键(non-critical)失效的概率;考虑不同等级的失效对可靠性的不同影响,α和β分别为关键失效与非关键失效的权重参数;代表从第i个测试用例子域中选择一个测试用例,测试执行后没有发生失效的概率;
步骤二:根据可控马尔可夫链模型,得到以下方程:
其中,式中符号说明如下:X表示剩余可执行的测试次数;ηi表示在已执行测试用例中,从第i个测试用例子域中选取的测试用例的数目,和分别表示从第i个测试用例子域中选取的测试用例的经测试执行后发生的严重失效与非严重失效的数目;表示当前软件状态下,最小的软件测试代价;wj(i)表示在软件状态为j的情况下从第i个测试用例子域中选取的测试用例并执行的代价;
步骤三:由控制器方程,在软件测试过程中,第t步选取的测试决策应满足: 这里t=1,2,…;其中,式中符号说明如下:At表示第t步选取的最优测试决策;at表示为At在不同的测试场景下的实例,也即,应该选择的测试用例子域的类别;
利用自适应测试,在第t步测试中通过点估计:
其中,式中符号说明如下:和分别表示和的点估计值;和分别表示截至第t步测试,从第i个测试用例子域中选取的测试用例的经测试执行后发生的严重失效与非严重失效的数目;ηit表示截至第t步测试,从第i个测试用例子域中选取的测试用例的数目;
步骤五:利用估计值求得下一步最优测试决策, 逐步把测试进行下去,
直到所有测试资源耗尽(达到指定测试步长X)。
本发明的原理:把测试用例或测试对象输入域划分为多个等价类,用可控马尔可夫链模型建模软件测试过程,在测试过程中不断把历史测试信息反馈给测试过程,使得随着测试过程的进行可以逐渐了解被测对象的性质和测试用例的能力,并通过自适应算法调整模型参数并确定下一步最有效的测试用例等价类,在该等价类中选择一个测试用例作为被测对象的输入。
本发明与现有技术相比的优点:
(1)充分考虑了不同严重程度的失效对软件可靠性的不同影响;
(2)提高了可靠性评估的精度;
(3)能够通过修改优化目标函数实现给定的定量测试目标,比如测试代价最小。
附图说明
图1为本发明自适应测试***的结构框图。
图中符号说明如下:
At+1表示在第t+1步测试中选取的最优测试决策,Zt+1表示在第t+1步测试的测试结果,Ht代表测试的历史数据,也即每一步的测试用例选择情况以及测试用例的测试结果;
具体实施方式
如图1所示,在测试过程中,以软件测试为例,包括软件可靠性增长测试,软件变异测试和软件可靠性评估过程,针对软件模型的参数未知,需通过在线估计参数,再利用估计值调整控制器,即采用间接自适应控制方法进行软件测试(记为AT),形成所谓的软件测试的自适应策略,其中根据可控马尔可夫链模型,测试策略中涉及的各参数意义如下:
N为软件总缺陷数。
由控制器方程,在软件测试过程中,每一步应该选取的测试决策应满足:
如果被测软件参数N和已知,就可直接根据上述公式求得测试决策,从而逐步把测试进行下去,这种测试成为最优测试;而由于实际测试中,被测软件参数的不可知性,这就需要利用自适应测试,在每步测试中通过在线估计***参数(N和),再利用估计值求得最优测试决策,逐步把测试进行下去,直到剔除所有缺陷。随机测试(记为RT)则是在任意一步测试中,从已知的决策集{At}中随机选取决策,这样选中任何一个决策的概率都是均等的,而不存在最优决策,这样把测试进行下去,直到剔除所有的缺陷。
具体实例
C++Parser是美国德克萨斯大学达拉斯分校的STAR实验室为某电信公司开发的一个程序诊断套件中的一个子模块,用Java语言编写,我们将其3099个测试用例随机地分成了4个分别包含339,727,744和1289个测试用例的等价类。具体算法设计流程如下:
(1)确定自适应测试模型的参数;
(2)把测试用例或软件输入域划分为几个等价类(设分为m类),并输入等价类的个数;
(3)随机选择一类测试用例等价类;并从该等价类中随机选择一个测试用例。
(4)按照(3)的方法测试l步(获得初始的测试信息);
(5)取得从测试开始的所有测试数据,即Ai和Zi(i=0,1,…,t-1),通过点估计方法来在线估计***参数N和(i=1,2,…,m),然后根据At=argmin{v(j)}确定下一个最适合的测试用例等价 类At,其中
(6)在该等价类内随机选取下一个测试用例,测试步数t=t+1;
(7)把该测试用例(C++源代码文件)用于C++Parser软件的输入;
(8)如果输出正确,设置Zt=0,转步骤(10);
(9)如果输出不正确,根据失效的等级,设置Zt=1或者Zt=2;
(10)如果测试步数小于指定的测试步长X0,否则转步骤(5);
(11)测试结束。
使用自适应软件测试技术进行面向可靠性评估的软件测试实验,对比随机测试,自适应测试无论是可靠性评估的误差还是多次评估值的稳定性(方差)都明显优于后者,详见下表:
其中Er表示40次重复测试实验中获得的可靠性评估值与被测软件可靠性真实值(通过耗尽测试取得)的平均差值,D表示40次重复测试实验中获得的可靠性评估值的方差。
Claims (1)
1.一种面向可靠性评估的软件自适应测试方法,其特征在于:该方法具体步骤如下:
步骤一:针对被测软件的失效严重程度,将其划分为两大类失效:关键失效和非关键失效,并对可靠性模型进行如下修改:
以考虑不同等级的失效对可靠性的不同影响,并通过权重参数α和β对其影响的差异进行量化描述;
其中,式中符号说明如下:R为被测软件的可靠性;被测软件的测试用例库被分为了m个子域,pi为第i个测试用例子域的选择概率,也即从第i个测试用例子域中选择测试用例的概率;和分别表示从第i个测试用例子域中选择测试用例,测试执行后发生关键失效与非关键失效的概率;考虑不同等级的失效对可靠性的不同影响,α和β分别为关键失效与非关键失效的权重参数;代表从第i个测试用例子域中选择一个测试用例,测试执行后没有发生失效的概率;
步骤二:根据可控马尔可夫链模型,得到以下方程:
其中,式中符号说明如下:X表示剩余可执行的测试次数;ηi表示在已执行测试用例中,从第i个测试用例子域中选取的测试用例的数目,和分别表示从第i个测试用例子域中选取的测试用例的经测试执行后发生的严重失效与非严重失效的数目;表示当前软件状态下,最小的软件测试代价;wj(i)表示在软件状态为j的情况下从第i个测试用例子域中选取的测试用例并执行的代价;
步骤三:由控制器方程,在软件测试过程中,第t步选取的测试决策应满足: 这里t=1,2,…;其中,式中符号说明如下:At表示第t步选取的最优测试决策;at表示为At在不同的测试场景下的实例,也即,应该选择的测试用例子域的类别;
在线估计***参数N和
其中,式中符号说明如下:和分别表示和的点估计值;和分别表示截至第t步测试,从第i个测试用例子域中选取的测试用例的经测试执行后发生的严重失效与非严重失效的数目;ηit表示截至第t步测试,从第i个测试用例子域中选取的测试用例的数目;
步骤五:利用估计值求得下一步最优测试决策, 逐步把测试进行下去,直到所有测试资源耗尽即达到指定测试步长X。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103233358A CN102831064A (zh) | 2012-09-04 | 2012-09-04 | 一种面向可靠性评估的软件自适应测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103233358A CN102831064A (zh) | 2012-09-04 | 2012-09-04 | 一种面向可靠性评估的软件自适应测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102831064A true CN102831064A (zh) | 2012-12-19 |
Family
ID=47334213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012103233358A Pending CN102831064A (zh) | 2012-09-04 | 2012-09-04 | 一种面向可靠性评估的软件自适应测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102831064A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104503919A (zh) * | 2015-01-13 | 2015-04-08 | 中国船舶重工集团公司第七二二研究所 | 一种软件可靠性评估方法 |
CN104503913A (zh) * | 2014-12-27 | 2015-04-08 | 中国人民解放军63655部队 | 一种基于迁移路径和改进马氏链的构件软件可靠性评估方法 |
CN104572455A (zh) * | 2014-12-27 | 2015-04-29 | 中国人民解放军63655部队 | 一种基于马尔科夫链的构件化软件可靠性评估方法 |
CN105335379A (zh) * | 2014-06-26 | 2016-02-17 | 国际商业机器公司 | 突变测试中对突变、测试用例、随机种子的组合排序的方法和设备 |
CN106598025A (zh) * | 2016-12-12 | 2017-04-26 | 中广核工程有限公司 | 核电安全级仪控***优先级模块的测试方法、***及核电设备 |
CN107357282A (zh) * | 2017-07-06 | 2017-11-17 | 中国民航大学 | 一种基于多维隐马尔可夫模型的飞行控制***评估方法 |
CN110347580A (zh) * | 2019-04-28 | 2019-10-18 | 北京航空航天大学 | 一种构建非嵌入式软件可靠性测试过程模型的方法 |
US10733520B2 (en) | 2015-05-13 | 2020-08-04 | Microsoft Technology Licensing, Llc | Making a prediction regarding development of a software product |
CN112306859A (zh) * | 2020-07-10 | 2021-02-02 | 北京航空航天大学 | 一种改进的软件自适应测试方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770118A (zh) * | 2004-10-27 | 2006-05-10 | 北京航空航天大学 | 软件自适应测试方法 |
-
2012
- 2012-09-04 CN CN2012103233358A patent/CN102831064A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770118A (zh) * | 2004-10-27 | 2006-05-10 | 北京航空航天大学 | 软件自适应测试方法 |
Non-Patent Citations (2)
Title |
---|
KAI YUAN CAI ET AL.: "Adaptive Software Testing in the Context of an Improved Controlled Markov Chain Model", 《IEEE》, 31 December 2008 (2008-12-31) * |
KAI YUAN CAI ET AL.: "An experimental study of adaptive testing for software reliability assessment", 《THE JOURNAL OF SYSTEMS AND SOFTWARE》, vol. 81, no. 8, 31 August 2008 (2008-08-31) * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9965580B2 (en) | 2014-06-26 | 2018-05-08 | Nternational Business Machines Corporation | Ranking combinations of mutants, test cases and random seeds in mutation testing |
CN105335379A (zh) * | 2014-06-26 | 2016-02-17 | 国际商业机器公司 | 突变测试中对突变、测试用例、随机种子的组合排序的方法和设备 |
US10614192B2 (en) | 2014-06-26 | 2020-04-07 | International Business Machines Corporation | Ranking combinations of mutants, test cases and random seeds in mutation testing |
CN105335379B (zh) * | 2014-06-26 | 2018-11-02 | 国际商业机器公司 | 突变测试中对突变、测试用例、随机种子的组合排序的方法和设备 |
CN104503913A (zh) * | 2014-12-27 | 2015-04-08 | 中国人民解放军63655部队 | 一种基于迁移路径和改进马氏链的构件软件可靠性评估方法 |
CN104572455A (zh) * | 2014-12-27 | 2015-04-29 | 中国人民解放军63655部队 | 一种基于马尔科夫链的构件化软件可靠性评估方法 |
CN104572455B (zh) * | 2014-12-27 | 2017-06-13 | 中国人民解放军63655部队 | 一种基于马尔科夫链的构件化软件可靠性评估方法 |
CN104503913B (zh) * | 2014-12-27 | 2017-06-13 | 中国人民解放军63655部队 | 一种基于迁移路径和改进马氏链的构件软件可靠性评估方法 |
CN104503919B (zh) * | 2015-01-13 | 2017-04-05 | 中国船舶重工集团公司第七二二研究所 | 一种软件可靠性评估方法 |
CN104503919A (zh) * | 2015-01-13 | 2015-04-08 | 中国船舶重工集团公司第七二二研究所 | 一种软件可靠性评估方法 |
US10733520B2 (en) | 2015-05-13 | 2020-08-04 | Microsoft Technology Licensing, Llc | Making a prediction regarding development of a software product |
CN106598025A (zh) * | 2016-12-12 | 2017-04-26 | 中广核工程有限公司 | 核电安全级仪控***优先级模块的测试方法、***及核电设备 |
CN106598025B (zh) * | 2016-12-12 | 2019-01-11 | 中广核工程有限公司 | 核电安全级仪控***优先级模块的测试方法、***及核电设备 |
CN107357282A (zh) * | 2017-07-06 | 2017-11-17 | 中国民航大学 | 一种基于多维隐马尔可夫模型的飞行控制***评估方法 |
CN110347580A (zh) * | 2019-04-28 | 2019-10-18 | 北京航空航天大学 | 一种构建非嵌入式软件可靠性测试过程模型的方法 |
CN112306859A (zh) * | 2020-07-10 | 2021-02-02 | 北京航空航天大学 | 一种改进的软件自适应测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102831064A (zh) | 一种面向可靠性评估的软件自适应测试方法 | |
Zhao et al. | A novel bidirectional mechanism based on time series model for wind power forecasting | |
CN101520652B (zh) | 一种数控装备服役可靠性的评估方法 | |
US20180240200A1 (en) | Method and device for modeling a long-time-scale photovoltaic output time sequence | |
CN104636823B (zh) | 一种风电功率预测方法 | |
CN103488869A (zh) | 一种最小二乘支持向量机的风力发电短期负荷预测方法 | |
CN103105246A (zh) | 一种基于遗传算法改进的bp神经网络的温室环境预测反馈方法 | |
CN108921359A (zh) | 一种分布式瓦斯浓度预测方法及装置 | |
CN105322566A (zh) | 考虑预测误差时序分布的含风电机组组合模型建立方法 | |
CN111144663A (zh) | 计及出力波动过程的海上风电场超短期风功率预测方法 | |
CN109345009A (zh) | 二阶灰色神经网络和马尔科夫链的短期风速区间预测方法 | |
CN114066262A (zh) | 一种电网调度后评估异常指标溯因推理方法、***、装置及存储介质 | |
CN103885867B (zh) | 一种模拟电路性能的在线评价方法 | |
CN108898243A (zh) | 一种电力***输电网络安全性测试*** | |
CN115712873A (zh) | 一种基于数据分析和红外图像信息融合的光伏并网运行异常检测***及方法 | |
CN102707617A (zh) | 一种模糊PID算法ActiveX控件的实现方法 | |
CN110705768B (zh) | 用于风电场的风力发电功率预测优化方法和装置 | |
Li et al. | A closed-loop maintenance strategy for offshore wind farms: Incorporating dynamic wind farm states and uncertainty-awareness in decision-making | |
CN106934184A (zh) | 一种基于时域载荷扩展的数控机床载荷外推方法 | |
CN106600038A (zh) | 一种基于马尔科夫模型的负荷区间预测方法 | |
Evans et al. | A multivariate approach to utilizing mid-sequence process control data | |
CN111476437A (zh) | 一种光伏发电功率超短期区间预测的方法及设备 | |
Bozorg et al. | A derivative-persistence method for real time photovoltaic power forecasting | |
CN106684930A (zh) | 一种考虑功率预测置信区间的风电有功功率控制方法 | |
CN102354376B (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20121219 |