在软件测试中,首先我们就会讲到什么是Fault,Error,Failure。这三个单词的翻译都可以很笼统的称为-“错误”。但是它们三个的区别到底在哪里呢?我们先来看完整的定义:

Fault的定义:可能导致系统或功能失效的异常条件(Abnormal condition that can cause an element or an item tofail.),可译为“故障”。

Error的定义:计算、观察或测量值或条件,与真实、规定或理论上正确的值或条件之间的差异(Discrepancy between a computed, observed or measured value or condition and the true, specified, or theoretically correct value or condition.),可译为“错误”。Error是能够导致系统出现Failure的系统内部状态。

Failure的定义:当一个系统不能执行所要求的功能时,即为Failure,可译为“失效”。(Termination of the ability of an element or an item to perform a function as required.)

这个完整的定义,网上随处可见。但是我相信不少人看了之后还是一知半解。Fault的定义显而易见,只要程序中存在这种使系统失效的条件,那么这就叫Fault。如果你有接触到,或者说可能运行该Fault的机会,那么我们就说你执行了Fault。例如,如果一个函数中存在一个逻辑错误,那么这个逻辑错误就是Fault。但是你并没有运行到这个函数,所以我们说,你没有执行Fault。

那么什么是Error呢?我们来看他的定义:计算、观察或测量值或条件,与真实、规定或理论上正确的值或条件之间的差异。简单的说,如果你设计了一段程序,这段程序在你设想的情况下可以运行。如果这段程序很不幸,在运行的时候,中间有些步骤,或者中间变量与你设计的不同,这就叫Error。

程序就好比是从起点运行到终点。如果在过程中,有偏差,即使最终到达了我们期望的终点,过程也是Error的。

接下来我们来看Failure。这个是最好理解的了。我们只看最后的结果和我们预想的是否一致,来判断程序是否失效。

接下来我们来看个题目:

这个题目要求我们在数组中从后往前找到匹配期望值的索引,但是在for循环中,由于当i = 0时候没有满足 i>0的条件,无法遍历到 i = 0,所以实际上没有比对第一个数。这就是我们的Fault。

1.当测试用例为 test:x = [] 时,抛出空指针异常,此时没有执行下面的程序,所以没有执行fault。

2.当测试用例为 test:x = [2,3,5], y = 3 的时候

期望值:1 实际值:1 同时由于我们在 i = 1的时候,正确返回。所以我们虽然执行了含有fault的程序,但是并没有产生错误,所以 执行了fault,没有执行error。

3.当测试用例为 test:x = [2,3,5],y = 1的时候

期望值:-1 实际值:-1 虽然我们得到了正确的结果,但是按照设计,应该在遍历完x = 0 以后,返回 -1;而实际程序在遍历完x = 1之后直接返回了 -1,所以执行了error,没有执行failure。

同理,我们来看这一题:

题中程序的目的是我们找到数组的最后一个0的索引,也就是说从后往前匹配第一个0,但是for循环中,i从0开始遍历,找到第一个0即返回,这就是我们的fault。

1.当测试用例为 test:x = []的时候,抛出异常,不执行fault。

2.当测试用例为 test:x = [0]的时候

期望值:0 实际值:0 在返回0的时候, i = 0,和我们设计的过程一样。所以执行了fault,没有执行error。

3.当测试用例为 test:x = [2,3,5]的时候

期望值:-1 实际值:-1 但是返回-1的时候,i = 3,遍历到了最后,所以和我们设计的过程不符合,所以执行了error,没有执行failure。

P.S.文章不妥之处还望指正

