软件可靠性:软件在规定时间规定条件下无失效运行的概率。
软件安全性:软件运行过程中不产生重大后果。
因此软件可靠性强调的是失效不能发生太多太频繁,而软件安全性可以容忍一定的失效,但是重大的失效就不能出现。
软件可靠性测试是在一定的运行剖面(即用户实际使用软件的方式)下对软件进行随机测试,看软件中是否存在缺陷,是否满足用户的可靠性要求。由于这是一种随机测试,测试执行是相对简单的,但是运行剖面的获得很复杂,目前没有好的方法,一般根据专家经验指定。测试完成后会获得大量软件可靠性测试数据,需要根据这些测试数据运用软件可靠性模型对软件实际运行中将会达到的可靠度或失效率进行预测。软件可靠性模型是软件可靠性领域研究最深入和成熟的部分。
软件可靠性的工具较少,Nasa有几个实验室和Bell做的比较好。