2014-12-03 46 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进行分析。

如果你开始上试较高水平的代码(即不只是单元测试),你将更多的精力放在用户故事功能。在这里,您可以重现所描述的用户操作并声明这些操作是可行的,并生成预期的结果/输出。

相关问题