什麼是黑盒測試?(技術、示例、型別)
什麼是黑盒測試,它是如何工作的?
黑盒測試是一種軟體測試方法,它測試被測軟體 (SUT) 的功能,而不考慮其具體的實現細節、內部路由知識或內部程式碼結構。
這種型別的測試完全依賴於軟體的規範和需求。
黑盒測試關注的是軟體系統的輸出和輸入,而不是程式的底層知識。
“黑盒”是指進行這種測試的系統,它可以是任何程式,例如資料庫、網站或作業系統。
黑盒測試包含什麼?
黑盒測試檢查系統的整體功能及其行為。
這種測試方法也稱為行為測試或功能測試。
在軟體測試生命週期的各個階段,例如迴歸測試、驗收測試、單元測試、系統測試、整合測試和軟體開發中,這種測試方法都至關重要。
想要進行軟體驗證的終端使用者可以從黑盒測試方法中受益。
黑盒測試技術
在對軟體程式進行黑盒測試期間使用的方法如下。
邊界值分析 (BVA)
這是等價劃分中最重要和最有用的黑盒測試技術之一。BVA 可用於評估任何具有邊界或極值範圍的程式。
這種方法能夠發現輸入值限制中的問題,而不是關注輸入值的範圍。邊界值分析也處理邊緣或極端輸出值。
等價類劃分
黑盒測試是一種經常用於編寫測試用例的方法。它有助於將大量潛在輸入壓縮成少量更有效的輸入。
這是透過將輸入分類到類中併為每個類分配一個值來實現的。
當需要進行大量測試並且不想讓輸入冗餘時,可以使用此方法。
狀態轉換測試
此方法通常檢查一段時間內系統的狀態、輸出和輸入。
它根據被測試軟體的型別,測試系統在特定狀態或其他狀態下的行為變化,同時保持相同的輸入。
此方法的測試用例是透過檢查輸入轉換和狀態或事件發生的順序來構建的。
預測的輸出值和所有狀態都將在整個測試用例集合中遍歷。
功能測試和非功能測試的區別
使用決策表進行測試
| 條件 | 規則 1 | 規則 2 | 規則 3 | 規則 4 |
|---|---|---|---|---|
| 月末 | 否 | 是 | 是 | 是 |
| 工資已轉賬 | N/A | 否 | 是 | 是 |
| 公積金 | N/A | N/A | 否 | 是 |
| 操作 | ||||
| 所得稅 | 否 | 否 | 是 | 是 |
| 公積金 | 否 | 否 | 否 | 是 |
在某些情況下,監視多個選項的輸入組合可能會變得相當複雜。
在這種複雜的情況下,使用決策表,因為它們為測試人員提供了輸入和預期結果的有序檢視。
此方法與基於圖形的測試非常相似,區別在於使用表而不是圖表或圖形。
基於圖形的測試 (GBT)
在此黑盒測試方法中,繪製圖形以顯示原因(輸入)和觸發效果(輸出)之間的關係。
此測試使用了各種輸出和輸入組合。它是一個理解軟體功能效能的有用工具,因為它生動地描繪了輸入和輸出的流程。
錯誤猜測技術
這種測試方法能夠預測錯誤的輸出和輸入,從而允許測試人員快速糾正問題。它完全依賴於終端使用者的判斷和對先前經驗的印象。
除了上面提到的方法外,還有一些其他常用的此測試方法,例如模糊測試、全對測試和正交陣列測試。
黑盒測試示例
下面的示例演示瞭如何使用這些測試方法來評估具有給定輸入的特定軟體。
考慮購物場景時,
如果您花費 500 美元,您將獲得 5% 的折扣。
如果您花費 1000 美元,您將獲得 7% 的折扣。
如果您花費 1500 美元或更多,您將獲得 10% 的折扣。
可以使用此測試的等價劃分方法將輸入劃分為四個部分,金額小於 0、0-500、501-1000、1001-1500 等。此測試方法不會考慮最大購物限額或產品規格等變數。
當將邊界值新增到分割槽時,邊界值將為 0、500、501、1000、1001 和 1500。最低值和最高值通常使用 BVA 方法進行評估,因此將包括 -1、1 和 499 等數字。此類值將有助於解釋軟體輸入值的效能。
根據黑盒測試的狀態轉換測試方法,當購物者在一個月內兩次花費超過 1500 美元時,他的狀態將從金牌會員變為白金會員,如果他在接下來的兩個月內沒有購物,他的狀態將恢復為金牌會員。測試人員可以透過使用其他測試用例來實現如此複雜的跟蹤。
黑盒測試型別
迴歸測試、單元測試、beta 測試、整合測試、系統測試、功能測試、負載測試和其他流程都分為不同的類別。但是,這裡描述的是最常見的型別。
功能測試 (FT) − 此類測試幫助測試人員確定軟體或系統的功能需求。
迴歸測試 − 此類測試是在系統維護操作、升級或程式碼補丁之後進行的,以檢視新程式碼與舊程式碼的比較情況。
非功能測試 (NFT) − 此類測試與功能測試無關,而是關注非功能因素,例如可用性、可擴充套件性和效能。
黑盒測試與白盒測試的區別
下表突出顯示了黑盒測試和白盒測試之間的區別:
| 黑盒測試 | 白盒測試 |
|---|---|
| 用於評估軟體,而不瞭解其內部工作原理。 | 在瞭解軟體的基本結構後執行。 |
| 測試人員負責此項。 | 開發人員負責此項。 |
| 無需瞭解程式設計。 | 需要了解程式設計。 |
| 需要實現專業知識。 | 無需任何先前的實現經驗。 |
| 下一級別的測試 | 較低級別的測試 |
| 時間較短。 | 時間較長。 |
| 透過反覆試驗完成。 | 可以測試資料域和邊界。 |
黑盒測試有多種形式和大小。
| 白盒測試有多種形式和大小。
|
| 不適合測試演算法 | 適合測試演算法 |
黑盒測試級別可用於各種情況:
- 整合測試
- 系統評估
- 驗收測試
什麼是黑盒測試以及它是如何工作的?
將分析規範和需求。
將向系統提供正面和負面輸入以對其進行驗證。
測試的輸出將在事先指定。
將執行測試用例。
將比較實際輸出和預期輸出。
將對已修復的問題進行重新測試。
黑盒測試最重要的工具
對於功能和迴歸測試,使用帶有 Selenium 的 QTP。
使用 LoadRunner 和 Jmeter 進行非功能測試
分步流程
一般來說,遵循系統的程式來測試專案/應用程式可以保持質量,並且對後續輪次的測試長期以來都是有價值的。
第一步是理解應用程式的需求說明。應該有一份完善的SRS(軟體需求規格說明書)。
使用前面描述的黑盒測試方法(例如邊界值分析、等價劃分等)確定有效和無效輸入及其預期輸出的集合,並據此構建測試用例。
執行預定的測試用例以檢視它們是透過還是失敗,並將實際結果與預期結果進行比較。
將失敗的測試用例作為缺陷/錯誤報告給開發團隊,由開發團隊修復。
此外,測試人員在問題修復後會重新測試這些問題,以檢視它們是否仍然存在。
黑盒測試的優點
測試人員不需要具備技術背景。重要的是設身處地為使用者著想,從使用者的角度進行測試。
專案/應用程式完成後即可開始測試。測試人員和開發人員分別在其各自的領域工作,互不干擾。
對於大型和複雜的應用程式,它更有效。
可以在測試過程中儘早發現缺陷和不一致之處。
黑盒測試的缺點
如果您沒有任何技術或程式設計經驗,則有可能忽略被檢查場景的可能情況。
透過繞過所有可用的輸入和輸出測試,可以在給定的時間內測試更少的輸入和輸出。
對於大型和複雜的專案,不可能實現完全的測試覆蓋率。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP