int transmogrify(int n) {
1. assert(n <= 1000000);
2. if (n < 0) return -1;
3. if (n == 1000000) return PRE_CALC;
4. if (n == 0) return n+1; // For stopping the recursion
5. if (n == 1251) return 3077;
return transmogrify(n-1);
}
我认为是:
健全性检查
输入检查
边界情况?边缘情况?角壳?
基壳?边界案例?
角落案例?边缘保护套吗?
#1 楼
我也不是说英语的人。但是根据Wikipedia:在极端(最大或最小)操作参数下会出现边缘情况。超出正常运行参数,特别是当多个环境变量或条件同时处于极端水平时,即使每个参数都在该参数的指定范围内。 (“外部正常运行参数”显然意味着类似于“外部典型运行参数组合”,而不是严格意义上的“外部允许运行参数”。也就是说,您仍在有效参数空间之内,但在其角落附近。) br />
当输入之一达到最大极限或最小极限时发生边界情况。
递归结束的基本情况。
因此,即使拐角处的情况似乎与边缘和边界情况(肯定是同义词)有所不同(值的组合),术语也似乎完全混淆了。可以肯定地说边缘,拐角和边界情况在普通语言中是同一回事。也许每个人都可能说不同的话,但是几乎没有共识。
您写的是1)和2),3)是边缘/边界情况,4)是基本情况,而5)是特例。
评论
这对于理解每个技术词汇背后的概念非常有用。
– Jignesh Fadadu
18-10-17在5:42
在面试中非常有用
–刘伊玲
20年9月8日在6:39
#2 楼
无论单词之间有什么区别,用于描述测试的内容取决于测试的语义(含义),而不取决于确切的代码-在提供的示例中,每个测试的含义并不明显。除此之外,这就是我的理解方式:健全性检查=这是否还有意义?例如,如果您的应用程序仅输出整数,则
sqrt(-1)
和log(-1)
未定义。输入检查=测试用户输入,而不是某些内部数据结构或函数的输出。例如,在Bash中,
[ $# -gt 0 ]
检查您是否至少有一个输入参数,这也可能是对诸如find
或mail
之类的命令的健全性检查。正确的输出。例如,一个仅将数字加一个的函数的操作范围为角落的情况检查=更复杂的边界检查(拐角是二维边界),例如在计算中组合
log(1 + the smallest floating point number)
。评论
一个简单的尼特:logₑ-1是iπ。在python中,导入cmath;断言(cmath.log(-1)== 3.141592653589793j)
–鲍勃·斯坦(Bob Stein)
17年2月20日在14:16
评论
我相信边缘和边界通常是相同的。但是它们指的是测试,而不是检查代码中的条件。@理查德测试不是代码?那不是我的理解-您是否有参考资料来支持您认为这些术语不适用于代码的事实?