美文网首页我爱编程
软件测试之fault,error&failure

软件测试之fault,error&failure

作者: 渣空格 | 来源:发表于2018-04-16 13:38 被阅读0次

软件测试的错误

  • Failure
      定义:当一个系统不能执行所要求的功能时,即为Failure,可译为“失效”。
      例子:一个程序员在编程的时候,不小心将for(i = 0;i < 3; i++)中的i = 0误打成i=1,这种错误就可以归为Fault。
  • Error
       定义:计算、观察或测量值或条件,与真实、规定或理论上正确的值或条件之间的差异,可译为“错误”。Error是能够导致系统出现Failure的系统内部状态。
       例子:若将i = 0,打成 i = 1,则会导致 s =2 + 3(正常情况:i = 0,则s = 1 + 2 + 3)
    Fault导致的s表现出计算错误,这种 s计算错误为Error。即i = 1 导致 s = 2 + 3这种漏算错误。
/**
 *  代码段1
 *  计算平均数 
 */
public static int average(int [] nums) {
    double result = 0;
    for(int i=0;i<nums.lenght;i++){
        result += nums[i]
    }
    result = result / nums.lenght;
    return result;
}
  
  • Fault
      定义:可能导致系统或功能失效的异常条件(Abnormal condition that can cause an element or an item tofail.),可译为“故障”。
      例子:从上面的代码可以看出,当Fault :i=1 导致Error:s = 2 + 3,代码继续运行会导致 平均数average的结果错误,average的计算错误表现在输出,即为Failure。

三者的关系

  • 由于人类试图通过上述3个基本术语来覆盖所有现实中的失效场景,所以就有“Fault -> Error -> Failure”。即,故障发生了,会导致错误,错误有可能造成系统功能的减弱或丧失。
  • 当Fault是另外一个组件/系统的失效时,则有Failure (Fault) -> Error -> Failure;当将Fault说成是某组件状态Error时,则有Error (Fault) -> Error -> Failure。
  • 事实上,这是一种递归循环的关系,递归关系要成立必须有一个明确的结束条件,这个条件就是要找出Root Cause,否则将无法完成一个失效分析。
    来自穆春阳科学网博客

常见的运行情况

通常会有三种情况

  1. 没有执行到fault
    • 出现了某些异常,代码没有执行到fault处
  2. 感染到Error,但是Error因为某些特定的情况无视了
    • 因为传入数据的特殊,例如计算平均数的时候,根据代码段1,int a = {0,2,4};
      当i = 0 的时候,平均数等于0 + 2 + 4 = 6;6 / 3 = 2;
      当i = 1 的时候,平均数等于2 + 4 = 6; 6 / 3 = 2;
      这样的话i=0或者i=1的时候得到的结果都是一样的
  3. 没有传播到外面体现Failure
/*
 * 代码段2
 * 计算平均数
 */
public static double average(int a[]){
    int i = 0;
    double result = 0;
    for (i=0; i < a.length; i++) {
        result += a[i];
    }
    result = result / i ;
    return result;
}
  • 正确情况:当 i = 0 时,s = 3 + 5 + 4 = 12
    具有Error:当 i = 1 时,s = 3 + 5 = 8 ;这种情况下因为Fault导致了Error。
    但当 i = 0时,average = 12 / 3 = 4
    当 i = 1时, average = 8 / 2 = 4
    这种巧合导致了Failure 无法传播到外面,我们无法观测到失效行为,这会导致隐藏的Failure。

相关文章

  • 软件测试之fault,error&failure

    软件测试的错误 Failure定义:当一个系统不能执行所要求的功能时,即为Failure,可译为“失效”。例子:一...

  • 软件测试与维护复习(SCUT_SE适用)

    一、 软件测试基本概念 1 bug的概念 bug类型:defect、fault、problem、error… pr...

  • PIE 模型

    1、BUG的三种类型——fault,error,failure fault:静态存在于软件中的缺陷,如字母拼写出错...

  • 软件测试的分类

    软件测试从零开始专辑(一) 软件测试之天龙八步(一) 第 1 步:具备软件测试常识 软件测试行业就像一个围城,很多...

  • 软件测试基础自学之测试基础理论

    第一章、系统测试之测试基础 软件测试不只只只是测试源代码软件测试人交流社群313782132,内有学习资料、面试技...

  • 软件性能测试目录

    软件性能测试Ⅰ 软件性能测试Ⅱ 软件性能测试Ⅲ 软件性能测试Ⅳ 软件性能测试Ⅴ 软件性能测试Ⅵ 软件性能测试Ⅶ 软...

  • 软件测试之细化软件测试流程

    一.需求阶段 二.设计编码阶段 三.集成、系统、验收阶段 四.软件测试过程

  • 软件测试之性能测试

    1.1.1 性能测试的概念 性能测试是通过自动化的测试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指 标进...

  • 软件测试之测试分类

    一.按是否查看程序内部结构 1.黑盒测试(包含性能测试和功能测试): 只关心输出输入结果 1)功能测试:是黑盒测试...

  • 软件测试之测试策略

    测试策略 = 遵循测试方针 + 项目实际情况 测试方针是产品测试中的通用要求、原则和底线。 通用是测试方针的显著特...

网友评论

    本文标题:软件测试之fault,error&failure

    本文链接:https://www.haomeiwen.com/subject/ztgskftx.html