• TJU_SCS_软件测试_homework2


      1.作业要求  

      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.

      questions:

        1. Identify the fault.

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

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

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

      2.作业内容

      2.1

      program:

     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

      answer:

        1. i > 0 so in array x, we can not get x[0], that means we miss an element.

        2. test: x = []; y = 2.

        3. test: x = [3, 2, 9]; y = 2. Expected: 1. Actual: 1. Do execute the fault but right answer.

        4. test: x = [2, 1, 9]; y = 2. Expected: 0. Actual: -1. Wrong answer.

      2.2

      program:

    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

      answer:

        1. variable i is 0 to x.length, but when x[i] equals to 0 at the first time return i not the last time. It may be okey if there is not more than 1 0 in x.   But it cause wrong answer when there is more than one 0 in x.

        2. test: x = [1, 2, 3]; 

        3. test: x = [1, 0, 2]; Expected: 1. Actual: 1. Do execute the fault but right answer.

        4. test: x = [1, 0, 0]; Expected: 2. Actual: 1. Wrong answer.

  • 相关阅读:
    20210603
    20210602
    20210601
    20210531-已编辑
    2021053101
    操作系统笔记(一)
    尘埃落定,扬帆起航
    RTL级低功耗设计
    关于毛刺
    电路级拾珍
  • 原文地址:https://www.cnblogs.com/blueContra/p/5260333.html
Copyright © 2020-2023  润新知