健壮性
系统在不正常输入或不正常外部环境下仍能够表现正常的程度。
健壮性原则(Postel’s Law)
总是假定用户恶意、假定自己的代码可能失败。对自己的代码要保守,对用户的行为要开放。
健壮性编程的原则:
- 封闭实现细节,限定用户的恶意行为。
- 考虑极端情况 , 没有 “不可能”。
正确性
程序按照spec 加以执行的能力,是最重要
的质量指标!
健壮性和正确性的对比
- 正确性倾向于直接报错(error),健壮性则倾向于容错(fault-tolerance)。
- 对外的接口,倾向于健壮;对内的实现,倾向于正确。
- 可靠性=健壮性+正确性
增强软件可靠性的步骤
- 在编程时,使用assertions,防御性编程,code revie(两人一组,一个编,一个检查)等方法。
- 编程结束后,通过内存转储,堆栈跟踪,执行记录和测试等手段检查错误。
- debug,定位错误。
- 改错code revision
度量指标
- 从外部观察角度:MTBF,平均失效间隔时间,即两次发生错误的时间间隔。
- 从内部观察角度:残余缺陷率,即每千行代码中遗留的bug 的数量。