欢迎访问国可工软科技有限公司官方网站!4000032330

可靠性基础 可靠性流程 可靠性开发 可靠性评估 可靠性标准
软件可靠性

【技术分享】系统性谈谈软件可靠性——第4讲:软件可靠性测试

作者:admin 时间:2022-08-22

本文为《软件可靠性简介》培训课程中摘录的公开内容。

本文目录:

一、软件可靠性测试的概念

二、软件可靠性测试过程

三、软件可靠性增长实验

四、软件可靠性验证实验

五、软件可靠性验证测试方案

一、软件可靠性的概念

软件可靠性测试,是指为了满足用户对软件的可靠性要求,基于用户使用模型对软件进行测试,发现并纠正软件中的缺陷提高软件的可靠性水平,并验证软件能否达到用户可靠性要求的软件测试方法。

首要目标是寻找频繁的、关键的失效,是面向失效的测试方法。

软件可靠性测试目的:

◆验证软件可靠性满足给定的要求

◆评估软件可靠性水平

◆预计软件可靠性水平

◆实现软件可靠性增长

需要注意的是,软件测试和软件可靠性测试不同,在第5讲会讲软件测试。

这里简单提一下软件可靠性测试与其它测试类型(比如白盒、黑盒,灰盒测试等)的关系:

1.其它测试类型关注与其相关联的缺陷类型,发现和消除这些缺陷,对改进软件可靠性有帮助。

2.每一种测试类型都有其针对性,各尽其责,相互补充,改进测试的充分性。

二、软件可靠性测试过程

我们以一张图来看软件可靠性的测试过程:

国可可靠性软件 (1).png

这里不好理解的可能是操作剖面,怎么理解呢?我们可以理解为:操作及其发生概率组成的集合。用它来定量的描述软件的实际使用情况。

国可可靠性软件 (2).png

剖面有很多种,如客户剖面,用户剖面,功能剖面等等。同一个软件因为用户不同,存在多个操作剖面。

国可可靠性软件 (3).png

在第2讲时,我们给过这个例子,这里再次重复下,以实际案例讲解剖面的构建。

虚拟维修训练系统可实现在虚拟环境下对装备进行维修和拆卸的功能。是一款集训练、学习、自测于一身的学习训练系系统,对受训人员的维修保障能力有大的帮助,其构成如下。

国可可靠性软件 (4).png

a) 客户剖面可以表示为:

客户剖面= {P (院校),P(军工厂),P(基地)};

本例中,一组模拟数据为:院校有5所,军工厂10个,基地15个,则概率计算如下:

P (院校) =5/ (5+10+15) = 5/30

P (军工厂) =10/ (5+10+15) = 10 / 30

P (基地) =15/ (5+10+15) = 15/30

b) 用户剖面可以表示为:

用户剖面= {P (管理员), P (受训者) };

这里模拟一组用户数据如下:

院校一共500人使用此软件,其中10人为管理员,490人为受训者;军工厂一共50人使用此软件,管理员5人,受训者45人;基地一共100人使用此软件,管理员5人,受训者95人。

根据这些数据可计算用户剖面概率:

P (管理员) = (5/30) ∗ (10/500) + (10/30) ∗ (5/ 50) + (15/30) ∗ (5/100) =37/600

P (受 训 者) = (5/30) ∗ (490/500) + (10/30) ∗ (45/50) + (15/30) ∗ (95/100) =563/600

c) 功能剖面可以表示为:

功能剖面= {P (登录), P (实施) , P (查询) };

不同系统使用人员 (管理员和受训者) 使用系统不同功能的情况如下所示:

国可可靠性软件 (5).png

P (登录) =0∙7∗P (管理员) +0∙2∗P (受训者) =0.7*37/600+0.2*563/600 = 0.2308

P (实施) =0∙2∗P (管理员) +0∙6∗P (受训者) =0.2*37/600+0.6*563/600 = 0.5753

P (查询) =0∙1∗P (管理员) +0∙2∗P (受训者) = 0.1*37/600+0.2*563/600 = 0.1938

