测试功能:还应该测试什么?

时间:2012-10-20 19:05:09

标签: unit-testing testing

我正在编写一个函数,它接受三个整数输入并基于三者之间的关系,它返回一个值或错误。为了测试这个,我写了一些测试用例,包括测试非法值,整数的边界条件,包括溢出和一些正面测试。我想知道还有什么应该测试这个简单的功能?

在不同平台上进行测试是否可以作为这种小功能的测试用例? 此外,测试执行时间是我想要添加为测试用例的另一件事。 可以将静态和动态分析作为测试用例的一部分吗? 还有其他应该测试的东西吗?

int foo(int a, int b, int c) {
   return a value based on a, b, and c. 
}

2 个答案:

答案 0 :(得分:2)

你问你的问题的方式似乎你正在进行黑盒测试,即你只知道输入和输出之间的关系,而不是实现。在这种情况下,你的测试用例应该取决于你对这种关系的了解,我认为你已经测试了这些东西(你没有给我们关于这种关系的细节)。

由此看起来您不需要测试平台独立性,但如果您有自动测试套件,那么在不同平台上测试它肯定不是一个坏主意。

现在,如果您有可用的代码,您可以进行白盒测试。通常,您可以通过首先查看代码结构来执行此操作,即您可以尝试获得100%的分支覆盖率,即代码中的每个分支在测试期间至少运行一次。通过这种方式,静态和动态分析可以帮助您找到不同的覆盖度量。

如果您的函数中没有平台相关代码,我不会去进行平台独立性测试。

答案 1 :(得分:0)

必须针对特定编译器测试

sizeof(int)。虽然这看起来微不足道,并且C标准指定了int的大小,但总是更好地知道所使用的编译器是否是16位标准不兼容的编译器。只是另一个测试案例。

相关问题