gpt4 book ai didi

unit-testing - 边界值具体示例

转载 作者:行者123 更新时间:2023-11-28 21:27:47 25 4
gpt4 key购买 nike

假设我们有以下等价划分:

|invalid partition A| valid partion B | invalid partition C
...................1|2 10|11................

正如我们所见,有效的 B 部分是 [2..10](包括 2 和 10)。为了测试 B 部分,让我们取 7。好的,现在让我们测试边界值。正如我们所见,边界是 2 和 10。在一些书中,他们说除了 2 和 10 之外,还需要额外的点 +- 西格玛。

所以问题是,我们必须采用多少个值来测试有效分区 B 三个 (2, 7, 10) 或五个 (2, 2.01, 7 , 9.99, 10)?

最佳答案

边界值分析的定义各不相同,但都同意以下一组最小测试值(对于两侧封闭的分区):一个测试用例为最小值,一个为分区的最大值.这同样适用于所有有效的相邻分区。令人惊讶的是,对于无效分区,只有与有效分区相邻的极值必须被测试。扩展你的例子:

|invalid part. A| valid part. B | valid part. C |invalid part. D|
|1.............9|10 19|20 29|30...........39|

对于这种情况,各种定义都同意需要测试值 9、10、19、20、29、30。也就是说,对于 B,对于是否应该测试像 15 这样的“典型”值,甚至没有达成共识。

在我看来,重要的问题是您打算查找哪种错误。也就是说,如果您想不出额外的测试可能会带来额外的错误的场景,那么额外的测试就毫无用处。

从这个角度来看,边界测试可以帮助识别有关运算符 <、>、<=、>=、== 的错误,并因此识别差一错误。如果您的要求需要“<”运算符(例如 if (x < 10) then y := 0 else y := 1),那么单独测试 9 和 10 将帮助您检测是否错误地使用了运算符 >、<=、>= 或 == 之一。或者,您可以检测比较中是否使用了不同于 10 的值。

在实践中,更具挑战性的是识别所有分区。如果代码示例类似于 if (x * x < 10) then y := 0 else y := 1 ,然后 x 的分区突然多了很多,即范围 [-3 ... 3],x 的 x*x 不会溢出的范围,以及 x*x 会溢出的范围。当必须考虑其他参数时,情况会变得更加复杂,例如 (x + y < 10)。

关于unit-testing - 边界值具体示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34795444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com