[软件测试] - No.1 Fault Error Failure 区别相关推荐

  1. fault、failure和error区别

    fault.failure和error 看上面那篇博文理解学习的. 作出个人的理解和总结: 1.fault(缺陷):程序段有缺陷但可以将就使用. 2.error(出错):程序段用错误的方式得出了正确的 ...

  2. CDH集群异常处理ERROR  Failure due to stall on seeded torrent.、重装时hdfs提示目录已存在、CDH重启不正常

    //集群安装报错      ERROR  Failure due to stall on seeded torrent. 解决:重启agent服务 //重装时hdfs提示目录已存在 rm -rf /d ...

  3. [vb]On Error GoTo 0和On Error resume区别

    On Error GoTo 0 表示禁止当前过程中任何已启动的错误处理程序. On Error Resume Next 说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运 ...

  4. 软件测试中自上而下与自下而上的区别

    文章将要探讨一下软件测试中自上而下与自下而上的区别. 第一.自顶向下的增殖方式.这种集成方式将模块按系统程序结构,沿控制层次自顶向下进行组装.自顶向下的增殖方式在测试过程中较早地验证了主要的控制和判断 ...

  5. Mac系统brew install 安装报错 Error: Failure while executing

    Mac安装Apache http服务器,brew install httpd 时报错 报错信息如下: ==> Installing httpd dependency: nghttp2 ==> ...

  6. Error:FAILURE: Build failed with an exception. * What went wrong: Task '' not found in root projec

    在使用Android studio的过程中,用gradle assembleRelease编译版本的时候,出现下列错误,无法编译 Error:FAILURE: Build failed with an ...

  7. console 对象属性方法详解 log、info、warn、error的区别

    参考: https://blog.csdn.net/S_clifftop/article/details/80363128?utm_medium=distribute.pc_relevant.none ...

  8. pg启动异常:Error: Failure while executing; `/bin/launchctl bootstrap gui/501

    启动postgresql: brew services start postgresql 报错信息如下: Error: Failure while executing; `/bin/launchctl ...

  9. Fault,Error与Failure的联系与区别

    Fault: 可能导致程序失败的因素,可理解成具体的代码. Error: 在程序运行过程中与设计时的预先设想不一致的情况,如变量值错误,错误的运行路径等. Failure: 当一程序不能完成所要求的功 ...

  10. 计算机术语——fault、failure、exception和error的区别

      本文的主要思路是先分别解释这几个概念的含义,然后通过一个具体的例子进行阐释,最后总结它们之间的关系. (一)什么是error? 我们先看软件工程中对error的定义, Error is devia ...

最新文章

  1. php主机转发ipv6,php实现ipv4转换ipv6
  2. Spring Boot 2.X 使用@Cacheable时注意事项
  3. js 根据时间生成唯一订单号
  4. 虚拟CentOS访问Windows下共享文件(二)
  5. 如何通过父类引用“调用”子类所独有的方法
  6. 二维点云数据椭圆拟合算法及C++实现
  7. zdc找不到xenapp服务器,Citrix XenApp 客户端访问服务器的通讯流程
  8. List转Json数组
  9. java red5 流媒体服务_[Red5]Red5之Flash流媒体服务器的安装与使用教程完整版(组图)...
  10. 解决 dyld: Library not loaded:Reason: image not found
  11. 工作中PUSH用到的统计命令
  12. Python字符串前缀u、r、b、f含义
  13. 1.5黄金白银最新行情走势分析预测,黄金实时操作建议
  14. 看完李宏毅的视频我决定学好英语了
  15. windows Apache 的安装和配置教程
  16. 2020年全国计算机二级考试大纲改变,2020年3月计算机二级考试大纲内容
  17. 记录Google被和谐的日子
  18. 【mysql】事务的四大特性
  19. C++ 无法打开 源 文件「bits/stdc++.h」//E1696
  20. element-ui 中的el-table表格默认的“暂无数据”修改

热门文章

  1. Pycharm下载库出错ERROR: Could not find a version that satisfies the requirement
  2. 住得越高越安静? 中间楼层噪音最大
  3. 2022-2028全球造水机市场现状及未来发展趋势
  4. pocketpc同步驱动_PocketPC上的NewsBreak RSS Feed阅读器和播客
  5. 3.4.3 区域与图像的平均灰度值
  6. 小米、百度、bigo 、滴滴 、快手等iOS 面试后的一次阶段性总结
  7. 美国纽约摄影学院摄影教材 学习笔记1
  8. 现在90,00后经常上哪些网站?喜欢看啥网站?
  9. linux杀死ltp进程,LTP套件使用方法详解
  10. Baidu Expressive TTS《Multi-reference Tacotron by Intercross Training for Style Disentangling...》