根据实际的使用情况对功能剖面中实施部分进行分解实施包括提示和训练两大功能,其概率分配比例为0.2,0.8。则:

P (提示) =0∙2∗P (实施)=0.11506

P (训练) =0∙8∗P (实施)=0.46024

这样我们就计算出了登录、实施、查询这三个功能的使用概率。按照同样的道理,可以去计算再下层的功能剖面,如实施下面的调练,以及再往下的操作剖面:讲解演示、引导训练、自主训练、自测。

构建完剖面后,接下来是准备测试用例。软件可靠性测试所用的测试用例是根据操作剖面随机选取的。整个过程可以用下面这个流程表示,可以根据情况进行适当调整:

国可可靠性软件 (6).png

比如上面这个例子中的“讲解演示”测试用例:

国可可靠性软件 (7).png

测试用例可以用一些方法来帮助设计,我们在第5讲介绍测试用例的设计。

接下来是准备测试环境,为了得到尽可能真实的结果,可靠性测试应该尽量在真实的环境下进行。这里就引申出考虑软件工作载荷的可靠性综合试验剖面设计。

例如一个飞机的例子:

国可可靠性软件 (8).png国可可靠性软件 (9).png国可可靠性软件 (10).png

然后是测试运行,收集可靠性数据,进行数据分析等等。这些内容比较常规,不在此细讲。

三、软件可靠性增长实验

软件可靠性增长实验的定义:

在软件交付前进行,通过可靠性测试暴露软件缺陷,采取有效措施排除失效率较大的缺陷,以提高交付软件的可靠性。

软件可靠性增长实验的特点:

测试人员:通常由软件研制方而非使用方进行;

测试阶段:通常在软件测试阶段;

测试场所:一般在实验室内进行;

测试对象:软件产品研制的中后期,验证测试之前;

测试方法:基于操作剖面的随机测试方法;

测试特征:出现失效后即修改软件,并验证修正的正确性。

四、软件可靠性验证实验

软件可靠性验证实验的定义:

验证在给定置信水平下,软件的可靠性水平是否达到规定的可靠性指标的要求,验证结果是软件定型的依据。相当于硬件可靠性鉴定试验,两者都是统计实验。

软件可靠性验证实验的特点:

测试人员:通常由使用方参加测试;

测试阶段:软件确认(定型或验收)阶段;

测试对象:软件产品的最终版本;

测试方法:基于软件操作剖面的随机测试方法;

测试特征:不进行软件缺陷的剔除。

五、软件可靠性验证测试方案

工程实践表明,软件的失效分布一般也可以认为是指数分布,因此,软件可靠性验证测试方案也按GJB 899A-2009《可靠性鉴定和验收实验》分为定时截尾统计试验方案、定数截尾统计试验方案和序贯截尾统计试验方案。

考虑到有的软件可靠性要求很高,还有无失效考核测试方案。

书上给了个例题:

某控制系统的软件的可靠性指标为MTBF=1000h,若生产方和使用方商定的风险α=β=20%,鉴定比d=3,问怎样进行该软件的可靠性验证方案?

定时截尾,根据α=β=20% ,d=3 查GJB 899A-2009的试验方案(课本178页表4-9),采用方案17,即总测试时长T=4.3 θ1,

接收/拒收失效数≤2。即软件应运行4.3 θ1即4300h,若期间发生的失效数≤2,则认为该软件的MTBF= 1000h达到了。否则认为指标没有达到。


以上文章来源于永恒之地 ,作者徐步陌上行

国可RFMEA

与传统的FMEA分析方法和软件相比,R-FMEA最大的特点是通过其七步的分析流程, 构建了关联紧密的FMEA基础数据关系,即FMEA主模型。通过FMEA主模型,工程人员可以根据需要构建简单的或者复杂的FMEA分析, 并实现企业知识的积累和快速重用。

国可R-FMEA软件支持免费在线使用,并保证数据。日前,R-FMEA V4.6已正式发布,欢迎感兴趣的朋友在线申请