gpt4 book ai didi

testing - 单靠黑盒测试能否捕捉到白盒测试捕捉到的所有错误?

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

是否可以通过白盒测试找到黑盒测试无法发现的错误?

如果是,那为什么?

据我了解,这是不可能的,但我想确定一下。

最佳答案

我可以试一试。

答案可能是“否”,因为如果您为某个操作提供所有可能的输入,您就可以验证应用程序在所有可能情况下的行为是否正确,因此黑盒测试最终会发现所有错误 .

但在现实中,为每一个可能的 Action 提供每一个可能的输入并不容易实现(或者有时不可能同时完成)。换句话说,即使没有看到代码,也很难为应用程序代码中的每条可能路径编写测试。白盒测试在捕获奇怪案例方面效率更高,因为您可以看到实现。一个非常简单的示例是您知道特定 if 语句中的边界情况。

假设您有一个非常基本的程序,其中包含如下代码片段:

if (input < 0) {
print("Input is negative");
} else if (input >= 0 && input <= 60) {
print("Input is between 0 and 60, inclusive");
} else if (input > 60 && input < 70) {
print("Input is between 50 and 70, exclusive); //error
} else {
print("Blah");
}

通过白盒测试,很容易覆盖所有分支。例如,您知道集合 [-1, 5, 65, 80] 会命中所有分支,然后您会在第三个分支中发现错误。使用黑盒测试,您不知道分支条件是什么。您可能会猜到 [0, 5] 会命中所有分支。或者您可能会猜测 [0, 1, 56, 67, 454, 45454, 454545454] 会命中所有分支。为确保您已击中所有分支并且它们都没有错误,您必须输入每个数字,这是不可能的。

我并不是说每个应用程序都具有完整的代码覆盖率,这远非​​如此。但回到最初的问题:

Is possible to find an error with white box testing that cannot be found with black box testing?

如果您只想证明单个程序的答案是否定的,您将不得不仅使用黑盒测试来实现完整的代码覆盖。这在非常琐碎的程序中可能是可行的,但随着您的程序变得越来越复杂,它会迅速升级到几乎不可能。

关于testing - 单靠黑盒测试能否捕捉到白盒测试捕捉到的所有错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32357993/

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