什麼是灰盒測試?
介紹
灰盒測試是一種軟體測試方法,它僅對軟體程式的底層工作原理有有限的瞭解。因為它包括訪問內部程式碼以開發測試用例,就像白盒測試一樣,並且測試方法是在功能級別執行的,就像黑盒測試一樣,它是這兩者的混合體。
灰盒測試通常用於識別 Web 應用程式中的特定於上下文的錯誤。例如,如果測試人員在測試期間發現錯誤,則他可以修改程式碼以修復錯誤,然後即時重新測試。它專注於任何複雜軟體系統的各個級別,以提高測試覆蓋率。它允許測試顯示層和核心程式碼結構。它通常用於整合和滲透測試。
灰盒測試是一種軟體測試方法,它是白盒測試和黑盒測試的混合體。
在白盒測試中,內部結構(程式碼)是已知的。
黑盒測試的內部結構(程式碼)是不清楚的。
灰盒測試的內部結構(程式碼)僅部分已知。
軟體工程中的灰盒測試允許您測試應用程式的顯示層和核心元件。它主要用於整合和滲透測試。
灰盒測試示例:在測試網站功能(如連結或孤立連結)時,如果測試人員發現這些連結存在任何問題,他可以立即修改 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 並即時確認。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP