我一直在考虑潜在的故障,无法想出一个例子。根据定义,休眠故障是一种故障(代码中的缺陷),不会导致错误,因此不会导致故障。谁能举个例子?在我脑海中唯一想到的是错误的代码.. 感谢
答案 0 :(得分:4)
休眠故障比人们想象的要常见得多。大多数程序员都经历过一段时间的思考“我在想什么?如何永远正确运行?”,即使代码没有显示出错误的行为。典型案例是错误的角落案件处理,例如:内存分配失败:
char *foo = malloc(42);
strcpy( foo, "BarBaz" );
上述代码在大多数情况下都能正常工作,并且通过测试就好了;但是,当malloc由于内存耗尽而失败时,它将失败地失败。故障在那里,但是处于休眠状态。
答案 1 :(得分:2)
休眠故障只是在您向系统发送正确的输入[编辑或环境]之前不会泄露的故障。
一个典型的例子来自Therac-25。在技术人员使用该系统变得“流利”之前,由输入键不太可能引起的竞争条件没有发生。他们记住了常见治疗的关键笔划,这意味着他们可以很快进入。
其他一些我想到的:
在最后一组示例中,有人可能会说没有规范要求这些系统支持这样的实例,因此它们并不是真正的错误。但这完全符合规范。