软件可靠性(Software Reliability)指的是软件产品在特定条件下和指定时间内完成预期功能的能力。这种能力不仅受到软件自身缺陷和误差的影响,还与系统输入和使用情况相关。[1] 定义
软件可靠性这一概念由美国IEEE计算机学会在1983年进行了明确定义,并随后被美国标准化研究所采纳为国家标准。1989年,中国也接受了这一定义作为国家标准。该定义包含两个层面的意义:一是指在特定条件下,在指定时间段内,软件不会导致系统失效的概率;二是指在指定时间段内,软件能够在所述条件下执行所需功能的能力。这个概率取决于系统输入以及软件中存在的故障,后者又决定了系统输入是否会触发已经存在于软件中的故障。[2]
影响因素
软件可靠性涉及软件能否满足既定功能的要求。当软件未能达到预期效果时,通常是由软件中的错误引起的。这些错误可能是软件开发各个阶段中人为失误的结果,包括需求分析定义错误、设计错误、编码错误、测试错误和文档错误。为了尽可能早地发现并解决这些问题,应尽早识别和纠正错误,以防止它们在整个开发流程中扩散。此外,软件可靠性的另一重要影响因素是健壮性,即软件对非法输入的容忍程度。因此,提升软件可靠性本质上就是减少错误并增强健壮性。