2012-10-20 63 views
0

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

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

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

返回类型是“int” - 哪个返回值指示错误? – gcbenison

+0

我有一个测试返回值的测试,例如-1是错误。 –

+1

您的测试用例在测试过程中是否执行了函数中的所有代码行? –

回答

2

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

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

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

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

0

sizeof(int)必须针对特定编译器进行测试。虽然这看起来很平凡,C标准指定了int的大小,但它最好知道所使用的编译器是否是16位标准非合格编译器。只是另一个测试案例。

相关问题