可以說我在java方法中有很多嵌套循環(3-4級),每個循環都可以有一些if-else塊。我如何檢查所有這些東西是否正常工作?我正在尋找一種合乎邏輯的方式來測試這種方法,而不是像替代非法值那樣使用暴力方法。初學者的代碼測試 - 怎麼辦?
編輯: 你也可以爲初學者推薦一些好的測試書嗎?例如
可以說我在java方法中有很多嵌套循環(3-4級),每個循環都可以有一些if-else塊。我如何檢查所有這些東西是否正常工作?我正在尋找一種合乎邏輯的方式來測試這種方法,而不是像替代非法值那樣使用暴力方法。初學者的代碼測試 - 怎麼辦?
編輯: 你也可以爲初學者推薦一些好的測試書嗎?例如
我一直教過基本測試的方式是儘可能地處理邊緣案例。例如,如果您正在檢查變量i介於0和10之間的條件,我自然會測試的是一些使測試條件成立的值,最好在邊緣附近,然後邊緣上的幾個那些是真假的組合,最後是超出界限的情況。有了上述的條件,我會測試1,5,9,0,10,-1,11,然後最後是一個非常大的整數,包括正數和負數。
這種做法違背了「不能代替非法價值」),但我覺得你必須這樣做才能確保你的條件不適當。
例如查找將通過具有某些值的每個循環的輸入。然後找到將通過if的每個分支的輸入。然後找到將經過具有大或小或非法值的循環的輸入。
設置一些輸入和輸出數據。自己做計算。 創建一個類來檢查輸出值是否與單獨計算的值相匹配。
例如:
input:Array(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();
}
}
我相信使用調試是找到錯誤的最簡單方法。您可以在此鏈接找到有關調試的完整說明:http://www.ibm.com/developerworks/library/os-ecbug/。
您也可以使用此鏈接:http://webster.cs.washington.edu:8080/practiceit/進行練習。
什麼樣的測試?功能測試?覆蓋測試?白盒?黑盒子? – 2012-07-30 23:21:29
這不是「蠻力」 - 這是一個正常的流程。你手動編寫了不同的有效輸入,不同的有效和無效的邊緣情況以及不同的無效輸入,並檢查你是否得到你所期望的結果。 – zerkms 2012-07-30 23:22:00
@GregHewgill - 我是新開發人員,並不熟悉所有測試術語。我現在正在尋找一些「基本」的東西。順便說一句,你能建議我如何開始學習測試的基礎知識嗎? – 2012-07-30 23:31:06