我怎么知道我写了足够多的测试用例?

时间:2014-12-03 08:06:19

标签: testing

举个例子:

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) == .... );
}

有时当我写一个函数时,我担心会遗漏一些可能的情况。然后我停下来并努力思考其他可能的情况,如负整数,null,非常大的数字和其他奇怪的输入。

花费我的时间并让我觉得有必要为一个功能编写这么多案例吗?我应该编写多少个案例才能使测试可靠?或者我应该先写正常的情况,然后如果我有空闲时间再写一些案例?

1 个答案:

答案 0 :(得分:0)

您可以专注于两种类型的测试 - 白盒黑盒测试。

对于黑匣子测试,你会想要做你已经描述过的,找到极值和边界情况。其中包括border-valua analysiserror guessing

对于 White Box 测试,您假设已测试功能的代码已知。您将希望涵盖该代码的任意数量的行或“分支”。您可以遵循几个指标,甚至使用工具来支持对coverage的分析。

如果您开始测试更高级别的代码(例如,不仅仅是单元测试),您将更多地关注用户故事功能。在这里,您将重现所描述的用户操作并断言这些操作是可能的,并产生预期的结果/输出。

相关问题