假设我在 java 方法中有很多嵌套循环(3-4 级),每个循环都可以有一些 if-else 块。我如何检查所有这些东西是否正常工作?我正在寻找一种合乎逻辑的方法来测试它,而不是使用诸如替换非法值之类的蛮力方法。
编辑:您还可以为初学者推荐一些好的测试书籍吗?
假设我在 java 方法中有很多嵌套循环(3-4 级),每个循环都可以有一些 if-else 块。我如何检查所有这些东西是否正常工作?我正在寻找一种合乎逻辑的方法来测试它,而不是使用诸如替换非法值之类的蛮力方法。
编辑:您还可以为初学者推荐一些好的测试书籍吗?
我一直被教导基本测试的方式是尽可能地处理边缘情况。
例如,如果您正在检查变量 i 介于 0 和 10 之间的条件,if(i>0 &&i<10)
我自然会测试一些使测试条件为真的值,最好靠近边缘,然后是边缘上的一些值,它们是真假,最后是超出范围的案例。在上述条件下,我会测试 1,5 ,9, 0, 10, -1, 11,最后是一个非常大的整数,包括正数和负数。
这种做法违背了“不替换非法值)”,但我觉得你必须这样做以确保你的条件正确失败。
我相信使用调试是找到错误的最简单方法。您可以在此链接中找到有关调试的完整说明:http: //www.ibm.com/developerworks/library/os-ecbug/。
您也可以使用此链接:http ://webster.cs.washington.edu:8080/practiceit/进行练习。
例如,查找将通过每个具有某些值的循环的输入。然后找到将通过 if 的每个分支的输入。然后找到将通过具有大或小或非法值的循环的输入。
设置一些输入和输出数据。自己计算。创建一个类来检查输出值是否与您单独计算的值匹配。
例子:
输入:数组(3,4,5,6);
输出(奇数之和):8
class TestClass{
//test case
//here you keep changing the array (extreme values, null etc..
public void test1(){
int[] anArray=new int[4];
anArray[0] = 3;
anArray[1] = 4;
anArray[2] = 5;
anArray[3] = 6;
int s=Calculator.oddSum(x);
if (s==8)
System.out.println("Passed");
else
System.out.println("Failed");
}
public static void main(){
TestClass t=new TestClass();
t.test1();
}
}