|
知识路径: > 测试技术的分类 > 可靠性测试 > 软件可靠性与可靠性测试 >
|
考试要求:掌握
相关知识点:13个
|
|
|
|
可靠性(reliability)是指产品在规定的条件下和规定的时间内完成规定功能的能力。
|
|
|
按照产品可靠性的形成,可靠性可分为固有可靠性和使用可靠性。固有可靠性是通过设计、制造赋予产品的可靠性;使用可靠性既受设计、制造的影响,又受使用条件的影响。一般使用可靠性总低于固有可靠性。
|
|
|
软件与硬件有很多不同点,但从可靠性的角度来看,它们主要有4个不同点:
|
|
|
|
软件内部逻辑高度复杂,硬件则相对简单,这就在很大程度上决定了设计错误是导致软件失效的主要原因,而导致硬件失效的可能性则很小。
|
|
|
|
软件不存在物理退化现象,硬件失效则主要由于物理退化所致。这就决定了软件正确性与软件可靠性密切相关,一个正确的软件任何时刻均可靠。然而,一个正确的硬件元器件或系统,则可能在某个时刻失效。
|
|
|
|
软件是惟一的,软件拷贝不改变软件本身,而任何两个硬件不可能绝对相同。这就是为什么概率方法在硬件可靠性领域取得巨大成功,而在软件可靠性领域不令人满意的原因。
|
|
|
|
硬件通常更新周期较慢,硬件产品一旦定型一般就不会更改,而软件产品通常受需求的变更,软件缺陷的修复,造成软件版本更新较快,这也给软件可靠性评估带来较大难度。
|
|
|
尽管这样,软件仍然是一种具有特殊属性的产品,因此,我们也可以按照上面的产品可靠性定义来框架性地描述软件的可靠性。
|
|
|
1983美国IEEE计算机学会对“软件可靠性”做出了更为明确的定义,随后,此定义经美国标准化研究所批准为美国的国家标准。在1989年我国国家标准GB/T-11457也采用了这个定义。这个定义就是:
|
|
|
. 在规定的条件下,在规定的时间内,软件不引起系统失效的概率,该概率是系统输入和系统使用的函数,也是软件中存在的缺陷的函数;系统输入将确定是否会遇到已存在的缺陷(如果缺陷存在的话)。
|
|
|
. 在规定的时间周期内,在所述条件下程序执行所要求的功能的能力。
|
|
|
显而易见,美国IEEE计算机学会关于“软件可靠性”的定义仍然沿用了“产品可靠性”的定义,但有了更具体的定位和更深入的描述。
|
|
|
|
|
软件可靠性只是体现在其运行阶段,所以将“运行时间”作为“规定的时间”的度量。“运行时间”包括软件系统运行后工作与挂起(开启但空闲)的累计时间。由于软件运行的环境与程序路径选取的随机性,软件的失效为随机事件,所以运行时间属于随机变量。
|
|
|
|
规定的条件主要指软件的运行环境。它涉及软件系统运行时所需的各种支持要素,如支持硬件平台(服务器、台式机、网络平台等)、操作系统、数据库管理系统、中间件以及其他支持软件、输入数据格式和范围以及操作规程等。不同的环境条件下软件的可靠性是不同的,具体地说,规定的环境条件主要是描述软件系统运行时计算机的配置情况以及对输入数据的要求,并假定其他一切因素都是理想的。有了明确规定的环境条件,还可以有效地判断软件失效的责任在用户方还是开发方。
|
|
|
|
软件可靠性还与规定的任务和功能有关。由于要完成的任务不同,软件的运行情况会有所区别,则调用的子模块就不同(包括程序选择路径不同),其可靠性也就可能不同。所以要准确度量软件系统的可靠性,必须首先明确它的任务和功能。
|
|
|
|
①用内在的“缺陷”和外在的“失效”的关系来描述可靠性,更能深刻地体现软件的本质特点。
|
|
|
②定义使人们对软件可靠性进行量化评估成为可能。对于软件的可靠性这样一个质量特性,很难用一个明确直观的数值去体现。而依据这个定义,我们有可能通过分析影响可靠性的因素,用函数的形式,按照不同的目的建立各种数学模型去分析软件可靠性。
|
|
|
③用概率的方法去描述可靠性是比较科学的。前面讲到,软件失效是随机的外部表现,完全是一个随机事件,而软件缺陷是软件固有的没有损耗的内在特质。定义用规定时间内一定的操作不出现软件失效的概率,也就是输入未碰到软件缺陷的概率,来描述可靠性,这种方法就是用概率来描述纯粹的随机事件,是比较合理的,也是可行的。
|
|
|