我有一个函数,它接受3个整数,可以是任何数字。
函数对数字执行一些复杂的比较,并相应地调用/返回。
var A = 1; could be anything between +/- Number.MAX_VALUE
var B = 2;
var C = 3;
result = TheFunction(A,B,C);
我需要测试TheFunction
中的逻辑对所有可能值的支持程度。
如何测试此函数的所有可能值?
很明显,我不能把所有的数字和所有数字的组合都插进去!
我可以插入并确保我的函数适用于所有可能的值的最佳值(以及它们是什么)是多少??
如果不了解更多关于函数的信息,就只能泛而谈。最常见的故障情况是在范围边界及其附近。其中包括:
- 最大值
- 最小值
- 最大值-1
- 最小值+1
- -1、0和1
再加上几个正负的中间值,每个参数就有9或10个数字需要测试。有三个论点,大约有1000个案例。
了解函数的内部情况可以减少用例,也可以建议可能是问题来源的附加值或值组合。
附言:由于四舍五入,Number.MAX_VALUE - 1
可能只是计算为Number.MAX_VALUE
。您的目标应该是小于Number.MAX_VALUE
的最大可表示数。这也表明了一些额外的可能的麻烦点:根据文档,最大和最小的整数是:
var biggestInt = 9007199254740992;
var smallestInt = -9007199254740992;