软件测试学习日志————round 1 some questions of two small programs

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.

programs:

1.

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

answers:

1. The variable i should bigger than 0 or equals 0.

  In this program i>0 is not right. It cannt get x[0].

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

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

4. test: x=[2,3,5]; y=2

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
    

answers:

1. The variable i should from x.length-1 to 0.

  This program is scanning a wrong order which is from 0 to x.length-1. It's wrong.

  This program means that once there is a 0 from the beginning of x, it will return 

  the position of i.

2. test: x=[];

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

4. test: x=[0,1,0]

after the question: This is an exercise to remind us of the RIP rules, which are Reachability, Infection and Propagation.

  It's important to software testing.

原文地址:https://www.cnblogs.com/ltpnimeia/p/5259074.html