可靠性是指产品在规定的条件下和规定的时间内完成规定功能的能力或者在指定条件下使用时,软件产品维持规定的性能级别的能力
从技术的角度来看,影响软件可靠性的主要因素如下:
软件可靠性的定义是相对运行环境而言的,一样的软件在不同的运行剖面下,其可靠性的表现是不一样的。
也就是软件的大小,一个只有数十行代码的软件和几千行代码的软件是不能相提并论的。
结构对软件可靠性的影响主要取决于软件结构的复杂程度,一般来说,内部结构越复杂的软件,所包含的软件缺陷数就可能越多。
软件工程表明,软件的开发方法对软件的可靠性有显著影响,例如,与非结构化方法相比,结构化方法可以明显减少软件的缺陷数。
软件从运行开始,到某一个时刻为止,出现失效的概率。如果将失效的概率看作关于软件运行时间的一个随机函数,用F(t)表示。函数F(t)具有如下特征:F(0)=0,即软件运行初始时刻失效概率为0;F(t)在时间域(0,+∞)上是单调递增的;F(+∞)=1,即失效概率在运行时间不断增长时趋向于1。
是软件系统在规定的条件下,规定的时间内不发生失效的概率。如果用F(t)来表示到t时刻为止,软件不出现失效的概率,则可靠度的公式为R(t)=1-F(t)。
是软件运行后,到下一次出现失效的平均时间。
通常平均无失效时间更能直观地表明一个软件的可靠程度
1)发现软件系统在需求,设计,编码,测试,实施等方面的各种缺陷
2)为软件的使用和维护提供可靠性数据
3)确认软件是否达到可靠性定量要求
为了最终评价软件系统可靠性而运用建模,统计,试验,分析评价等一系列手段对软件系统实施的一种测试。
为了获取可靠性数据,按预先定义的测试用例,在软件的预期使用环境中,对软件实施的一种测试。
可靠性目标是指客户对软件性能满意程度的期望。它使用以下的指标来衡量
是对用户具有相同程度影响的失效集合,常见的是按照对成本的影响,对系统能力的影响等标准划分软件失效的严重程度类。
软件系统在固定条件下,规定的时间内不发生失效的概率。
单位时间软件出现失效的概率。
是指在软件运行之后,到下一次出现失效的平均时间。
软件在机载设备中的运用越来越广泛,驻留于机载设备中的嵌入式软件失效会产生灾难性后果,一般要求其具有较高的可靠性,因此,软件可靠性测试对机载软件至关重要。
【问题1】
解释软件可靠性的含义及影响软件可靠性的主要因素。
【问题2】
可靠性评价时,经常使用的定量指标包括失效概率、可靠度和平均无失效时间(MTTF),请分别解释其含义。
【问题3】
对某嵌入式软件,设计要求其可靠度为1000小时无失效概率99.99%。经实测得出其失效概率函数F(1000)=0.0012,问该软件是否符合设计可靠性要求,并说明原因。
【问题1标准答案】
可靠性是指产品在规定的条件下和规定的时间内完成规定功能的能力或者在指定条件下使用时,软件产品维持规定的性能级别的能力
从技术的角度来看,影响软件可靠性的主要因素如下:
运行剖面(环境):
软件可靠性的定义是相对运行环境而言的,一样的软件在不同的运行剖面下,其可靠性的表现是不一样的。
软件规模:
也就是软件的大小,一个只有数十行代码的软件和几千行代码的软件是不能相提并论的。
软件内部结构:
结构对软件可靠性的影响主要取决于软件结构的复杂程度,一般来说,内部结构越复杂的软件,所包含的软件缺陷数就可能越多。
软件的开发方法和开发环境:
软件工程表明,软件的开发方法对软件的可靠性有显著影响,例如,与非结构化方法相比,结构化方法可以明显减少软件的缺陷数。
还有软件可靠性的投入。
【问题2标准答案】
失效概率:
软件从运行开始,到某一个时刻为止,出现失效的概率。如果将失效的概率看作关于软件运行时间的一个随机函数,用F(t)表示。函数F(t)具有如下特征:F(0)=0,即软件运行初始时刻失效概率为0;F(t)在时间域(0,+∞)上是单调递增的;F(+∞)=1,即失效概率在运行时间不断增长时趋向于1。
可靠度:
是软件系统在规定的条件下,规定的时间内不发生失效的概率。如果用F(t)来表示到t时刻为止,软件不出现失效的概率,则可靠度的公式为R(t)=1-F(t)。
平均无失效时间(MTTF):
是软件运行后,到下一次出现失效的平均时间。通常平均无失效时间更能直观地表明一个软件的可靠程度
【问题3标准答案】
不符合可靠度要求。
软件可靠度R(t)和软件失效概率之间的关系为R(t)=1-F(t)。R(1000)=1-F(1000)=1-0.0012=0.9988=99.88%,99.88%<99.99%,因此不符合设计软件可靠度要求。
阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
**【说明】 **
现代软件的飞速发展,使得系统对软件的依赖越来越强,对软件可靠性的要求也越来越高,因此发展以发现软件可靠性缺陷为目的的可靠性测试技术也日益迫切。
【问题1】(5分)
一个完整的软件可靠性测试如图5-1所示。
请填写图中的空缺(1)~(5)。
【问题2】(5分)
解释说明软件可靠性测试的目的,并说明狭义和广义软件可靠性测试的区别。
【问题3】(2分)
可靠性目标是指客户对软件性能满意程度的期望。通常采用失效严重程度、可靠度、故障强度、平均无故障时间等指标来描述。请分别解释其含义。
【问题1标准答案】
1)确定可靠性目标
2)可靠性数据
3)分析影响可靠性因素
4)可靠性模型
5)可靠性评价
【问题2标准答案】
软件可靠性测试的目的:
1)发现软件系统在需求,设计,编码,测试,实施等方面的各种缺陷
2)为软件的使用和维护提供可靠性数据
3)确认软件是否达到可靠性定量要求
广义的可靠性测试:为了最终评价软件系统可靠性而运用建模,统计,试验,分析评价等一系列手段对软件系统实施的一种测试。
狭义的可靠性测试:为了获取可靠性数据,按预先定义的测试用例,在软件的预期使用环境中,对软件实施的一种测试。
【问题3标准答案】
1)失效的严重程度:
是对用户具有相同程度影响的失效集合,常见的是按照对成本的影响,对系统能力的影响等标准划分软件失效的严重程度类。
2)可靠度
软件系统在固定条件下,规定的时间内不发生失效的概率。
3)故障强度
单位时间软件出现失效的概率。
4)平均无故障时间
是指在软件运行之后,到下一次出现失效的平均时间。