zoukankan      html  css  js  c++  java
  • 软件测试作业2 — 软件测试中的错误Failure, Error, Fault的区别

    软件测试中的错误Failure, Error, Fault的区别:

    Failure: External, incorrect behavior with respect to the requirements or other description of the expected behavior(预期行为出错或与其他的外部行为描述不符)。指软件在运行时出现的功能的丧失,类似于看病时病人发病的症状。

    Fault: A static defect in the software(软件中的静态缺陷)。指可能导致系统或功能失效的异常条件,类似于病人发病的病因。

    Error: An incorrect internal state that is the manifestation of some fault(不正确的内部状态,是一些故障的表现)指计算、观察或测量值或条件,与真实、规定或理论上正确的值或条件之间的差异。Error是能够导致系统出现Failure的系统内部状态。类比于医生寻找的导致症状的内部情况,如血压,血糖等。

    题目1:

     1 public int findLast (int[] x, int y) {
     2 //Effects: If x==null throw NullPointerException
     3 // else return the index of the last element
     4 // in x that equals y.
     5 // If no such element exists, return -1
     6 for (int i=x.length-1; i > 0; i--)
     7 {
     8 if (x[i] == y)
     9 {
    10 return i;
    11 }
    12 }
    13 return -1;
    14 }
    15 // test: x=[2, 3, 5]; y = 2
    16 // Expected = 0

    1.  找到程序中的Fault:

      Fault:循环条件出错,i>0会忽略数组中的第一个值,故应改为i>=0.

    2.  设计一个未执行Fault的测试用例:

      x=null; y=5

    3.  设计一个执行Fault,没有触发Error的测试用例:

      数组x的第一个元素不是与y相等的唯一的元素即可避免Error,如x = [2, 3, 2, 6],  y = 2.

    4.  设计一个触发Error,但不导致Failure的测试用例:

      当数组只有一个元素的时候,循环无法进行,返回-1,触发Error。但若x中唯一的元素与y不相等,则Failure不会产生。如x = [7], y = 4。

     题目2:

     1 public static int lastZero (int[] x) {
     2 //Effects: if x==null throw NullPointerException
     3 // else return the index of the LAST 0 in x.
     4 // Return -1 if 0 does not occur in x
     5 for (int i = 0; i < x.length; i++)
     6 {
     7 if (x[i] == 0)
     8 {
     9 return i;
    10 }
    11 } return -1;
    12 }
    13 // test: x=[0, 1, 0]
    14 // Expected = 2

    1.  找到程序中的Fault:

      Fault:循环错误,程序为从前往后遍历,应改为从后往前遍历即 for (int i=x.length-1; i >= 0; i--)。

    2.  设计一个未执行Fault的测试用例:

      程序总会执行int i=0 故肯定会执行Fault,及时x=null也会执行Fault。

    3.  设计一个执行Fault,没有触发Error的测试用例:

      当x=null时执行Fault且会抛出异常但不会触发Error。

    4.  设计一个触发Error,但不导致Failure的测试用例:

      当数组中不为空且只有一个元素等于0时或者没有元素为0时会触发Error但不会导致Failure。如x=[1, 0, 2].

  • 相关阅读:
    2020-10-03:java中satb和tlab有什么区别?
    2020-10-02:golang如何写一个插件?
    2020-10-01:谈谈golang的空结构体。
    2020-09-30:谈谈内存对齐。
    2020-09-29:介绍volatile功能。
    2020-09-28:内存屏障的汇编指令是啥?
    2020-09-27:总线锁的副作用是什么?
    2020-09-26:请问rust中的&和c++中的&有哪些区别?
    自定义刷新控件的实现原理
    scrollView的bounds
  • 原文地址:https://www.cnblogs.com/JasonLiuys/p/6485997.html
Copyright © 2011-2022 走看看