计算机术语——fault、failure、exception和error的区别
来源:互联网 发布:横扫千军算法术伤害吗 编辑:程序博客网 时间:2024/06/05 07:40
本文的主要思路是先分别解释这几个概念的含义,然后通过一个具体的例子进行阐释,最后总结它们之间的关系。
(一)什么是error?
我们先看软件工程中对error的定义,
Error is deviation from actual and expected value.It represents mistake made by people.
这句话的意思是,Error是指实际值偏离你最初的期望,往往是由人为造成的。
(二)什么是fault?
Fault is incorrect step, process or data definition in a computer program which causes the program to behave in an unintended or unanticipated manner. It is the result of the error.
这段话的意思,fault通常是由于程序中不正确的步骤,过程或者数据定义,导致程序出现了非故意的、不可预料的行为。fault通常是由error导致的。
(三)什么是failure?
Failure is the inability of a system or a component to perform its required functions within specified performance requirements.Failure occurs when fault executes.
这段话的意思是failure是一个系统或者组件不能完成它被要求的功能。failure通常是由fault导致的。
从前面的解释我们可以顺理成章的得出这样的解释,一些人为的error,使得程序中产生了不正确的步骤、过程和数据定义,从而使程序出现了一些不可预料的fualt,这些 fault最终又致使系统或者组件不能完成了最初要求的功能,也就是failure。如果你还有点迷糊,那么通过下面的这个例子,相信你应该就更清楚了。
(四)解释这三个概念的区别的例子。
#include<stdio.h>int main (){ int value1, value2, ans; value1 = 5; value2 = 3; ans = value1 - value2; printf("The addition of 5 + 3 = %d.", ans); return 0;}
这个程序的功能是实现两个数相加输出最终的结果,编译运行之后输出这样的结果:
The addition of 5 + 3 = 2.
我们接下来具体分析一下:
- 很显然程序的结果和我们最初期望的功能是不相符的,也就是说系统出现了failure。
- 为了使程序能够正确工作,我们焦急的去寻找程序中的哪个过程出现了问题,也就是在寻找fault。在历经千辛万苦之后,终于发现了是第七行的这条语句出现了问题。这个程序的fault是把减法当成了加法。那么error是什么呢?
- error就是我犯的错误,将原本应该输入+的地方,输入了-。这样我们就发现了系统故障产生的过程,我们往往把我们发现的代码 错误叫做bug。
这三个概念是属于软件测试范畴的。对测试人员来说,他们不必知道程序的源码就能发现程序功能性的故障。从观察到的结果上来看,测试人员知道了程序中一定存在error导致了fault,因为fault导致程序failure产生正确的结果。但是测试人员不知道是什么导致了error。
(四)什么是异常?
对Exception这个概念,大家往往不会太陌生,不管是Java还是C++中都有相应的处理机制。简而言之,异常就是那些我们能够预料到的,可能会出现的使得程序不能正常运行的行为。如果不是很清楚,可以参见博客。
- 计算机术语——fault、failure、exception和error的区别
- fault,error和failure的区别与联系
- Failure,Error,Fault之间的区别
- Bug、Defect、Error、Fault、Exception的区别
- Bug、Defect(缺陷)、Error、Fault、Exception的区别
- 软件测试基础——fault、error and failure
- Error和Exception的区别
- Error和Exception的区别
- error 和 exception的区别
- Error和Exception的区别
- Error和Exception的区别
- error和exception的区别
- Error和Exception的区别
- Error和Exception的区别
- JUnit 中 failure 和 error 的区别
- junit中failure和error的区别
- C++语言的fault/error/failure(软件测试)
- error和exception区别
- android加载网络图片时有效避免OOM
- Poj 3046 Ant Counting【多重背包】
- hdu3790——最短路径问题
- c# 为什么结构中不能有实例字段初始设定值项
- 第五周项目4-长方柱类
- 计算机术语——fault、failure、exception和error的区别
- 欢迎使用CSDN-markdown编辑器
- Git 初级入门
- linenoise 源码分析(一)
- C++基础知识
- Android 内存优化---管理应用的内存
- activity之间的数据传递方法
- C++作业2
- 通过runtime获取一个类的所有属性