软件测试第二次作业

Below are two 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

  1. Identify the fault.
    The fault of the first program is that it can’t go through all elements of the group, the i>0 should be i >= 0.
    The fault of the second program is that the traversals is not by the right order, it should go through the group from the last element of the group, then it can get the index of the LAST 0 in x.
  2. If possible, identify a test case that does not execute the fault. (Reachability)
    The test case of the first program can be that the length of the group is 0.
    The test case of the second program can be that the length of the group is 0.
  3. If possible, identify a test case that executes the fault, but does not result in an error state.
    The test case of the first program can be that the first element of the group is not equal to y, for example, x=[1,2,3], y=3.
    The test case of the second program can be that there is only one 0 in the group, which is [0].
  4. If possible identify a test case that results in an error, but not a failure.
    The test case of the first program can be that all the elements of the group is not equal to y, for example, x=[1,2,3], y=4.
    The test case of the second program can be that there is only one 0 in the group or there is not a 0 in the group, such as [1,2,3,0,6] or [1,2,3].
posted @ 2017-03-03 00:05  裴顺达  阅读(164)  评论(0编辑  收藏  举报