• 《软件测试》第二次练习


    Below are four faulty programs. Each includes a test case that results in
    failure. Answer the following questions (in the next slide) about each program.

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


    public static int lastZero (int[] x) {
    //Effects: if x==null throw
    NullPointerException
    // else return the index of the LAST 0 in x.
    // Return -1 if 0 does not occur in x
    for (int i = 0; i < x.length; i++)
    {
    if (x[i] == 0)
    {
    return i;
    }
    } return -1;
    }
    // test: x=[0, 1, 0]
    // Expected = 2

    Q1 Identify the fault.

    Q2  If possible, identify a test case that does not execute the fault. (Reachability)

    Q3  If possible, identify a test case that executes the fault, but does not result in an error state.

    Q4  If possible identify a test case that results in an error, but not a failure.

    A1:findLast函数fault在于循环条件中应为i>=0    lastZero 中fault在于返回值应初设为-1,遍历中改变返回值,循环结束返回返回值

    A2:findLast   // test: x=[2]; y = 2

           // Expected = 0

      lastZero   // test: x=[ ]

           // Expected = -1

    A3:findLast   // test: x=[2,3,5]; y = 3

           // Expected = 1

      lastZero   // test: x=[ 0,1,2]

           // Expected = 0

    A4: findLast   // test: x=[2,3,5]; y = 3

           // Expected = -1

      lastZero   // test: x=[ 2,1,0]

           // Expected = 2

  • 相关阅读:
    struts2之拦截器
    JavaWeb开发之HttpServletResponse
    JavaWeb开发之Servlet
    HTTP协议详解
    字符串
    数组
    第一个只出现一次的字符
    DDoS的类型及原理
    引用变量&和指针*的区别
    赋值运算符的重载
  • 原文地址:https://www.cnblogs.com/hz147/p/5264071.html
Copyright © 2020-2023  润新知