0

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

作为这样一个小功能的测试用例,在不同平台上进行测试是否有意义?此外,测试执行时间是我想作为测试用例添加的另一件事。做静态和动态分析可以成为测试用例的一部分吗?还有什么需要测试的吗?

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

2 回答 2

2

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

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

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

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

于 2012-10-20T19:13:34.873 回答
0

sizeof(int) 必须针对特定的编译器进行测试。尽管这看起来微不足道,并且 C 标准指定了 int 的大小,但最好知道所使用的编译器是否是 16 位标准非兼容编译器。只是另一个测试用例。

于 2012-10-20T19:09:38.320 回答