什麼是灰盒測試?


灰盒測試 (GBT) 是一種軟體測試方法,它基於對軟體程式核心功能的有限理解來評估軟體程式。它結合了兩種方法,因為它允許訪問內部程式碼來構建測試用例(如同白盒測試),並且測試技術是在功能級別執行的(如同黑盒測試)。

灰盒測試 (GBT) 是一種流行的方法,用於識別網路應用程式中的特定上下文問題。例如,如果測試人員在測試期間發現錯誤,他會修復程式碼並即時重新測試。為了提高測試覆蓋率,它關注任何複雜軟體系統的所有層。它允許測試顯示層和核心程式碼結構。它通常用於滲透測試和整合測試。

灰盒測試 (GBT) 是一種軟體測試方法,它結合了白盒測試 (WBT) 和黑盒測試 (BBT)。

  • 白盒測試用於檢查產品的內部結構。

  • 黑盒測試 (BBT) 的內部工作原理是一個謎。

  • 灰盒測試 (GBT) 的基本結構只是部分了解的。

軟體工程中的灰盒測試 (GBT) 允許測試應用程式的顯示層和核心元件。它主要用於整合測試和滲透測試。

灰盒測試示例:在測試網站功能(例如連結或孤立連結)時,如果測試人員發現這些連結有任何問題,他可以立即修改 HTML 程式碼並即時進行測試。

示例

1) 如果測試人員點選連結並在測試網站時遇到錯誤,灰盒測試人員可以更改 HTML 程式碼來驗證問題。

在這種情況下,透過修改程式碼執行白盒測試,並且當測試人員在前端測試更改時同時執行黑盒測試。灰盒測試是透過將白盒測試與黑盒測試相結合而產生的。

2) 瞭解並可以訪問錯誤程式碼資料庫(包括每個錯誤程式碼的原因)的灰盒測試人員可以分析錯誤程式碼並更深入地探索原因。假設網頁收到“內部伺服器錯誤 500”的錯誤程式碼,並且該問題的原因為伺服器錯誤。

使用此資訊,測試人員可以進一步調查問題,並向開發人員提供詳細資訊,而不僅僅是向他們報告問題。

3) 灰盒測試人員可以檢查日誌檔案以確定問題的根本原因。灰盒測試人員可以簡單地檢查低效能、程式崩潰和其他問題。

灰盒測試的目的?

灰盒測試的原因如下:

  • 它結合了黑盒測試和白盒測試的優點。

  • 它同時結合了開發人員和測試人員的輸入值,以提高產品的整體質量。

  • 它縮短了冗長的功能和非功能測試所需的時間。

  • 它為開發人員提供了足夠的時間來修復任何產品缺陷。

  • 它包含使用者的觀點,而不是設計者或測試者的觀點。

  • 它包含從使用者的角度對需求和規範進行徹底評估。

灰盒測試策略

測試人員不需要訪問原始碼即可進行灰盒測試。使用有關演算法、架構、內部狀態和其他程式行為的高階描述資訊來建立測試。

  • 灰盒測試可以透過多種方式進行。

  • 它採用基本的黑盒測試方法。

  • 它基於所需測試用例的開發,因此它在使用斷言技術測試程式之前建立所有標準。

灰盒測試技術

矩陣測試

這種型別的測試稱為灰盒測試。它列出了程式中使用的所有變數。變數是每個程式中的元件,允許值透過它移動。它應該根據需求進行調整;否則,程式的可讀性和速度會受到影響。矩陣方法是一種透過檢測已使用變數來從程式中刪除不必要和未初始化變數的方法。

迴歸測試

迴歸測試用於確保對軟體一個區域的更改不會對產品的另一個區域產生意外或不良影響。在確認測試期間發現的任何缺陷都已得到糾正,並且程式的該部分開始按計劃執行;但是,已修復的缺陷可能導致軟體其他地方出現新問題。迴歸測試透過採用測試技術(例如重新測試危險用例、防火牆後重新測試、全部重新測試等)來解決這些型別的問題。

正交陣列測試或 OAT

此測試的目標是以最少的測試用例覆蓋儘可能多的程式碼。測試用例的編寫方式是它們以最少的測試用例覆蓋最多的程式碼以及最多的 GUI 功能。

模式測試

模式測試適用於透過遵循與先前軟體相同的模式而建立的軟體。這種軟體中可能存在相同型別的缺陷。模式測試識別故障原因,以便可以在未來的軟體中解決這些原因。

灰盒方法通常使用自動化軟體測試工具來執行測試過程。提供存根和模組驅動程式給測試人員,以減少對手動程式碼開發的需求。

進行灰盒測試的步驟如下:

步驟 1 - 列出所有輸入。

步驟 2 - 確定結果

步驟 3 - 列出關鍵路徑。

步驟 4 - 確定子功能

步驟 5 - 建立子功能輸入。

步驟 6 - 開發子功能輸出

步驟 7 - 執行子功能測試用例。

步驟 8 - 檢查子功能結果是否有效。

步驟 9 - 對每個附加子功能重複步驟 4-8。

步驟 10 - 對其餘子功能繼續執行步驟 7 和 8。

灰盒測試的測試用例示例包括:與 GUI 相關的、與安全相關的、與資料庫相關的、與瀏覽器相關的、與作業系統相關的等等。

灰盒測試的優點

其中一些包括:

  • 軟體質量正在提高。

  • 此方法側重於使用者的感知。

  • 開發人員受益於灰盒測試,因為他們有更多時間來解決錯誤。

  • 灰盒測試結合了黑盒測試和白盒測試,讓您同時擁有兩者的優勢。

  • 灰盒測試人員不需要具備廣泛的程式設計專業知識即可評估產品。

  • 整合測試受益於此測試方法。

  • 此測試方法確保開發人員和測試人員在同一頁面上。

  • 此方法可用於測試複雜的應用程式和情況。

  • 這種測試是非侵入性的。

灰盒測試的缺點

  • 灰盒測試不允許進行完全的白盒測試,因為無法訪問原始碼。

  • 此測試方法使得在分散式系統中關聯問題更加困難。

  • 為灰盒測試建立測試用例很困難。

  • 由於訪問許可權有限,程式碼路徑遍歷的訪問也受到限制。

灰盒測試的難題

  • 當被測元件以某種方式失敗時,可能會終止持續操作。

  • 當測試完全執行但結果的內容不正確時。

總結

灰盒測試可以最大限度地減少系統故障的總體成本,並防止其進一步蔓延。

灰盒測試最適合 GUI、功能測試、安全評估、網路應用程式、Web 服務以及其他類似應用程式。

  • 灰盒測試方法

  • 矩陣測試

  • 迴歸測試

  • OAT 或正交陣列測試

  • 模式測試

常見問題

問 1) 在軟體測試中,什麼是灰盒測試?

答案 - 灰盒測試用於消除由應用程式內部結構問題引起的任何故障。此測試方法結合了黑盒測試和白盒測試技術。

問 2) 提供一個灰盒測試的示例。

答案 - 灰盒測試包括黑盒測試和白盒測試。所有具體的文件和要求都可供測試人員使用。例如,如果網站的連結不起作用,可以立即在 HTML 中檢查和更新它,並即時確認。

更新於:2021 年 12 月 2 日

326 次檢視

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.