灰盒(GreyBox)測試是一種軟體測試方法,用於部分瞭解內部工作結構來測試軟體應用程式。它是黑盒子和白盒測試的組合,因為它涉及訪問內部編碼以設計測試用例,因為白盒測試和測試實踐在功能級別作為黑盒測試完成。
灰盒(GreyBox)測試通常識別屬於Web系統的特定於上下文的錯誤。例如; 在測試時,如果測試人員遇到任何缺陷,那麼他會對代碼進行更改以解決缺陷,然後再次即時測試。它專注於任何複雜軟體系統的所有層,以提高測試覆蓋率。它提供了測試表示層和內部編碼結構的能力。它主要用於集成測試和滲透測試。
為什麼選擇灰盒測試?
選擇灰盒測試的原因如下:
- 它提供了白盒測試和白盒測試的綜合優勢。
- 它同時包括開發人員和測試人員的輸入值,以提高產品的整體品質。
- 它減少了長時間功能和非功能測試的時間消耗。
- 它為開發人員提供了足夠的時間來修復產品缺陷。
- 它包括用戶觀點,而不是設計師或測試者的觀點。
- 它深入涉及用戶觀點的要求檢查和規格確定。
灰盒測試策略
測試人員必須從源代碼設計測試用例時沒有必要使用灰盒測試。為了執行此測試,可以基於體系結構,演算法,內部狀態或程式行為的其他高級描述的知識來設計測試用例。它使用所有簡單的黑盒測試技術進行功能測試。測試用例生成基於要求並在通過斷言方法測試程式之前預設所有條件。
執行灰盒測試的一般步驟是:
- 首先,選擇並識別來自黑盒和白盒測試輸入的輸入。
- 第二,確定這些選定投入的預期產出。
- 第三,確定在測試期間穿越的所有主要路徑。
- 第四,任務是確定子功能,這些功能是執行深層次測試的主要功能的一部分。
- 第五,任務是確定子功能的輸入。
- 第六,任務是確定子功能的預期輸出。
- 第七,任務包括執行子功能的測試用例。
- 第八,任務包括驗證結果的正確性。
灰盒測試設計的測試用例包括安全相關,流覽器相關,GUI相關,操作系統相關和數據庫相關測試。
灰盒測試技術
矩陣測試
這種測試技術屬於灰盒測試。它定義了特定程式的所有已使用變數。在任何程式中,變數都是值可以在程式內傳播的元素。它應該按照要求,否則會降低程式的可讀性和軟體的速度。矩陣技術是一種通過識別程式中使用的變數來刪除未使用和未初始化變數的方法。
回歸測試
回歸測試用於驗證軟體任何部分的修改是否未對軟體的任何其他部分造成任何不利或無意的副作用。在確認測試期間,任何缺陷都得到修復,並且該部分軟體開始按預期工作,但固定缺陷可能會在軟體中的其他位置引入不同的缺陷。因此,回歸測試通過測試重新測試風險用例,在防火牆內重新測試,重新測試所有等策略來處理這些類型的缺陷。
正交陣列測試或OAT
此測試的目的是用最少的測試用例覆蓋最大代碼。測試用例的設計方式可以覆蓋最大代碼以及具有較少測試用例的GUI功能。
模式測試
模式測試適用於通過遵循先前軟體的相同模式而開發的這種類型的軟體。在這些類型的軟體中可能會出現相同類型的缺陷。模式測試確定失敗的原因,以便可以在下一個軟體中修復它們。
通常,灰盒方法中使用自動化軟體測試工具來執行測試過程。提供給測試人員的存根和模組驅動程式可以減輕手動代碼生成的負擔。