一、.PIE模型
grace Hopper,第一个bug
1.
Fault:静态存在于软件中的缺陷,例如计算数组平均值时,误将循环从i=1开始
Error:运行到fault触发了错误的中间状态,如test input[3 4 5],实际只累加了4 5
Failure:失效,本来输出平均值为4,实际输出了3
2.
观测到fault需要三个条件
Execution(执行):通过错误代码
Infection(感染):执行错误代码时必须触发错误的中间状态
Propagation(传播):错误的中间状态需要传播
3.
程序可能执行不到fault的位置
执行到fault不一定触发error,如计算数组平均值将循环从1开始,test input[0 4 5],输出平均值是一样的
执行到fault,触发error,也可能没有failure,如计算数组平均值,数组长度记为length-1,test input[3 5 4],(3+5+4)/3=4,(3+5)/2=4,结果相同