雷鸣
(中国人民解放军92941部队93分队,辽宁 葫芦岛 125000)
含软件测试的可靠性试验方法探讨
雷鸣
(中国人民解放军92941部队93分队,辽宁 葫芦岛 125000)
根据可靠性试验中对软件可靠性验证的需要,提出了软件测试用例设计方法、可靠性指标分配方法;完成了系统可靠性试验方案的设计;最后,给出了一个运用该方法进行可靠性试验方案设计的用例。
可靠性;软件测试;试验方案;任务可靠度
武器装备定型试验中的可靠性试验主要是依据GJB 899A-2009《可靠性鉴定和验收试验》中规定的方法进行的,将出现的软硬件故障等同对待,进行可靠性试验信息的收集与评价[1]。该标准中规定的试验环境和条件主要是针对硬件系统,而对系统软件的运行要求则没有作出具体的规定。因此,在可靠性试验的过程中,一般没有针对软件的可靠性设计测试用例,软件的运行过程简单、重复。
武器装备的可靠性由硬件系统的可靠性和软件系统的可靠性串联组成。软件失效的原因与硬件性失效的原因不同,硬件失效一般是由元器件的老化引起的,因而其可靠性测试强调随机选取多个相同的产品,统计它们的正常运行时间,正常运行的平均时间越长,则硬件的可靠性就越高;软件失效是由设计缺陷造成的,通常通过软件的输入来检测软件内部存在的故障,因此,使用同样一组输入反复地测试软件并记录其失效数据是没有意义的,这样并不能估计出软件的可靠性。按照目前的可靠性试验方法,系统硬件的可靠性能够得到比较充分的验证,但软件的可靠性却难以得到充分的验证。为此,笔者对含软件测试的可靠性试验方法进行了探讨,建议在武器装备的可靠性试验的过程中,按照软件的可靠性试验标准,针对软件的运行环境设计测试用例和试验方案,在软硬件的可靠性均得到较为充分考核的基础上,对武器装备系统的可靠性进行验证[2]。
只有在按运行剖面随机输入的条件下,软件的故障率才能正确地反映出软件的可靠性,因此,只有在以下2种情况下获得的软件的故障率才能正确地反映出软件的可靠性。即:1)软件在实际运行时统计得到的故障率;2)软件在模拟实际运行条件下的随机输入测试下统计得到的故障率。软件测试用例设计,就是模拟软件实际的运行条件,用大量的随机输入点作测试用例来考核软件,统计其故障率,并以此作为评估其可靠性的基本数据[3]。模拟软件实际的运行条件,首先需要对系统软件运行的输入条件进行分析,然后在此基础上随机设计输入条件 (含超边界条件),设计测试用例。
例如:某导弹武器系统的输入参数包括目标距离、方位、俯仰、速度、机动过载、航路捷径、载舰航向、航速、纵摇角、横摇角、环境风速和温度,以及海况等。按照这些参数的实际取值范围,在将边界条件扩大不小于10%的基础上,确定这些参数的取值范围,随机取值生成测试用例,具体的方法如下所述。
每次产生13个 [0,1]区间内均匀分布的随机数x1,x2,…,x13,各参数的取值按下式计算:
yi=yimin+ (yimax-yimin) *xi(1)式 (1)中:yimax——第i个参数取值的最大值;
yimin——第i个参数取值的最小值。
按照这些输入参数设计测试用例,如果生成所有的设计用例后,输入参数的边界条件没有被包含在其中,则可人为调整参数,将接近边界条件的参数调整为超边界参数。
设计软件可靠性试验方案时,必须要有软件的可靠性指标作为设计依据。武器装备的可靠性由硬件的可靠性和软件的可靠性串联组成,从目前的研究结果来看,硬件和软件的寿命均服从指数分布,因此可通过系统可靠性模型,对软件的可靠性指标进行分配,或利用软件的可靠性增长试验数据和可靠性评估模型对软件的可靠性进行预计。
2.1 根据可靠性模型的分配方法
武器装备的可靠性由硬件系统的可靠性和软件系统的可靠性串联组成,可由下式表达:
在已知了系统的可靠度R的情况下,可通过下列几种方法对软、硬件的可靠度进行分配。
a)等比分配法
系统由i个分系统组成,系统的可靠度为R,各分系统的可靠度大致相同,则各分系统的可靠度Ri为:
b)比例分配法
系统由i个分系统组成,系统的可靠度为R,各分系统的故障率预计为λ^i(i=1,2…,n),则每个分系统的比例因子ki为:
c)专家打分分配法
系统由i个分系统组成,系统的可靠度为R,根据各分系统组成的复杂程度以及对相似设备故障率的统计情况,由专家系统给各分系统打分,然后对分系统的得分情况进行归一化处理,则各分系统的可靠度Ri为:
各分系统的可靠性指标Ri为:
式 (6)中:Ci——第i个分系统的评分系数;
xi——第i个分系统的得分。
2.2 软件可靠性模型评估法
武器装备在进行定型试验前,已经完成了系统软件测试或可靠性鉴定试验,因而可利用测试数据和可靠性评估模型对软件的可靠性进行预估。常用的软件可靠性模型有时间域模型和数据域模型,数据域模型又分为缺陷植入模型和输入域模型。Nelson模型是输入域模型的代表,该模型对软件做如下假设[4。
a)程序被认为是E上的一个可计算函数F的一个规范,用下式表示用于执行程序的所有输入数据的集合,一个输入数据对应一个程序执行回合:
E=(Ei;i=1,…,N)
b)对于每个输入Ei,程序执行产生输出F(Ei)。
c)由于程序包含缺陷,程序实际确定的函数为F′,该函数不同于希望函数F。
d)对于某些Ei,程序实际输出F′(Ei)在希望输出F(Ei)的容许范围之内,即:
|F′(Ei)-F(Ei)|≤Δi
但是对于另一些Ej,程序实际输出F′(Ej)超出容许范围,即:
|F′(Ej)-F(Ej)|≥Δj(7)
此时,认为程序发生一次失效;
e)测试过程中不剔除程序缺陷。
根据区域Rf上的概率分布在Rj中随机选取nj个回合 (输入点),程序在执行这nj个回合的过程中产生fj个失败,那么R的估计值R^为:
其中,对软件的可靠性数据有如下要求:1)Rj域中的数据被选取的概率为PRj;2)Rj域中被选取的数据的个数为nj;3)Rj域中nj个被选取的数据导致程序失效的个数为fj。
按照Nelson模型的假设,必须知道每一测试用例是单元测试、集成测试、还是系统测试用例的概率。假设在执行软件测试时,每一种测试用例被选中的概率均相等,则有:
此时,
可靠性试验方案设计有两种方法。
a)根据分配的指标单独地设计软、硬件可靠性的考核方案与评估方法。若软、硬件的可靠性指标均合格,则系统的可靠性指标合格。此方法的好处是对系统的软、硬件的可靠性的考核是相对独立的,如果一旦出现问题,就可以看出具体是在哪个方面出现了问题,然后进行相应的改进。存在的问题是软、硬件指标分配的合理性显得特别重要,另外,采用此方法时还会出现软、硬件的可靠性中只要有一个不合格,即便另一个的可靠性再高,系统的可靠性仍然不合格的情况。
b)按照GJB 899A-2009《可靠性鉴定和验收试验》设计可靠性试验方案,按照软件验收试验方法设计测试用例和样本量,在可靠性试验的过程中,完成对所有测试用例的测试。将试验中出现的软、硬件故障等同对待,进行可靠性试验信息的收集与评价。此方法模糊了软、硬件故障的分类,只是将软件的可靠性指标作为样本量计算的一个依据,最终考核的还是系统的可靠性指标。
根据现有的实际情况来看,第二种方案比较可行。软件可靠性试验可采用无故障考核时定量指标的验证方法进行,其经典方法为:
设给定的置信水平为γ,累计无故障工作时间为T*,则λ的单侧经典置信上限为:
λu对应的MTBF下限为:θrl=1/λu=-T*/ln(1-γ) (11)
式 (11)表示在置信水平为γ的条件下,若软件无故障运行T*时间,则可以认为软件的MTBF为θrl。
令不同的置信水平下,软件的MTBF与无故障考核时间T*的比值为c,则c=-θrl/T*,置信水平γ和C的对照表如表1所示。
表1置信水平与MTBF与C的对照表
假设某系统的可靠性指标为θ0=200 h,θ1=100 h,任务时间为2 h。按照GJB 899A-2009《可靠性鉴定和验收试验》,其方案可选高风险定时截尾方案,接收判据为试验时间T=3.7θ1=3.7*100=370 h,故障数≤2[5]。
美国国际标准ANSI/AIAAR-103-1992(推荐的软件可靠性实践)的4.2.2中指出:软件最合理的失效率大约在10-3/h和10-4/h左右。因此,目前普遍认为武器装备的MTBF大约在1 000~10 000 h之间。根据软件的可靠性水平、系统可靠性指标以及相同产品的可靠性情况,通过专家打分法对软件的可靠性指标进行分配,软件可靠性专家打分系数Cr=0.25,则:
根据表1可得,当置信水平为0.8时,软件的MTBF与无故障考核时间的比值为0.621,则此时软件的无故障考核的时间 (单位:次)为200/ 0.621=322(次)。
根据测试用例的设计原则,设计出322个测试用例,然后将这些测试用例比较均匀地分配在长达370个小时的可靠性试验中运行即可。如果在可靠性试验的过程中已经运行了n次任务流程,则可减少n个测试用例的执行。
可靠性试验是一个比较复杂的任务,特别是其要求试验环境条件贴近产品真实的使用环境条件,实施难度较大,需要在现有的基础上开展一些探索性的工作。武器装备的可靠性由硬件系统的可靠性和软件系统的可靠性串联组成。但是,现有的武器装备的可靠性验证大多只是对武器装备的硬件系统的可靠性进行验证,而软件系统的可靠性却没有得到充分的验证。因此,笔者对含软件测试的可靠性试验进行了探讨,在软、硬件系统的可靠性均得到充分验证的基础上,对武器装备的整体可靠性进行了验证,为今后武器装备的可靠性的验证提供了一个借鉴。
[1]曲宝忠,孙晓峰.海军战术导弹试验与鉴定 [M].北京:国防工业出版,2005.
[2]何国伟.软件可靠性 [M].北京:国防工业出版社,2003.
[3]朱少民.软件测试方法和技术 [M].北京:清华大学出版社,2005.
[4]王江元,张虹,王在文.利用软件测试数据和Nelson模型评估软件可靠性 [J].战术导弹技术,2007(6):91-92.
[5]GJB 899A-2009,可靠性鉴定和验收试验 [S].
中国科大研制成功高维固态量子存储器
中国科学技术大学中科院量子信息重点实验室李传锋研究组在固态系统中首次实现对三维量子纠缠态的量子存储,保真度高达99.1%,存储带宽达1 GHz,存储效率为20%,而且该存储器具有对高达51维的量子态的存储能力。该成果发表于《物理评论快报》。
远程量子纠缠是实现长程量子通信、分布式量子计算及量子精密计量等的核心资源。但是,由于光子在光纤中随距离呈指数损耗,量子纠缠分配的距离被限制在百公里量级。受限于光源、存储器及探测器的效率等因素,量子网络的预期传输速率非常低。提升传输速率的重要手段有两种,即对量子态进行高维编码,或者使用多模式量子存储器,但研究进展并不如意。
在前期研究的基础上,李传锋等人利用光的轨道角动量进行编码,首次研制出窄带高维纠缠光源,然后将此纠缠源存入固态量子存储器中,结果显示三维纠缠态的存储保真度达到99.1%。
研究组进一步地分析了该量子存储的高维特性,结果表明该存储器可对高达51维的量子态进行有效的存储。
李传锋表示,高维轨道角动量存储技术可用于存储器的多模式存储,以提升量子网络的传输速率及未来量子U盘的存储容量。利用多模式存储,这种新颖的量子存储器的存储容量有望超过100万量子比特。本成果为固态量子存储器的集成化、规模化应用打下重要的基础。
(摘自腾讯科技)
Discussion on the Reliability Test M ethod w ith Software Test
LEIMing
(Unit93 Troop 92941 PLA,Huludao 125000,China)
Aiming at the need of the software reliability demonstration test in reliability test,the design m ethod of software test case and the allocation methods of reliability indexs of software are presented.And then,a reliability test program is designed.Finally,a case in which the proposed method is adopted to design the reliability test program of software is showed.
:reliability;software test;test program;mission reliability
TP 311.55;TB 114.37
:A
:1672-5468(2015)05-0032-04
10.3969/j.issn.1672-5468.2015.05.008
2015-04-13
2015-09-14
雷鸣 (1966-),男,湖北赤壁人,中国人民解放军92941部队93分队高级工程师,从事导弹武器系统试验总体研究工作。