2014-12-03 55 views
0

給出一個例子:我如何知道我已經編寫了足夠多的測試用例?

int sum(int* ary, int n); 

我已經寫了一些測試用例它

TEST("sum case 1") 
{ 
    int a1[] = {1,2,3,4}; 
    ASSERT(sum(a1, 4) == 10); 
} 

TEST("sum case 2 negative") 
{ 
    int a2[] = {-1,-2,-3}; 
    ASSERT(sum(a2, 3) == -6); 
} 

TEST("sum case 3 0 number") 
{ 
    ASSERT(sum(NULL, 0) == 0); 
} 

TEST("sum case 4 big number") 
{ 
    int a4[] = {1243142325,23423525,23525245,124313} 
    ASSERT(sum(a4) == ....); 
} 

TEST("sum case 5 mix") 
{ 
    int a5[] = {1243142325, -1, 0, -2224313} 
    ASSERT(sum(a5) == ....); 
} 

有時,當我寫一個函數,我擔心我會錯過一些可能的情況。然後我停下來,努力想想其他可能的情況,如負整數,空,非常大的數字和其他奇怪的輸入。

這花費我的時間,讓我覺得有必要寫一個功能這麼多的情況?我應該寫多少個案例足以使測試可靠?或者我應該先寫正常情況,如果我有空閒時間,再寫另一個案例?

回答

0

您可以專注於兩種測試方法 - 白盒黑匣子測試。

對於黑匣子測試你會想要做你已經描述過的,找到極值和邊界情況。這包括border-valua analysiserror guessing

對於白色方框測試您認爲測試功能的代碼是已知的。您需要覆蓋該代碼的許多行或「分支」。您可以遵循幾個指標,甚至使用工具來支持對您的coverage進行分析。

如果你開始上試較高水平的代碼(即不只是單元測試),你將更多的精力放在用戶故事功能。在這裏,您可以重現所描述的用戶操作並聲明這些操作是可行的,並生成預期的結果/輸出。

相關問題