0
A
回答
1
我可以放棄這一點。
答案可能是「不」,在這個意義上,如果你提供一個動作每一個可能的輸入,你可以驗證應用程序是否能夠正常運行在所有可能的情況,所以黑盒測試會發現每一個錯誤最終 。
但實際上,爲每一個可能的行爲提供每一個可能的輸入並不容易達到(有時甚至不可能)。換句話說,很難在應用程序的代碼中爲每個可能的路徑編寫測試,而無需查看代碼。白盒測試在捕捉奇怪的案例方面效率更高,因爲您可以看到實施。一個非常簡單的例子就是你知道特定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]會擊中所有分支。爲了確保你已經擊中了所有的分支,並且他們都沒有錯誤,你將不得不輸入每個不可能的數字。
我並不是說每個應用程序都有完整的代碼覆蓋範圍,這遠非如此。但回到原來的問題:
是否有可能發現與黑盒測試找不到的白盒測試錯誤?
如果您想要證明單個程序的答案是「否」,那麼您將不得不使用黑盒測試來完整覆蓋代碼。這個可能可以在非常小的程序中執行,但隨着程序變得更加複雜,它會很快升級到幾乎不可能的。
相關問題
- 1. 「單元測試」是否屬於白盒或黑盒測試?
- 2. 是JUnit黑盒還是白盒測試?
- 3. 單元測試應該是黑盒測試還是白盒測試?
- 4. 白盒測試
- 5. 術語「白盒測試」和「黑盒測試」是什麼意思?
- 6. 動態黑盒測試與靜態白盒測試
- 7. Android白盒測試
- 8. android白盒測試
- 9. 如何測試方法(白盒測試)
- 10. Android黑盒UI測試
- 11. Android APK測試 - 黑盒
- 12. macOS Xcode黑盒測試
- 13. 有黑盒測試的自動化測試工具嗎?
- 14. 單元測試,黑盒測試時需要多長時間?
- 15. 黑盒測試的最佳實踐
- 16. 單元測試捕獲WCF中的InvalidDataContractException
- 17. 單元測試中的捕獲異常
- 18. 灰盒與黑盒測試有什麼區別?
- 19. Javascript沙盒單元測試
- 20. 軟件測試規範的黑盒測試
- 21. 黑盒迴歸測試的測試框架
- 22. Pdo錯誤捕獲嘗試/捕獲
- 23. 白盒測試失敗但黑盒測試成功時的示例,反之亦然?
- 24. 測試Junit是否捕獲到異常
- 25. Karma測試亞軍 - 未能捕獲鉻
- 26. 如何計劃白盒測試
- 27. 是迴歸測試一個白盒測試?
- 28. 單元測試是否有例外被捕獲
- 29. iOS的沙盒帳戶測試航班測試版測試
- 30. 嘗試捕獲錯誤