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

Unit testing 测试功能:还应该测试什么?,unit-testing,testing,Unit Testing,Testing,我正在编写一个函数,它接受三个整数输入,并根据三个整数输入之间的关系返回一个值或错误。为了测试这一点,我编写了一些测试用例,其中包括测试非法值、整数的边界条件(包括溢出)以及一些正测试。我想知道这个简单的函数还应该测试什么 在不同平台上进行测试作为一个如此小功能的测试用例有意义吗? 另外,测试执行时间是我想作为测试用例添加的另一件事情。 静态和动态分析可以作为测试用例的一部分吗? 还有什么需要测试的吗 int foo(int a, int b, int c) { return a valu

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

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

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

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

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

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

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


如果函数中没有与平台相关的代码,我不会进行与平台无关的测试。

返回类型是
int
-哪些返回值表示错误?我有一个测试用于测试返回值,例如-1是错误。在测试用例的过程中,函数中的所有代码行都执行了吗?@TerjeD。嗯,我想我需要检查一下。