Homework 2
Homework 2
软件工程3班 3015207191 林家乐
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.
(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.
Due Date: 23:59:59 March 15.
Please send your answer to tjuscsst@qq.comand post it to your blog.
1.public int findLast(int[] x, inty) {
//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
(1).for循环应为:for(int i=x.length-1; i >=0; i--)。
(2).test: x=[],即为一个空的数组,没有执行for循环,抛出NullPointerException异常。
(3).test: x=[3,1,4];y=1
Expected =1
执行了fault,但不会导致error状态。
(4).test: x=[3,1,4];y=2
Expected =-1
执行了error,但不会导致failure。
2.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).for循环应为:for(int i=x.length-1; i > =0; i–)。
(2).test: x=[],即为一个空的数组,没有执行for循环,抛出NullPointerException异常。
(3).test: x=[3,4,0]
Expected =2
执行了fault,但不会导致error状态。
(4)..test: x=[3,1,4]
Expected =-1
执行了error,但不会导致failure。