错误(error)是软件本身的错误,是由程序员在编程过程中造成的。
缺陷(fault)是错误的结果,是错误的表现,是导致系统失败的条件。系统出错的基本原因是缺陷。
失效(failure)指不能按照软件规格说明的要求执行一个软件片段。缺陷执行时会发生失效,与需求规格说明有关系但不是所有的缺陷都能引起失效。
如果系统有一个错误,则失效必然出现;如果失效出现了,系统中必然有一个缺陷;如果系统中有一个缺陷,系统有可能出现失效,但并非一定出现失效。
-------------------------------------------------测试不能证明软件的正确性-------------------------------------------------------------------
事故(incident)出现失效时,可能会也可能不会呈现出来。事故说明出现了与失效类似的情况警告用户注意出现的失效。
测试就是用来处理错误 缺陷 失效与事故的。
软件测试是要精度还是要准确度,很大程度上取决于产品是什么取决于开发小组的目标。