bug在软件运行的不同时期有不同的含义
Fault
编码过程中【静态】存在于软件中的缺陷。
Error
软件运行过程中,运行fault后,触发得到的结果(错误)。
Failure
失效。error传到软件外部,用户和测试人员能够观测的到的失效行为。
观测到Failure的三个必要条件【PIE模型】
ØExecution/Reachability-执行:执行必须通过错误的代码
ØInfection-感染:在执行错误代码的时候必须触发出一个错误的中间状态
ØPropagation-传播:错误的中间状态必须传播到最后的输出,使得观测到输出结果与预期结果不一致
ps:
一个测试执行到包含fault的代码,不一定会产生错误的中间状态error
产生了错误的中间状态,不一定会有失效failure