软测homework2

程序一:

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

程序一:应将x>0修改为x>=0

Fault in Program 1 lies in that x > 0, which should be corrected to: x >=0.

程序二:应将 int i = x.length-1; i >= 0; i--或者将x[i]==0修改为x[x.length-1-i]

Fault in Program 2 lies in that it outputs the first 0 in the integer array instead of the last 0. Therefore, we should iterates from the end to the beginning or modify judgement condition in order to get the last index of 0.

 

2. A test case that does not execute the fault

程序一:x=null;

程序二:x=null;

 

3. A test case that executes the fault, but does not result in an error state

程序一:testx=[2,3,5];y=5, Expected=2

程序二:test:x=[1,2,0], Excepted=2

 

4. A test case that results in an error, but not a failure

程序一:test:x=[2,3,5];y=4,expected=-1

程序二:test:x=[1,2,3],Excepted=-1

posted @ 2018-03-11 20:25  V_SWAN  阅读(112)  评论(0编辑  收藏  举报